【发布时间】:2026-01-24 15:50:01
【问题描述】:
我在 inline-assembly 中推送一些 int 值:
_asm
{
mov eax,i3
push eax
mov eax,ii
}
稍后我通过 pops 检索这个值:
_asm
{
pop eax
mov ii,eax
pop eax
mov i3,eax
}
我想在不弹出的情况下检查我的堆栈。我需要重新排列或重新审视一些值。完成后我可以恢复堆栈。
我对 asm 很生疏。有没有类似的东西:
mov ii,esp+4
这会移动下一个(不是当前的)堆栈元素吗?我只是猜测。 我需要这段代码在 32 位 win 和 64 位 win 环境下运行。
【问题讨论】:
-
使用调试器的内存视图窗口。但最重要的是,不要编写那样的代码。改用局部变量,它也在堆栈上。调试器可以显示值。