Linux下AT&T汇编语法格式简介

时间:2013-05-07 15:21:32
【文件属性】:
文件名称:Linux下AT&T汇编语法格式简介
文件大小:16KB
文件格式:TXT
更新时间:2013-05-07 15:21:32
at&t linux Linux下AT&T汇编语法格式简介 一、AT&T 格式Linux 汇编语法格式 在 AT&T 汇编格式中,寄存器名要加上 '%' 作为前缀;而在 Intel 汇编格式中,寄存器名不需要加前缀。例如: AT&T 格式 Intel 格式 pushl %eax push eax 在 AT&T 汇编格式中,用 '$' 前缀表示一个立即操作数;而在 Intel 汇编格式中,立即数的表示不用带任何前缀。例如: AT&T 格式 Intel 格式 pushl $1 push 1 AT&T 和 Intel 格式中的源操作数和目标操作数的位置正好相反。在 Intel 汇编格式中,目标操作数在源操作数的左边;而在 AT&T 汇编格式中,目标操作数在源操作数的右边。例如: AT&T 格式 Intel 格式 addl $1, %eax add eax, 1 在 AT&T 汇编格式中,操作数的字长由操作符的最后一个字母决定,后缀'b'、'w'、'l'分别表示操作数为字节(byte,8 比特)、字(word,16 比特)和长字(long,32比特);而在 Intel 汇编格式中,操作数的字长是用 "byte ptr" 和 "word ptr" 等前缀来表示的。例如: AT&T 格式 Intel 格式 movb val, %al mov al, byte ptr val 在 AT&T 汇编格式中,绝对转移和调用指令(jump/call)的操作数前要加上'*'作为前缀,而在 Intel 格式中则不需要。 远程转移指令和远程子调用指令的操作码,在 AT&T 汇编格式中为 "ljump" 和 "lcall",而在 Intel 汇编格式中则为 "jmp far" 和 "call far",即: AT&T 格式 Intel 格式

网友评论

  • 内容可以,格式简直不忍直视,感觉像是某网站直接COPY下来的,那么至少格式也要“可视化”一点吧?
  • 很赞,简练精悍!感谢分享!
  • 还行,内容似乎太少了。
  • 文档是txt格式,只有16k,但内容却很丰富,甚至包括了GCC的嵌入汇编语法。而且文中介绍AT&T汇编语法时有和Intel汇编的对比,这对熟悉8086但不熟悉GCC汇编的人来说很难得。文中还有一个简单的打印HelloWorld的例子....