AT&T汇编心得之间接寻址和LEA指令

    技术2026-09-01  2

    AT&T汇编心得(1)寻址方式:0x4(%esp)的操作是把寄存器esp中的值取出,然后加上4,得到的值作为地址,间接寻址得到需要的数据例如:pushl -0x4(%ecx)该指令的含义是取出寄存器ecx的值,减去4,将得到的值作为地址,在内存找到该地址对应的值,将其压入栈中。这是执行后的结果:ecx            0xbff01450esp            0xbff0143c    0xbff0143cebp            0xbff01498    0xbff01498(gdb) x/x $esp0xbff0143c:    0x0804840a    (gdb) x/x 0xbff0144c0xbff0144c:    0x0804840a其中,内存0xbff0144c即为%ecx-4后得到的值指令LEA的作用和80x86汇编有些类似,即地址传递,下面举例说明:LEA 0x4(%esp), %ecx该指令的作用是,取出esp寄存器里的值,加上4,不再继续寻址,而是将得到值直接传递给ecx;如果是其他指令,则还需进行间接寻址,再传值。

    最新回复(0)