来了来了来 发表于 2013-4-7 16:40:12

视频第三章最后一节的问题 最大值

我们将10000H~1FFFFH这段空间当做栈段 ss=1000H 栈空间大小为64KB   初始状态是空的那么SP=?
    视频上说是等于0   但是等于0   不久代表栈满吗 ?在进行push 不是就会从顶向下了吗求解

〢坏ヤρì滊 发表于 2013-4-7 16:40:13

本帖最后由 〢坏ヤρì滊 于 2013-4-8 10:24 编辑

:lol明白了?

伽利略幼稚 发表于 2013-4-7 22:06:31

友情帮顶~

伽利略幼稚 发表于 2013-4-7 22:07:56

还没学汇编,后面再看

伽利略幼稚 发表于 2013-4-7 22:08:49

看样子很难啊

565123 发表于 2013-4-7 22:45:53

本帖最后由 565123 于 2013-4-7 22:47 编辑

所以是从1000:FFFF开始入栈!没错阿

0000-0002=FFFE

所以放在1000:FFFF和1000:FFFE这两个位置

j_t_zeng 发表于 2013-4-8 00:55:17

楼上说的对,sp=0时,当push一个数,sp=sp-2,而sp是一个无符号的,就想象成向上循环到栈底。也因为如此,使用栈时要注意溢出问题。

1971827035 发表于 2013-4-8 08:44:33

同意5#所说

来了来了来 发表于 2013-4-8 11:17:35

〢坏ヤρì滊 发表于 2013-4-8 10:22 static/image/common/back.gif
明白了?

哇。。。。。。。关键是我的疑惑是push 的时候SP=SP-2 这样sp=0的时候在进栈不超过了栈的范围了?         

〢坏ヤρì滊 发表于 2013-4-9 14:36:35

来了来了来 发表于 2013-4-8 11:17 static/image/common/back.gif
哇。。。。。。。关键是我的疑惑是push 的时候SP=SP-2 这样sp=0的时候在进栈不超过了栈的范围了?    ...

sp=0是栈底,然后在栈底放入数据,指针-2就到了上面了,然后放入一个数据,再-2,明白吗?

思来想去 发表于 2013-4-10 08:59:00

淡定,淡定,淡定……
push sp先减2再放数据,0-2=fffe,字型,数据放在ffff和fffe中。顶5、6楼。

keke2xiaodie 发表于 2013-4-10 15:28:16

思来想去 发表于 2013-4-10 08:59 static/image/common/back.gif
淡定,淡定,淡定……
push sp先减2再放数据,0-2=fffe,字型,数据放在ffff和fffe中。顶5、6楼。

这道题在没有执行PUSH命令前,SS=1000H,SP=0H,那栈顶指向的地址是10000H吗?然后执行PUSH命令,sp=sp-2=fffeH,然后把数据推入栈顶。是这么理解么?为什么0-2却是FFFEH呢?是不是其实sp应该是10000H,可是sp最多只能存放4位十六进制,而把高位的1存放在另外的地方了?这个高位的1到底存在么?

思来想去 发表于 2013-4-10 21:29:20

额   以后会学到一个标志寄存器,进位或借位的时候存放在那里边。
无符号数是针对二进制来讲的,无符号数的表数范围是非负数,0b-10b=fffeh
栈是以字型数据存储的。
无回帖,不论坛,这才是人道。

空陌 发表于 2013-5-9 15:00:26

2楼正解强烈支持楼主ing……

monk-half 发表于 2013-5-9 15:08:09

将栈段的首位相连接sp在这个圈内滑动这问题就容易解释了

cqk2980 发表于 2013-5-14 10:42:46

强烈支持楼主ing……

yang40270243 发表于 2013-5-16 08:36:02

感谢楼主分享,新手学习,感谢楼主分享!!!!!
页: [1]
查看完整版本: 视频第三章最后一节的问题 最大值