(@_@) 发表于 2012-9-10 07:01:22

求助关于栈的问题

这个题没有给出栈的上限和下限,所以不能用mov sp,0010H,这样理解对吗?
另外为什么是mov sp,2

无星之夜 发表于 2012-9-10 07:01:23

LZ是这样的:
额。。。说实话,你把0010h给sp干啥啊。。。。不是在10000h的地方赋值么。。。正常的想法应该是段:1000h,sp :0000h才是。。除非你段寄存器不是这个。。sp=2是因为计算机是小端存贮。。也就是倒着放数的,而且压栈栈指针是向上移动的,所以CPU先将sp=sp-2然后把数据放进10000h

(@_@) 发表于 2012-9-10 07:25:01

本帖最后由 (@_@) 于 2012-9-10 07:26 编辑

无星之夜 发表于 2012-9-10 07:13 static/image/common/back.gif
LZ是这样的:
额。。。说实话,你把0010h给sp干啥啊。。。。不是在10000h的地方赋值么。。。正常的想法应该 ...理解了,迷糊了

~Nook~/tp 发表于 2012-9-10 09:21:32

首先你要存储的是一个双字节球数,那么要占用两个字节单元,push指令是在执行前要改变sp的值,因为将要存入的数据占用两个字节单元,所以sp为2,这样当运行push指令时候,sp会被减2,这样sp为0…

~Nook~/tp 发表于 2012-9-10 09:31:51

lz把sp设为0010h减2后的结果,经过血汗工程后的地址是多少呢?能达到题目的要求?

(@_@) 发表于 2012-9-10 09:37:01

~Nook~/tp 发表于 2012-9-10 09:31 static/image/common/back.gif
lz把sp设为0010h减2后的结果,经过血汗工程后的地址是多少呢?能达到题目的要求?
{:7_153:}其实偏移地址是0,只不过是入栈操作,需要先给位置,16位,给2个单元0和1,所以sp指向栈的需要操作的地址即2
页: [1]
查看完整版本: 求助关于栈的问题