汇编-call跳转指令、ret和retf返回跳转

功能:调用子程序 

 

 

ret  iret和retf返回跳转

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

  相当于:pop IP

    

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

  相当于:pop IP

      pop cs

 

iret 指令描述为:

  pop IP

  pop CS

  popf 

 

call指令

CPU执行call指令时, 进行两步操作:

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

(2)转移【jmp】。

call指令不能实现短转移(可以实现近转移和远转移)

 

段内转移

格式:call 标号

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

  相当于进行:push IP   ;会把 下一指令的  IP 压入栈中
                      jmp near ptr 标号

 

实例:

 

格式:call 16位寄存器

call ax

 

call word ptr 内存单元地址

相当于进行:push IP
                     jmp word ptr 内存单元地址

实例:

 

 

 

 

段间转移

call far ptr 标号

相当于进行:push cs
      push IP
      jmp far ptr   标号

 

实例:

 

 

call dword ptr 内存单元地址

相当于进行:push CS
      push IP
      jmp dword ptr 内存单元地址

 实例

 

 

 

 

 

 

 

 

posted @   天子骄龙  阅读(288)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
历史上的今天:
2020-08-10 C++类型转换
点击右上角即可分享
微信分享提示

目录导航