内存地址 机器码 汇编指令
1000:0000 B8 00 00 mov ax,0
1000:0003 E8 01 00 call s
1000:0006 40 inc ax
1000:0007 58 s:pop ax
答:
(1)ax是6, 因为call s在读入指令缓冲器内时, IP指向的是0006。
当执行call s指令时, 因为call s等价于push IP
jmp near ptr 标号
所以push IP时, 等于push 0006。
(2)在call s在读入指令缓冲器内时, IP指向的是0006。
因为call s指令的机器码是E8 01 00, 而E8后面01 00位移,
由于01是低位 00是高位, 所以位移是00 01。
执行call s指令时, 因为IP=0006, 所以(SS)*16+(IP+0001)=SS:0007 |