关于转移地址在寄存器中的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