敲门篇
敲门篇
MIPS 体系结构中的寄存器
MIPS 结构体系当中定义了 32 个寄存器
通用寄存器标志由 $ 符号开头,通常有两种使用的方式:
直接使用对应的寄存器的名称,例如 $t0、$t1、$sp 等。
直接使用对应的寄存器的编号,例如 $0、$1、$31 等。
每个寄存器都有其特定的作用,有相应的规范,如下表所示。
寄存器编号 助记符 用途 0 zero 值总是为 0 1 at (汇编暂存寄存器)一般由汇编器作为临时寄存器使用。我们编写 MIPS 汇编不使用。 2 - 3 v0 - v1 用于存放表达式的值,或函数的整型、指针型的返回值 4 - 7 a0 - a3 用于函数传参。其值在函数调用的过程中不会被保存。若函数参数较多,多出来的部分通常会使用栈进行传递。 8 - 15 t0 - t7 用于存放表达式的值的临时寄存器。其值在函数调用的过程中不会被保存。 16 - 23 s0 - s7 保存寄存器。这些寄存器中的值在经过函数调用之后不会改变。 24 - 25 t8 - t9 用于存放表达式的值的临时寄存器。其值在函数调用的过程中不会被保存。当调用位置无关函数时,25 号寄存器必须存放被调用函数的地址。 26 - 27 k0 - k1 仅被操作系统使用。 28 gp 全局指针和内容指针。 29 sp 栈指针。 30 fp 或 s8 保存寄存器(同 s0 - s7)。也可用作帧指针。 31 ra 函数返回地址。