assembly - nasm 英特尔 : Access items in the stack without using pop

标签 assembly x86 stack nasm stack-memory

假设我想在不使用 POP 的情况下查看堆栈中的顶部两个元素。

我如何访问它 - 我正在尝试:

mov ebp, esp
mov eax, [ebp]
mov ebx, [ebp-4]

最佳答案

PUSH 预先递减堆栈指针,POP 后递增它。因此,查看前两个 DWORDS:

mov eax, [esp]    ; Top of stack
mov ebx, [esp+4]  ; Second element on the stack

关于assembly - nasm 英特尔 : Access items in the stack without using pop,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19907924/

相关文章:

c - X86 CPU 如何将地址转换为 VGA 文本缓冲区等 IO?

assembly - 为什么 ia32/x64 操作码映射文档 0x66 和 0xF2 作为操作码 0x0F38F1 (CRC32) 的双重强制前缀?

x86 - (NASM) (80x86) 引导加载程序需要 xor ax, ax

c - Printf 参数未压入堆栈

android - 按图标恢复上次 Activity 以设置结果

c - C 代码中的 Asm 变量

c - double 型矩阵 [n]x[n] 传输至 ASSEMBLY

Java - 使用多个堆栈允许 'undo' 方法

c - 编写 Return-to libc 攻击,但无法使其正常工作?

c - 无法理解汇编逻辑