mips的汇编寄存器都用数字表达,非常反人类,这里记录一下每个寄存器的含义:
32个通用寄存器
0($zero): 永远返回值为0
1($at): 用做汇编器的暂时变量
2-3($v0-$v1): 子函数调用返回结果
4-7($a0-$a3): 子函数调用的参数
8-15($t0-$t7): 暂时变量,子函数使用时不需要保存与恢复
16-23($s0-$s7): 子函数寄存器变量。子函数必须保存和恢复使用过的变量在函数返回之前,从而调用函数知道这些寄存器的值没有变化。
24-25($t8-$t9): 暂时变量,子函数使用时不需要保存与恢复
26-27($k0-$k1): 通常被中断或异常处理程序使用作为保存一些系统参数
28($gp): 全局指针。一些运行系统维护这个指针来更方便的存取“static“和”extern”变量。
29($sp): 堆栈指针
30($s8/$fp): 第9个寄存器变量。子函数可以用来做桢指针
31($ra): 子函数的返回地
cp0:协处理器0,MIPS对CPU的控制用cp0完成
阅读(270602) | 评论(0) | 转发(0) |