汇编 - 修改堆栈内容

Assembly - modifying stack contents

如何修改汇编中的栈内存块?

我想到了一个办法,就是:

POP EAX
ADD EAX, 5
PUSH EAX

有没有更短更有效的方法?

您可以直接使用内存操作数寻址堆栈上的值,如

add dword [esp], 5

add qword [rsp], 5

如果您的目标是 64 位;在 16 位模式下,sp-based addressing is not available.