【问题标题】:Is it possible to use MIPS register names with GAS (GNU assembler)?是否可以将 MIPS 寄存器名称与 GAS(GNU 汇编器)一起使用?
【发布时间】:2009-04-06 12:24:00
【问题描述】:

如果我使用寄存器名称,我会得到:

Error: illegal operands `add $t0,$zero,$zero'

如果我使用注册号($8 而不是 $t0$0 而不是 $zero)它可以工作。 (我使用的是 binutils 2.17)。

【问题讨论】:

  • Binutils 2.18 及更高版本支持符号寄存器名称。

标签: assembly gnu mips binutils


【解决方案1】:

GNU 汇编器不直接支持符号寄存器名称。如果使用 gcc 来驱动汇编程序,一种常见的方法是使用“.S”扩展名作为汇编程序源文件(它告诉 gcc 在汇编程序之前通过 C 预处理器传递源代码)和 #include 包含定义的头文件喜欢:

#define zero $0
#define v0   $2
#define v1   $3

那么汇编源可以有类似的语句

add v0, zero, zero

【讨论】:

  • 小问题:v0v1$2$3$1at)!
  • 你是对的 - 这就是我相信我的记忆所得到的,会更正。
  • 请注意,标头可能已经是您系统的一部分。查找诸如/usr/include/sys/reg.h/usr/include/mips-linux-gnu/sys/regdef.h 之类的文件。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-07-11
  • 2020-09-26
  • 2021-03-25
  • 2015-12-21
  • 1970-01-01
  • 1970-01-01
  • 2020-01-30
相关资源
最近更新 更多