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保存了最近取到的指令。
-
寄存器
+關注
關注
31文章
5363瀏覽量
121158 -
mips
+關注
關注
1文章
239瀏覽量
47853
發布評論請先 登錄
相關推薦
一文解析Matlab如何實現移位寄存器
![<b class='flag-5'>一</b><b class='flag-5'>文</b>解析Matlab如何實現移位<b class='flag-5'>寄存器</b>](https://file.elecfans.com/web1/M00/4F/AD/pIYBAFrhK_aARu65AABBtxD__jQ330.jpg)
MIPS寄存器詳解
![<b class='flag-5'>MIPS</b><b class='flag-5'>寄存器</b>詳解](https://file1.elecfans.com//web2/M00/A6/CA/wKgZomUMQHiAd52wAAAMCTS_SkM436.jpg)
評論