648905586 发表于 2014-10-10 09:05:05

检测点10.2问题

下面的程序执行后,ax中的数值为多少?
内存地址    机器码      汇编指令   
1000:0   b8 00 00   mov ax,0   
1000:3   e8 01 00   call s         
1000:6   40               inc ax
1000:7   58             s:pop ax   
ax的值为什么是6.不懂原因,讲细点

小靚同学Leon 发表于 2014-10-10 12:36:40

call s 的执行过程是现将call的下一条指令的偏移地址压栈,也就是push 0x6,在执行jmp s。pop ax是将此时栈顶数据取出(这里栈顶数据就是0x6)赋给ax.所以ax=6

大个的糖果 发表于 2014-11-1 00:56:32

页: [1]
查看完整版本: 检测点10.2问题