首页 > 解决方案 > 该问题与Assembly x86-32 RET n指令有关

问题描述

我知道 Ret n 的含义,但我不知道它在维护程序的运行时堆栈中的作用?我有点困惑。ret 与堆栈有关吗?

标签: assemblyx86returnmasm32

解决方案


ret n就像ret+ add esp, n。您将它用于 caller-pops 调用约定。

平原ret就好pop eip。(pop eip不是一个有效的指令,但它很好地表达了ret它的作用)。是的,它使用堆栈;阅读文档。 http://felixcloutier.com/x86/RET.html(特别是“近回报”部分。)

“far ret”更复杂,但不用于具有平面内存模型的 32 位或 64 位代码。即在普通代码中根本不使用。


推荐阅读