概要
MIPS寄存器
RISC的一个显著特点就是大量使用寄存器。因为寄存器的存取可以在一个时钟周期内完成,同时简化了寻找方式,所以,MIPS的指令中除了加载/存储指令以外,都使用寄存器或者立即数作为操作数,以便让编译器通过保持对寄存器内数据的频繁存取进一步优化代码的生成性能。
MIPS32寄存器分为两类:通用寄存器(GPR)和特殊寄存器。
通用寄存器(GPR)
在MIPS体系结构中有32个通用寄存器,在汇编程序中可以用编号$0~$31表示,也可以用寄存器的名字表示,如sp、sp、sp、t1、$ta等,如图,堆栈是从内存的高地址方向向低地址方向增长的。
| 编号 | 寄存器名称 | 寄存器描述 |
|---|---|---|
| 0 | zero | 第0号寄存器,其值始终为0 |
| 1 | $at | 保留寄存器 |
| 2~3 | $v0~v1 | values, 保存表达式或函数返回结果 |
| 4-7 | $a0~a3 | aruments, 作为函数的前4个参数 |
| 8~15 | t0 t0~t0 t7 | temporaries,供汇编程序使用的临时寄存器 |
| 16~23 | s0 s0~s0 s7 | saved values,子函数使用时需要先保存原寄存器的值 |
| 24~25 | $t8~t9 | temporaries, 供汇编程序的临时寄存器,补充$t0~t7 |
| 26~27 | k0 k0~k0 k1 |

MIPS架构的处理器使用32个通用寄存器和3个特殊寄存器。通用寄存器包括$0-$31,其中$0始终为0,$1用于汇编内部,$v0和$v1存储函数返回值,$a0-$a3传递参数,$t0-$t7和$s0-$s7分别作为临时和保存寄存器。特殊寄存器包含PC、HI和LO,用于乘除运算。堆栈操作通过通用寄存器和内存完成,$sp和$ra在函数调用中起关键作用。
2853

被折叠的 条评论
为什么被折叠?



