General registers:
r0--------Always contains a zero value.
r1(at) ---Temporary register not saved across calls.
r2(v0)---Temporary register not saved across calls. Returns value to calling functions.
r3(v1)---Temporary register not saved across calls. Used with r2 to return 64-bit value to calling function. Also used as the stack link register when calling nested procedures in Ada.
r4-r7(a0-a3),r8-r11(t0-t3)---Parameter registers to called function, not saved across calls.
r12-r15(t4-t7) Temporary registers not saved across calls.
r16-r23(s0-s7),r30(s8)---Permant registers saved across calls.
r24-r25(t8-t9)---Temporary registers not saved across calls.
r26-r27(k0-k1)---Unused, reserved for operating system kernel.
r28(gp)---PID/SDA base register in PID/SDA mode.
r29(sp)---Stack pointer.
r30(fp)---Either the frame pointer or a permanent register.
r31(ra)---Link register containning the return address of calling function.
hi,lo------Multiply/divide destination.
Floating-point registers:
In 32-bit mode
$f0($f1) ---------- Return Registers.
$f12($f13)-$f18($f19) ----------- Parameter Registers.
$f0($f1)-$f18($f19), $f28($f29)-$f30($f31) -------------- Temporary Registers.
$f20($f21)-$f26($f27) -------------Permanent Registers.
In 64-bit mode
$f0 ---------- Return Registers.
$f12-$f19 ----------- Parameter Registers.
$f0-$f19 -------------- Temporary Registers.
$f20-$f31 -------------Permanent Registers.
阅读(913) | 评论(0) | 转发(0) |