MIPS体系结构剖析,32个通用寄存器

mips汇编有个约定(后来也有些变化,我们不管,o32,n32),32个通用寄存器不是一视同仁

  的,而是分成下列部分:

      寄存器号            符号名            用途

        0                 始终为0     看起来象浪费,其实很有用

        1                 at          保留给汇编器使用

        2-3               v0,v1       函数返回值

        4-7               a0-a3       前头几个函数参数

        8-15              t0-t7       临时寄存器,子过程可以不保存就使用

        24-25             t8,t9       同上

        16-23             s0-s7       寄存器变量,子过程要使用它必须先保存

                                      然后在退出前恢复以保留调用者需要的值

        26,27             k0,k1       保留给异常处理函数使用

        28                gp          global pointer;用于方便存取全局或者静态变量

        29                sp          stack pointer

        30                s8/fp       第9个寄存器变量;子过程可以用它做frame pointer

        31                 ra         返回地址

   硬件上这些寄存器并没有区别(除了0号),区分的目的是为了不同的编译器产生的代码可以通用。

你可能感兴趣的:(MIPS体系结构剖析,32个通用寄存器)