简体   繁体   English

MIPS中的浮点寄存器数

[英]Number of Floating point registers in MIPS

$f0, $f1 and so on are floating point registers in MIPS. $ f0,$ f1等是MIPS中的浮点寄存器。 There are 32 of them. 其中有32个。 How about the machines with 32 registers only? 只有32个寄存器的机器怎么样? Where are the other registers like $s0 and $t0? 其他寄存器在哪里如$ s0和$ t0?

MIPS architecture has different set of registers: MIPS架构有不同的寄存器集:

  • General purpose registers (numbered 0 to 31) 通用寄存器(编号0到31)
  • Floating point registers (16 double precision registers) 浮点寄存器(16个双精度寄存器)
  • Some special registers (program counter PC (not architecturally visible), LO and HI registers to hold result of multiplication and division) 一些特殊的寄存器(程序计数器PC(在架构上不可见),LO和HI寄存器用于保存乘法和除法的结果)

General purpose registers also have synonyms: 通用寄存器也有同义词:

  • $1 is named $at $ 1被命名为$ at
  • $2-$3 are named $v0 and $v1 $ 2- $ 3被命名为$ v0和$ v1
  • $4-$7 are named $a0-$a3 $ 4- $ 7被命名为$ a0- $ a3
  • $8-$15 are named $t0-$t7 $ 8- $ 15被命名为$ t0- $ t7
  • $16-$23 are named $s0-$s7 $ 16- $ 23被命名为$ s0- $ s7
  • $24-$25 are named $t0 and $t1 $ 24- $ 25被命名为$ t0和$ t1
  • $26-$27 are named $k0, $k1 $ 26- $ 27被命名为$ k0,$ k1
  • $28 is $gp (global pointer) $ 28是$ gp(全局指针)
  • $29 is $sp (stack pointer) 29美元是$ sp(堆栈指针)
  • $30 is $fp (frame pointer, not to be confused with floating point register) $ 30是$ fp(帧指针,不要与浮点寄存器混淆)
  • $31 is $ra (return address) 31美元是$ ra(回邮地址)

Also note that $0 is hardwired to constant zero 另请注意,$ 0硬连线为常数零

You have to see in each instruction which register set can be used (eg floating point operations will use floating point register set). 您必须在每条指令中看到可以使用哪个寄存器集(例如,浮点运算将使用浮点寄存器集)。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM