码迷,mamicode.com
首页 > 其他好文 > 详细

第10章 CALL和RET指令

时间:2019-01-21 21:41:33      阅读:256      评论:0      收藏:0      [点我收藏+]

标签:汇编   转移指令   相对   没有   依据   call   设计   解释   ptr   

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   设计   解释   ptr   

原文地址:https://www.cnblogs.com/godoforange/p/10301096.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!