社区
汇编语言
帖子详情
retn是什么意思?
justin_0009
2008-10-13 08:52:20
请教一下。最好给个例子。谢谢
...全文
2748
5
打赏
收藏
retn是什么意思?
请教一下。最好给个例子。谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
gqhyz
2012-10-19
打赏
举报
回复
在16-bit Windows下 把代码分成data.code等段的内存模式不同
而Win32只有一种内存模式, 即FLAT模式, 没有64K的段大小限制
所有的Win32的应用程序运行在一个连续,平坦,巨大的4GB空间中
如果你运行在实模式下,那么ret需要考虑段间,还是段内的跳转
如果是在32位保护模式下.整个段空间为2的32次方,也就是4GB
不存在段间跳转.
retn 0x ;就足以满足要求了
youh2009
2009-10-17
打赏
举报
回复
支持cnzdgs的说法。
cnzdgs
2008-10-13
打赏
举报
回复
RETN是段内调用返回;RETF是段间调用返回。两者差别是段间返回要在堆栈中弹出cs。
zhizhi_2008
2008-10-13
打赏
举报
回复
应该是RET N吧?
就是子程序返回,然后把堆栈的N个字节弹出来。
其实就是执行ret后,将n加入sp中,实际上是从堆栈中弹出n个字节的数据,以冲掉在call指令前压入堆栈的参数。
相当于这样:
ret
add sp,n
BAYNPU
2008-10-13
打赏
举报
回复
ret i16:有参数段内返回:IP<--SS:[SP],SP<--SP+2
ret i16:有参数段间返回:IP<--SS:[SP],SP<--SP+2
CS<--SS:[SP],SP<--SP+2,SP+I16
主程序:
MOV AL,0FH
CALL ABC
...
ABC: ABC AND AL,OFH
OR AL,30H
CMP AL,39H
JBE ABC
ADD AL,7
ABC RET
尽管段内返回和段间返回具有相同的汇编助记符,但汇编程序能自动产生不同的指令代码,也可以分别采用RETN和RETF表示段内和段间返回。
什么是re
tn
指令
本文针对网上关于re
tn
指令的复杂解释进行了简化说明,详细解析了re
tn
指令的具体含义及用法,例如re
tn
10在汇编语言中实际执行的是popeip和add esp,10h操作,其中10为十六进制。
汇编中re
tn
4的含义详析
本文详细解析了re
tn
4函数返回指令的工作原理,包括其如何改变EIP寄存器指向新的指令位置以及如何更新ESP寄存器,以实现栈的清理。
汇编指令re
tn
详解
本文探讨了汇编指令re
tn
和re
tn
0x4如何结束过程并调整堆栈,包括它们在返回上一调用过程、弹出esp指向的值到EIP、平衡堆栈的过程。通过实例分析,揭示了两种指令在不同调用约定下的行为差异。
汇编指令re
tn
和re
tn
x的区别
文章详细比较了在32位汇编中re
tn
和re
tn
16指令,re
tn
不带参数,仅返回控制权;re
tn
16有16字节参数,移除并返回。使用取决于函数调用约定和参数处理。
汇编语言
21,500
社区成员
41,617
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章