qq646000130 发表于 2011-5-4 15:55:14

检测点10.4的疑问

本帖最后由 qq646000130 于 2011-5-6 05:43 编辑

检测点10.4
下面的程序执行后,AX中的数值为多少?
内存地址      机器码      汇编指令
1000:0         b8 06 00    mov ax,6
1000:2         ff d0         call ax
1000:5         40            inc ax
1000:6                           mov bp,sp   请问一下,此时的SP是多少呢?CALL之前,又是多少呢?
                                    add ax,   

此问题已经解决,谢谢帮忙。

china0008 发表于 2011-5-5 10:55:54

上机调试下看看。呵呵。

qq646000130 发表于 2011-5-6 05:46:25

我觉得这个教程有点误导的意思。
(sp)=(sp)-2似乎不太好理解,不如写成sp=sp-2更加容易理解。因为实际上,就是SP的位置变了,为什么非要说内容变了呢?

swan 发表于 2011-6-8 09:31:13

:Q还不是很明白,能不能在讲一讲

tebi 发表于 2011-6-8 21:10:25

本帖最后由 tebi 于 2011-6-8 21:12 编辑

mov ax,6后,ax=6;call ax 时cs,ip如栈,由于cpu会改变ip的值,这次是ip=5(改变为执行指令的长度),跳过inc ax后ax=6,而mov bp,sp后【bp】指向ip所在的位置,add ax,相当于ax+ip=6+5=12=000bh

swan 发表于 2011-6-9 09:00:00

tebi 发表于 2011-6-8 21:10 static/image/common/back.gif
mov ax,6后,ax=6;call ax 时cs,ip如栈,由于cpu会改变ip的值,这次是ip=5(改变为执行指令的长度),跳 ...

哈哈 明白了原来bp的默认段地址在ss中呀
页: [1]
查看完整版本: 检测点10.4的疑问