MIPS32指令集架构简介

作者 王占坤 日期 2019-04-05
MIPS32指令集架构简介

数据类型

指令的主要任务是对操作数进行运算,操作数有不同的类型和长度,MIPS32提供的基本数据类型如下。

  • 位(b):长度为bit
  • 字节(byte): 长度是8bit
  • 半字(half word): 长度是16bit
  • 字(word):长度是32bit
  • 双字(double word):长度是64bit 此外,还有32位单精度浮点数,64位双精度浮点数

寄存器

RISC一大特点是:大量使用寄存器。这是因为寄存器的存取可以在一个时钟周期内完成,同时简化了寻址方式。
MIPS32中的指令中除加载/存储指令外,都是使用寄存器或者立即数作为操作数的。

通用寄存器(General Purpose Register, GPR)

MIPS32定义了32个通用寄存器,使用$0、$1…$31表示,都是32位。 关于这32个通用寄存器的约定用法有时间补充。

特殊寄存器

MIPS32定义了3个特殊寄存器:

  • 程序计数器(Program Counter, PC)
  • 乘除结果高位寄存器(HI)
  • 乘除结果低位寄存器(LO)

HI和LO保存乘法运算的结果,HI存储高32位,LO存储低32位;进行除法运算时,HI存储余数,LO存储商。

字节次序

数据在存储器中按字节存放,处理器也是按照字节访问存储器中的指令或数据。

大端模式(Big-Endian)

也称作MSB(Most Significant Byte)
若读出一个字,即4个字节,那么交给处理器的结果是

{mem[n],mem[n+1],mem[n+2],mem[n+3]}

小端模式(Little-Endian)

也称作LSB(Least Significant Byte)
结果是

{mem[n+3],mem[n+2],mem[n+1],mem[n]}

指令格式