当前位置: 代码迷 >> 汇编语言 >> 16位汇编的一处疑点
  详细解决方案

16位汇编的一处疑点

热度:134   发布时间:2016-05-02 04:27:31.0
16位汇编的一处疑问
看王爽汇编书有一处不理解,书中是这样介绍的,”call far ptr 标号“这种格式的call指令时,进行如下操作。
(1)   (sp)=(sp)-2
       ((ss)*16+(sp))=(CS)
       (sp)=(sp)-2
       ((ss)*16+(sp))=(IP)
(2)  (CS)=标号所在段的段地址
       (IP)=标号在段中的偏移地址
CPU执行”call far ptr 标号“时,相当于进行:
push CS
push IP
jmp far ptr 标号
---------------------------------------------------------------------------------------------------
我自己测试结果如下图:

我的疑问是如上图, 为什么查看堆栈,CS:IP等于13E3:0008呢?标号处的地址应该是13E3:0009啊
------解决思路----------------------
IP 应该是执行完 call 后返回的地址,即 call 指令的下一指令的地址,而非目标地址。
  相关解决方案