初学汇编语言,小问题求解,

先看下我的代码:
assume cs:abc
abc segment
mov bx,1111h
mov ax,4c00h
int 21h
abc ends
end
执行程序后,我猜想bx的值应该是1111,可是我在cmd下用debug的t命令查看寄存器的值时发现bx还是0000,并不是所预想的1111,然后我就用debug跟踪上面那个程序的执行过程,发现bx确实变成1111了,为什么呢?高手解答阿 小弟是初学者 在此先感谢了!!

T是单步查询,你都还没到mov bx,1111h当然bx的值还是0000啊追问

噢 可是我t命令单步查询的时候有先运行一下我上边那个程序的可执行程序, 运行.exe之后不是会执行mov bx,111h?

追答

不是先运行,是从头开始执行,-T一次他就会执行一条指令,-G是跳到第多少条指令,看书吧,我说的不够详细,书上有详细的介绍。我就不跟你罗嗦了。

追问

好吧,谢谢蛤!

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-14
没错啊 我把你的 试了一下 没问题啊?
我用p 和t跟踪 bx都是1111 没有发现变成0000 啊!!!!!追问

我发现是0000的时候不是用跟踪的,我是执行.exe之后,进入cmd debug 然后用t命令查看此时的bx的值, 就发现是0000了。。。。

第2个回答  2011-06-14
没错啊 我把你的 试了一下 没问题啊?
我用p 和t跟踪 bx都是1111 没有发现变成0000 啊!!!!!追问

我发现是0000的时候不是用跟踪的,我是执行.exe之后,进入cmd debug 然后用t命令查看此时的bx的值, 就发现是0000了。。。。

相似回答
大家正在搜