call指令经常跟ret指令配合使用,因此CPU执行call指令,进行两步操作:

          将当前的 IP 或 CS和IP 压入栈中;

          转移(jmp)。

    call指令不能实现短转移,除此之外,call指令实现转移的方法和 jmp 指令的原理相同。

    call 标号(近转移)

        CPU执行此种格式的call指令时,相当于进行 push IP jmp near ptr 标号

        call far ptr 标号(段间转移)

        CPU执行此种格式的call指令时,相当于进行:push CS,push IP jmp far ptr 标号

    call 16位寄存器

        CPU执行此种格式的call指令时,相当于进行: push IP jmp 16位寄存器

        call word ptr 内存单元地址

        CPU执行此种格式的call指令时,相当于进行:push IP jmp word ptr 内存单元地址

 

参考资料:<<汇编语言>> 王爽