分类: LINUX
2012-02-23 17:13:34
gas实现了AT&T操作码语法,Itel和AT&T语法的主要区别如下:* AT&T使用 $ 表示操作数,如 $123, $519,而Intel的
立即数不需要定界
* AT&T在将寄存器名称前加上前缀%,而Intel不需要这样做
* AT&T语法在处理源操作数和目标操作数时使用想法的顺序,
例如,将立即数4传送到EAX寄存器,
AT&T 语句为
- movl $4, %eax
Intel语法是* AT&T在助记符后使用一个单独的字符来使用字符来说明在操
- mov eax, 4
作中使用的数据长度
AT&T语法中等价于Intel语法中
- movl $test, %eax
* AT&T中长调用和跳转使用
- mov eax, dword ptr test
Intel使用
- ljmp $section, $offset
- jmp section:offset