AT&T汇编语言学习1
一. AT&T汇编语法格式
(1) 寄存器引用
引用寄存器要在寄存器号前加%,如move %eax, %ebx
(2) 操作数顺序
操作数排列是从源(左)到目的(右), 如
1 2 |
|
(3) 常数/立即数的格式
使用立即数,要在数前加$,如mov $4, %ebx
符号常数直接引用 如mov value, %ebx
引用符号地址在符号前加$,如mov $value, %ebx
(4) 操作数的长度
操作数的长度用加在指令后的符号表示
b(byte)
w(word)
l(long)
如:mov w%ax, %bx
二. 转移和调用
(1) 在AT&T汇编格式中,绝对转移和调用指令(jmp/call)的操作数前 要加上’*‘作为前缀
(2) 远转移指令和远调用指令的操作码,在AT&T汇编格式中为”ljump”和”lcall”,在Itel汇编格式中则为”jmp far”和”call far”
AT&T格式
1 2 |
|
Intel格式
1 2 |
|
(3) 远程返回指令
1 2 |
|
(4) 寻址方式
用section:disp(base, index, scale)表示,计算方法是:
base + index*scale + disp
section:[base+index*scale+disp] #Intel
1 2 3 4 |
|