第10章 CALL和RET指令

Posted godoforange

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第10章 CALL和RET指令相关的知识,希望对你有一定的参考价值。

call 和 ret 指令都是转移指令,它们都修改IP ,或者同时修改CS 和IP 。他们经常被共同用来修改实现子程序的设计。

10.1 

  ret 和 retf 

  ret指令用栈中的数据,修改Ip的内容,从而实现近转移。

  retf 指令用栈中的数据,修改CS 和 IP 的内容,从而实现远转移。

  cpu执行 ret 指令时相当于  POP IP

CPU 执行 retf指令时 相当于进行 POP IP pop CS 

  cpu 执行call 指令时,实现俩步操作:

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

    转移

 

 10.2 call指令

    cpu执行call指令时,进行俩步操作

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

      转移

 10.3 依据位移进行转移的call指令

  call标号 将当前的IP压栈后,转到标号处执行指令

 10.4 转移的目的地址在指令中的call指令

   call 其对应的机器指令中并没有转移的目的地址,而实相对于当前IP的转移位移

    call far ptr 标号  实现的时段间转移

   CPU 执行此种格式的call指令时,进行如下的操作

  push CS

  push IP

  jmp far ptr 标号

  10.5

转移地址在寄存器中的call指令

  指令格式 :call 16位reg

  CPU执行“call 16位reg时,相当于进行:

push IP

jmp 16位reg 

10.6 转移地址在内存中的call指令

   转移地址在内存中的call指令有俩种格式

  (1)call word prt 内存单元地址

    用汇编语法来解释此种格式的call指令

    PUSH ip 

    jmp word ptr

  (2)call dword ptr 内存单元地址

    push cs 

    push ip

     jmp dword ptr

10.8 mul指令

    mul 是乘法指令。

以上是关于第10章 CALL和RET指令的主要内容,如果未能解决你的问题,请参考以下文章

汇编入门学习笔记 —— call和ret

汇编10:CALL和RET指令

汇编-10.0-CALL和RET指令

关于汇编指令call和ret的具体细节操作!

汇编语言——call 和 ret 指令

call 和 ret 指令