mips 寄存器解释

来源:互联网 发布:爱之光朱晓秋网络课程 编辑:程序博客网 时间:2024/05/18 00:49

MIPS 有32个寄存器(0~31), 每个寄存器各有不同的用途。

寄存器 zero (  0):    0 常量。不能保存数据

寄存器 at   (1):        预留给 汇编编译器用

寄存器  v0 (2)

             v1 (3) :         这两个寄存器用来保存函数的返回值

寄存器 a0 (4)

           a1 (5)

           a2 (6)

           a3  (7):         用来传递函数的参数

寄存器 t0 (8)

           t1 (9)

           t2 (10)

           t3 (11)

           t4 (12)

           t5 (13)

           t6 (14)

           t7 (15)

           t8 (24)

           t9 (25):   保存代码里的临时值。 函数调用者需要注意保存这些寄存器的数值(caller-saved),因为有可能会被被调用的函数重写

寄存器 s0 (16)

            s1 (17)

            s2 (18)

            s3 (19)

            s4 (20)

            s5 (21)

           s6 (22)

           s7 (23) : 用来需要保存的临时值.  被调用函数需要保存,恢复用到的这些寄存器(callee-saved)

寄存器 k0 (26)

           k1 (27): 预留给 OS 内核

寄存器 gp (28): Pointer to global area

寄存器 sp (29): 栈指针

           fp/s8 (30):  frame 指针;也可作为 callee-saved 变量

          ra (31):  保存函数调用返回地址

另外,还有 PC (程序寄存器), IR (Instruction Register). IR保存了最近取到的指令。
0 0