MIPS的寻址方式:
1、MIPS硬件只支持一种寻址模式,即:寄存器基地址 +
立即数偏移量,且offset必须在-32768~32767之间(16位),任何载入和存储机器指令都可以写成:
lw
$1,offset($2)
可以使用任何寄存器作为目的操作数或源操作数。
2、但是,MIPS汇编器可以利用合成指令来支持多种寻址方式,这些寻址方式包括:
直接寻址(Direct):由数据标号或者外部变量名寻址;
直接+索引(Direct+index):偏移量加上由寄存器指定的标号地址;
常数(Constant):32位常数;
寄存器间接(Register Indirect):寄存器+偏移量(其中偏移量为0).
3、另外,MIPS对数据的访问还有一种称为“全局指针gp相对寻址”的技术。
MIPS的指令格式:
MIPS只有三种指令格式:
1、R(register)类型的指令。该类型指令从寄存器堆(register
file)中读取两个源操作数,计算结果写回寄存器堆。
| op |
rs |
rt |
rd |
shamt
|
funct |
| 6bit |
5bit |
5bit |
5bit |
5bit |
6bit |
2、I(immediate)类型的指令。该类型指令使用一个16位的立即数作为一个源操作数。
| op |
rs |
rt |
Address/Immediate |
| 6bit |
5bit |
5bit |
16bit |
3、J(jump)类型的指令。该类型指令使用一个26位的立即数作为跳转的目标地址(target
address)。
| op |
target-address |
| 6bit |
26bit |
参考资料:
1、《See MIPS run》;
2、http://wenku.baidu.com/view/66672a07e87101f69e319526.html 指令系统与寻址方式
加载中,请稍候......