全站数据
8 4 2 0 5 8 1

汇编RETN 4是什么意思

教你心理学 | 简单学习,快乐成才!         
问题更新日期:2024-10-18 01:22:06

问题描述

汇编RETN 4是什么意思急求答案,帮忙回答下
精选答案
最佳答案

retn表示return near,与之对应的是retf

n没有恢复段的过程,retf有个除了pop ip以外还会pop cs

不管是retn还是rentf,后面带的数字是在执行完ret指令以后sp增加的字节数

默认ret相当于ret 0

retn4 4 相当于pop ip,add sp, 4,也就是在返回的同时释放了参数使用的栈空间,windows api中常见的stdcall就是这种调用形式,所以省去了函数调用外的一条add指令

比如一般的,在调用函数时

push 123 ; 参数

call foo

add sp, 2 ; 或者pop ax

如果使用ret 2的话(ret等价于retn),最后一条add sp, 2或者pop ax就可以省掉了