Brave_heart 发表于 2011-12-30 22:52:10

一道习题,迷惑中!

题目:假设sp=0100H ,ss=2000H ,执行PUSH BX后,栈顶的物理地址是多少?
书上的的答案是:200FEH
但我认为应该是:20102H ,我是这样做的,因为执行PUSH BX之后,SP=SP+2,所以sp由原来的0100变为0100+2=0102,所以栈顶的物理地址ss:sp=2000*16+0102=20102H。我哪里做错,请各高手帮帮忙。谢谢

yydwzl 发表于 2011-12-30 23:05:35

你搞错了,push bx分两步1、sp=sp-22、再将数据放到内存中
你开始sp=0100H,当0100H-2后,就是00FEH了

Brave_heart 发表于 2011-12-30 23:13:21

哦,是我搞错了,谢谢。

ArcherJhon 发表于 2011-12-31 15:49:27

push 是入栈吧。 不是+吗

415968430 发表于 2011-12-31 20:21:48

ArcherJhon 发表于 2011-12-31 15:49 static/image/common/back.gif
push 是入栈吧。 不是+吗

入栈因该是减吧

流浪南中国 发表于 2012-1-9 00:06:05

你入栈的的话是SP 是减2操作的 空栈的栈顶地址是200fe,你PUSH 后栈顶地址应该是200FC
入栈 的顺序是F------0
出栈的顺序是0---f

流浪南中国 发表于 2012-1-9 00:26:31

补充下,如果是空栈的话是20100
如果有数据的话是200FE

ArcherJhon 发表于 2012-1-10 11:57:22

嗯嗯嗯 理解理解了
页: [1]
查看完整版本: 一道习题,迷惑中!