当前位置: 代码迷 >> 汇编语言 >> 关于转移地址在寄存器中的call授命
  详细解决方案

关于转移地址在寄存器中的call授命

热度:1888   发布时间:2013-02-26 00:00:00.0
关于转移地址在寄存器中的call指令
下面的程序执行后,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
  add ax,[bp]


答案说是11,我验证也是11,但我不明白,最后应该ax是 6+ss:[bp],因为bp和sp相等了,所以最后结果就是6+栈顶的那个数,因为call ax那的内存地址为1000:2,所以ss:sp里应该是2啊,所以最后应该是6+2=8啊,求教各位

------解决方案--------------------------------------------------------
是11没错,因为调用call ax后记录下的ip是它下一条指令的ip,即5,6+5=11
  相关解决方案