检测点10.4
本帖最后由 gaopanhao 于 2015-7-14 21:17 编辑下面的程序执行后,ax中的数值为多少?
内存地址 机器码 汇编指令 执行后情况
1000:0 b8 06 00 mov ax,6 ax=6,ip指向1000:3
1000:3 ff d0 call ax pop ip,ip指向1000:6
1000:5 40 inc ax
1000:6 58 mov bp,sp bp=sp=fffeh
add ax, ax==6+5=0bh
为什么这个call一下IP变成6而fffeh里面的内容却是5呢 多看几遍视频,要理解题意。 call 执行时 把下一句的ip压入栈中。,入栈后自然是栈顶了 , 那得多看看 查看全部内容 应该是这样的吧
内存地址 机器码 汇编指令 执行后情况
1000:0 b8 06 00 mov ax,6 ; ax=6,ip指向1000:3
1000:3 ff d0 call ax ; 此时cs:ip=1000:5, push ip, 栈ss:sp中的内容为5,ip= ax,跳转。
1000:5 40 inc ax
1000:6 58 mov bp,sp ;bp=sp=fffeh bp 是栈的
add ax, ;ax=6+(ss:(fffeh))=6+5=0bh
页:
[1]