在阅读csapp时,看到有关于x86-64指令集的代码格式是 ATT 格式。
在网上查阅也没找到相关回答,
希望可以解惑。
谢谢。
如果懂一些Intel下的汇编,那么基本规律就是:
源和目的交换了,比如 ATT里,movl $4,%ebx # ebx=4
寄存器要添加%符号,常数要加$符号
指令后要申明数据类型,比如mov 一个long类型时,指令为movl,mov一个q格式时,movq
基本就这么一些区别,其他跟intel的是一样一样的。
我读过一些汇编文章,了解有限,自己用linux机器试过简单的打印hello world
你这问题问的是什么呢?
如果你只是想看看 AT&T 格式的汇编长什么样,直接用 gcc 或者 gdb 输出就可以了嘛。它长这样:
如果你是找语法说明的话……呃,见多了自然就明白了吧。我好像也没专门看教程就会了。语法挺简单的。
PS: AT&T 和 Intel 一样,是一家美国公司的名字。在不支持符号的地方(比如域名)时才会写成 att。