汇编代码中的ATT格式是什么样的?
在阅读csapp时,看到有关于x86-64指令集的代码格式是 ATT 格式。
在网上查阅也没找到相关回答,
希望可以解惑。
谢谢。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
在阅读csapp时,看到有关于x86-64指令集的代码格式是 ATT 格式。
在网上查阅也没找到相关回答,
希望可以解惑。
谢谢。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(3)
你这问题问的是什么呢?
如果你只是想看看 AT&T 格式的汇编长什么样,直接用 gcc 或者 gdb 输出就可以了嘛。它长这样:
如果你是找语法说明的话……呃,见多了自然就明白了吧。我好像也没专门看教程就会了。语法挺简单的。
PS: AT&T 和 Intel 一样,是一家美国公司的名字。在不支持符号的地方(比如域名)时才会写成 att。
如果懂一些Intel下的汇编,那么基本规律就是:
源和目的交换了,比如 ATT里,movl $4,%ebx # ebx=4
寄存器要添加%符号,常数要加$符号
指令后要申明数据类型,比如mov 一个long类型时,指令为movl,mov一个q格式时,movq
基本就这么一些区别,其他跟intel的是一样一样的。
我读过一些汇编文章,了解有限,自己用linux机器试过简单的打印hello world
《Professional Assembly Language》 Richard Blum 这本书,详细地讲了AT&T汇编