Theme Preview

MIPS32 CPU寄存器

由 李晓岚 在 2012年03月24日发表

 

MIPS32定义了下面几种寄存器:

  1. 32个32位(32-bits)的通用寄存器(GPRs)。
  2. 一对特殊用途的32位寄存器LO和HI,用于保存乘法和除法的结果。
  3. 一个程序计数器PC,只能通过某些指令间接修改。
  • 通用寄存器

32个通用寄存器中,有两个指定了特殊功能:

  1. r0的值其实是一个常量0。它可以当作目标寄存器使用,但是操作结果将被丢弃,寄存器值保持0不变。也可以当作源寄存器使用,当需用常量0的时候。
  2. 在一些指令中,如果不明确指定目标寄存器时,默认会使用r31作为目标寄存器。除此之外,r31和其它通用寄存器没有任何区别。

其它的通用寄存器,没有任何限制,可以任意使用。

  • 特殊用途寄存器

总共有三个特殊用途寄存器:

  1. PC,程序计数寄存器。
  2. LO,保存乘法和除法结果的低32位。
  3. HI,保存乘法和除法结果的高32位。
  • 乘法指令中,HI和LO保存整数乘法的结果。
  • 乘-加和乘-减指令中,HI和LO保存乘-加和乘-减的结果。
  • 除法指令中,LO保存结果的商,HI保存结果的余数。
  • 乘-累加指令中,HI和LO保存乘-累加后的结果。

 

标签:MIPS

comments powered by Disqus