日出日落 发表于 2013-6-25 23:31:52

希望有人指点下,甲鱼哥!!!。。。




有两点不明白,为什么两个栈的栈顶都是16呢?

图片2还能理解,因为有8个字形数据.

但图片1只有两个字形数据啊?怎么两个是一样的?图片1不是应该是4吗?

首次进鱼C论坛发帖,希望各位大神能帮帮我,谢谢了,祝生活愉快....

メ㊣逆ご帅☆ 发表于 2013-6-25 23:31:53

SS指向的是段地址,
SP指向偏移
SP才是决定栈的大小
SS决定的是栈的位置(在内存中的位置)
SP决定大小
至于图1 的SP设置为16
我想因为只有两个push
设置成4我想也是可以的
你实验下就知道了
我就不实验了

半生缘 发表于 2013-6-26 11:49:40

按理说吧 我感觉吧
你可以写 4的
但是 sp 依然会指向16 因为在DOS汇编中 段的最小长度是16
因为段地址加偏移地址才够20为
而段地址只有16 位

日出日落 发表于 2013-6-26 12:47:53

半生缘 发表于 2013-6-26 11:49 static/image/common/back.gif
按理说吧 我感觉吧
你可以写 4的
但是 sp 依然会指向16 因为在DOS汇编中 段的最小长度是16


不是很明白?

段的最小长度是16这个可以理解,但那是由SS指向的呀...不是用SP指向的吧?

SP是偏移地址,如果指向16与指向4是一样的话,偏移地址这个就失去意义了!

所以,还请大神帮我渡过这个难关!再次感谢,祝生活愉快

日出日落 发表于 2013-6-26 19:25:59

人呢???来人呐...

日出日落 发表于 2013-6-27 13:57:41

メ㊣逆ご帅☆ 发表于 2013-6-27 12:14 static/image/common/back.gif
SS指向的是段地址,
SP指向偏移
SP才是决定栈的大小


好的,谢谢...我去debug下...看数据的走向.
页: [1]
查看完整版本: 希望有人指点下,甲鱼哥!!!。。。