寄存器
寄存器在MIPS体系结构中有32个通用寄存器,在汇编程序中可以用编号表示,$0~31 , 也 可 以 用 名 称 表 示 , 如31,也可以用名称表示,如31,也可以用名称表示,如sp,$t1。
编号 | 名称 | 说明 |
---|
$0 | $zero | 零号寄存器,值恒等于0 | $1 | $at | 保留寄存器,用于处理大的常数 | $2 - $3 | $v0 - $v1 | 保留表达式或函数返回结果 | $4 - $7 | $a0 - $a3 | 作为函数的前4个参数 | $8-$15 | $t0 - $t7 | 供汇编程序使用的临时寄存器 | $16-$23 | $s0 - $s7 | 子函数使用时需要先保存原寄存器的值 | $24-$25 | $t8 - $9 | 供汇编程序的临时寄存器,补充 t0-t7 | $26-$27 | $k0 - $k1 | 中断处理函数使用 | 28 | $gp | 全局指针 | 29 | $sp | 堆栈指针,指向堆栈的栈顶 | 30$ | fp | 保存栈指针 | 31 | $ra | 返回地址 |
指令集
指令集:一个给定的计算机体系结构所包含的指令集合。
指令格式
MIPS指令集有三种指令格式:R型指令,I型指令,J型指令
R型指令
Op:指令操作码
Rs:第一个源操作数寄存器号,参与运算使用
Rt:第二个源操作数寄存器号,参与运算使用
Rd:目的操作数寄存器号,保存结果使用
Shamt:位偏移量,仅在位移指令使用,在此直接置0
Func:指令函数码,用于选择Op操作中的具体函数
I型指令
Op:指令操作码
Rs:第一个源操作数寄存器号,参与运算使用
Rt:第二个源操作数寄存器号,参与运算使用
16位立即数:作为数据,参与运算使用
注:立即数,顾名思义,就是可以立即使用的数,即在指令中就给了具体的数据,而不用先给出寄存器号到寄存器中去找。
J型指令
Op:指令操作码
26位地址数:作为地址,参与寻址使用
通常用于指令的跳转使用,后面的数据用于提供跳转地址
参考资料
- 《计算机组成与设计——硬件/软件接口》
- https://blog.csdn.net/SundayO/article/details/101108385
- https://blog.csdn.net/weixin_45792450/article/details/109557734
|