什么是操作码的AT& T语法后缀?

时间:2012-03-27 00:55:21

标签: macos assembly 64-bit freebsd att

注意:我正在使用基于BSD的系统,所以如果我没记错的话,这意味着被调用的子程序/函数的args被压入堆栈而不是放在寄存器中

我一直在尝试汇编,我想尝试一下简单的内核退出程序:

.globl _start

_start:
    movl $0x20, %eax
    pushl %eax
    movl $0x1, %eax
    subl $0x4, %esp
    int $0x80

在64位汇编中。

我记得读到一个很大的区别是寄存器现在被重命名为r而不是e前缀的32位标准。

但是如果l已经意味着32位长,那么64位操作码的新后缀是什么?

出于好奇,为什么它是新寄存器的r前缀?

如果有任何好的资源可以找到更多信息。或者教程,教程总是很有趣。

1 个答案:

答案 0 :(得分:2)

对于 qword ,后缀为q,而r应该代表 register Here's AT& T语法的介绍。