AT&T汇编心得之间接寻址和LEA指令
2011-02-20 14:38
260 查看
AT&T汇编心得(1)
寻址方式:
0x4(%esp)的操作是把寄存器esp中的值取出,然后加上4,得到的值作为地址,间接寻址得到需要的数据
例如:
pushl -0x4(%ecx)
该指令的含义是取出寄存器ecx的值,减去4,将得到的值作为地址,在内存找到该地址对应的值,将其压入栈中。
这是执行后的结果:
ecx 0xbff01450
esp 0xbff0143c 0xbff0143c
ebp 0xbff01498 0xbff01498
(gdb) x/x $esp
0xbff0143c: 0x0804840a
(gdb) x/x 0xbff0144c
0xbff0144c: 0x0804840a
其中,内存0xbff0144c即为%ecx-4后得到的值
指令LEA的作用和80x86汇编有些类似,即地址传递,下面举例说明:
LEA 0x4(%esp), %ecx
该指令的作用是,取出esp寄存器里的值,加上4,不再继续寻址,而是将得到值直接传递给ecx;如果是其他指令,则还需进行间接寻址,再传值。
寻址方式:
0x4(%esp)的操作是把寄存器esp中的值取出,然后加上4,得到的值作为地址,间接寻址得到需要的数据
例如:
pushl -0x4(%ecx)
该指令的含义是取出寄存器ecx的值,减去4,将得到的值作为地址,在内存找到该地址对应的值,将其压入栈中。
这是执行后的结果:
ecx 0xbff01450
esp 0xbff0143c 0xbff0143c
ebp 0xbff01498 0xbff01498
(gdb) x/x $esp
0xbff0143c: 0x0804840a
(gdb) x/x 0xbff0144c
0xbff0144c: 0x0804840a
其中,内存0xbff0144c即为%ecx-4后得到的值
指令LEA的作用和80x86汇编有些类似,即地址传递,下面举例说明:
LEA 0x4(%esp), %ecx
该指令的作用是,取出esp寄存器里的值,加上4,不再继续寻址,而是将得到值直接传递给ecx;如果是其他指令,则还需进行间接寻址,再传值。
相关文章推荐
- AT&T汇编心得之间接寻址和LEA指令
- AT&T汇编心得之间接寻址和LEA指令
- AT&T汇编语言及其寻址方式简述
- X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编
- X86 寻址方式、AT&T 汇编语言相关知识、AT&T 与 Intel 汇编语言的比较、gcc 嵌入式汇编
- AT&T汇编语言寻址方式
- (5)AT&T汇编笔记
- 冒泡排序--汇编 IA32 AT&T
- 杂货边角(2):AT&T和INTEL汇编语法
- INTEL汇编,AT&T汇编-->"if","at"
- AT&T汇编语法格式
- AT&T汇编 helloworld实例
- AT&T汇编leave指令
- linux内核编程学习笔记一:AT&T汇编语言(转)
- AT&T学习笔记汇编之函数
- AT&T 汇编语法格式
- __asm__ __volatile__ GCC的内嵌汇编语法 AT&T汇编语言语法
- gcc内嵌的汇编at&a汇编(初览)
- GNU as汇编简介 (AT&T语法)
- ffmpeg AT&T汇编转intel汇编 之(emms_c)