
汇编语言第二版中,关于栈段的习题,将10000H~1FFFFH作为栈段,SS=1000H,求SP。注意这是在8086PC上,
栈的操作是以字为单位的。我不明白为什么SP=0,初使状态栈为空。那么SS:SP应该指向栈的最高地址的下一内存单元,也就是20000H,怎么算,SP应该等于10000H啊,...
栈的操作是以字为单位的。我不明白为什么SP=0,初使状态栈为空。那么SS:SP应该指向栈的最高地址的下一内存单元,也就是20000H,怎么算,SP应该等于10000H啊,但是SP是个偏移地址,只有16位,不会这么大啊。若SP=0,则SS:SP指向的是10000H,这也不是最高地址的下一内存单元啊,请懂的人赐教。
展开
3个回答
展开全部
SS=1000H 若SP=0 则此时SS:SP指向10000H
经一次压栈后,SP自减2,SP=FFFEH,但是SS不会跟着减的,所以此时SS:SP指向1FFFEH处
也就是说SP应当等于10000H,但它没那么大,只好等于0000H,反正压栈之后0000H-2H和10000H-2H结果是一样的。懂了没有?
经一次压栈后,SP自减2,SP=FFFEH,但是SS不会跟着减的,所以此时SS:SP指向1FFFEH处
也就是说SP应当等于10000H,但它没那么大,只好等于0000H,反正压栈之后0000H-2H和10000H-2H结果是一样的。懂了没有?
展开全部
我记得 SS要左移2位的 ,记不不清啦。
更多追问追答
追问
SS要乘以16,再加上偏移地址,乘以16,等于16进制的左移1位
追答
哦,对,左移1位,呵呵 ,好久没搞8086,还在大学里学有,有一点点记忆。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询