赞
踩
MIPS寄存器
RISC的一个显著特点就是大量使用寄存器。因为寄存器的存取可以在一个时钟周期内完成,同时简化了寻找方式,所以,MIPS的指令中除了加载/存储指令以外,都使用寄存器或者立即数作为操作数,以便让编译器通过保持对寄存器内数据的频繁存取进一步优化代码的生成性能。
MIPS32寄存器分为两类:通用寄存器(GPR)和特殊寄存器。
在MIPS体系结构中有32个通用寄存器,在汇编程序中可以用编号$0~$31
表示,也可以用寄存器的名字表示,如
s
p
、
sp、
sp、t1、$ta等,如图,堆栈是从内存的高地址方向向低地址方向增长的。
编号 | 寄存器名称 | 寄存器描述 |
---|---|---|
0 | zero | 第0号寄存器,其值始终为0 |
1 | $at | 保留寄存器 |
2~3 | $v0~v1 | values, 保存表达式或函数返回结果 |
4-7 | $a0~a3 | aruments, 作为函数的前4个参数 |
8~15 | t 0 t0~ t0 t7 | temporaries,供汇编程序使用的临时寄存器 |
16~23 | s 0 s0~ s0 s7 | saved values,子函数使用时需要先保存原寄存器的值 |
24~25 | $t8~t9 | temporaries, 供汇编程序的临时寄存器,补充$t0~t7 |
26~27 | k 0 k0~ k0 k1 | 保留,中断处理函数使用 |
28 | $gp | global pointer,全局指针 |
29 | $sp | stack pointer, 堆栈指针,指向堆栈的栈顶 |
30 | $fp | frame pointer, 保存栈指针 |
31 | $ra | return address, 返回地址 |
MIPS32架构中定义了3个特殊寄存器。分别为PC(程序计数器)、HI(乘除结果高位寄存器)和LO(乘除结果低位寄存器)。在进行乘法运算时,HI和LO保存乘法的运算结果,其中HI存储高32位,LO存储低32位;而在进行除法运算时,HI保存余数,LO存储商。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。