鱼C论坛

 找回密码
 立即注册
查看: 2659|回复: 7

一道习题,迷惑中!

[复制链接]
发表于 2011-12-30 22:52:10 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
题目:假设sp=0100H ,ss=2000H ,执行PUSH BX后,栈顶的物理地址是多少?
书上的的答案是:200FEH
但我认为应该是:20102H ,我是这样做的,因为执行PUSH BX之后,SP=SP+2,所以sp由原来的0100变为0100+2=0102,所以栈顶的物理地址ss:sp=2000*16+0102=20102H。我哪里做错,请各高手帮帮忙。谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-30 23:05:35 | 显示全部楼层
你搞错了,push bx分两步1、sp=sp-2  2、再将数据放到内存中
你开始sp=0100H,当0100H-2后,就是00FEH了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-12-30 23:13:21 | 显示全部楼层
哦,是我搞错了,谢谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-31 15:49:27 | 显示全部楼层
push 是入栈吧。 不是+吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-12-31 20:21:48 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-9 00:06:05 | 显示全部楼层
你入栈的的话是SP 是减2操作的 空栈的栈顶地址是200fe,你PUSH 后栈顶地址应该是200FC
入栈 的顺序是F------0
出栈的顺序是0---f
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-9 00:26:31 | 显示全部楼层
补充下,如果是空栈的话是20100
如果有数据的话是200FE
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-1-10 11:57:22 | 显示全部楼层
嗯嗯嗯 理解理解了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-18 23:09

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表