Caesar 发表于 2012-7-31 20:27:09

关于SP值的问题

假如,我将栈的空间设置为0fff0-1000f(32个字节)。但是,我将SS设置为1000H,SP设置为0010H。从10000-1000f,栈都可以正常写入。但当SP=0时,栈还能继续写入吗?我拿DEBUG测试了一下,发现好像不行,但不知道为啥?是不是寄存器的值不能为负?
我可不可以总结为:栈的段地址,必须小于栈顶/16?

敉沧 发表于 2012-8-1 10:22:37

可以写入呃。
范围应该是1000h~1ffffh。
当sp=0
当push时,sp-2=0fffeh
写到了1fffeh。。你可以学一下补码。计算机的负数都是以补码形式存放的。

Caesar 发表于 2012-8-1 20:57:41

敉沧 发表于 2012-8-1 10:22 static/image/common/back.gif
可以写入呃。
范围应该是1000h~1ffffh。
当sp=0


确实,当SP=0,它会写到1fffe这个字空间。
页: [1]
查看完整版本: 关于SP值的问题