汇编-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 内存单元地址
实例
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
2020-08-10 C++类型转换