数据类型
指令的主要任务是对操作数进行运算,操作数有不同的类型和长度,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]}