0

$f0、$f1 等是 MIPS 中的浮点寄存器。其中有 32 个。只有 32 个寄存器的机器怎么样?$s0 和 $t0 等其他寄存器在哪里?

4

1 回答 1

2

MIPS 架构具有不同的寄存器集:

  • 通用寄存器(编号 0 到 31)
  • 浮点寄存器(16个双精度寄存器)
  • 一些特殊寄存器(程序计数器 PC(在架构上不可见)、LO 和 HI 寄存器用于保存乘法和除法的结果)

通用寄存器也有同义词:

  • $1 被命名为 $at
  • $2-$3 被命名为 $v0 和 $v1
  • $4-$7 被命名为 $a0-$a3
  • $8-$15 被命名为 $t0-$t7
  • $16-$23 被命名为 $s0-$s7
  • $24-$25 被命名为 $t0 和 $t1
  • $26-$27 被命名为 $k0, $k1
  • $28 是 $gp(全局指针)
  • $29 是 $sp(堆栈指针)
  • $30 是 $fp(帧指针,不要与浮点寄存器混淆)
  • $31 是 $ra(返回地址)

另请注意,$0 硬连线到常量零

您必须在每条指令中查看可以使用哪个寄存器集(例如,浮点运算将使用浮点寄存器集)。

于 2012-09-18T19:32:19.993 回答