【发布时间】:2022-12-10 00:09:41
【问题描述】:
我对汇编很陌生,我不明白在过程结束时用 ret 语句写一个数字的确切含义。
像这样:
Function Proc
push ax cx
.
...body...
.
pop cx ax
ret 2
Function endp
我知道这与堆栈指针在函数结束时应该返回到哪里有关?
它有什么作用?
【问题讨论】:
-
汇编不是一种语言——每个处理器都有自己的语言。您应该询问特定的体系结构(似乎是 x86)。
-
题外话:
ret是一个功能强大的小指令,长期以来一直是利用漏洞软件的中心:它根据调用堆栈的内存内容来指导程序的控制流。如果你控制了内存(strcpy,我在看着你),你就控制了程序执行流程。