Assembly 可以在GAS(GNU汇编程序)中使用MIPS寄存器名吗?

Assembly 可以在GAS(GNU汇编程序)中使用MIPS寄存器名吗?,assembly,gnu,mips,binutils,Assembly,Gnu,Mips,Binutils,如果我使用注册表名,我会得到: Error: illegal operands `add $t0,$zero,$zero' 如果我使用寄存器编号($8而不是$t0和$0而不是$0),它会工作。 (我使用的是binutils 2.17)。GNU汇编程序不直接支持符号寄存器名。如果使用gcc驱动汇编程序,一种常见的方法是对汇编程序源文件使用“.S”扩展名(它告诉gcc在汇编程序之前将源文件通过C预处理器),并#包括一个包含如下定义的头文件: #define zero $0 #define v0

如果我使用注册表名,我会得到:

Error: illegal operands `add $t0,$zero,$zero'
如果我使用寄存器编号(
$8
而不是
$t0
$0
而不是
$0
),它会工作。
(我使用的是binutils 2.17)。

GNU汇编程序不直接支持符号寄存器名。如果使用gcc驱动汇编程序,一种常见的方法是对汇编程序源文件使用“.S”扩展名(它告诉gcc在汇编程序之前将源文件通过C预处理器),并#包括一个包含如下定义的头文件:

#define zero $0
#define v0   $2
#define v1   $3
然后汇编器源可以有如下语句

add v0, zero, zero

小诡辩:
v0
v1
$2
$3
$1
)!你说得对-这就是我信任我的内存的原因,威尔是正确的。请注意,标题可能已经是你系统的一部分了。查找文件,如
/usr/include/sys/reg.h
/usr/include/mips-linux-gnu/sys/regdef.h
。Binutils 2.18及更高版本确实支持符号寄存器名。