當(dāng)前位置:首頁 > 芯聞號(hào) > 充電吧
[導(dǎo)讀]MIPS有32個(gè)通用寄存器($0-$31),各寄存器的功能及匯編程序中使用約定如下: 下表描述32個(gè)通用寄存器的別名和用途 REGISTER NAME USAGE $0 $zero

MIPS有32個(gè)通用寄存器($0-$31),各寄存器的功能及匯編程序中使用約定如下:

下表描述32個(gè)通用寄存器的別名和用途

REGISTER

NAME

USAGE

$0

$zero

常量0(constant value 0)

$1

$at

保留給匯編器(Reserved for assembler)

$2-$3

$v0-$v1

函數(shù)調(diào)用返回值(values for results and expression evaluation)

$4-$7

$a0-$a3

函數(shù)調(diào)用參數(shù)(arguments)

$8-$15

$t0-$t7

暫時(shí)的(或隨便用的)

$16-$23

$s0-$s7

保存的(或如果用,需要SAVE/RESTORE的)(saved)

$24-$25

$t8-$t9

暫時(shí)的(或隨便用的)

$28

$gp

全局指針(Global Pointer)

$29

$sp

堆棧指針(Stack Pointer)

$30

$fp

幀指針(Frame Pointer)

$31

$ra

返回地址(return address)



下面給以詳細(xì)說明:
$0:即$zero,該寄存器總是返回零,為0這個(gè)有用常數(shù)提供了一個(gè)簡(jiǎn)潔的編碼形式。
???????????move $t0,$t1
???????實(shí)際為
???????????add $t0,$0,$t1
???????使用偽指令可以簡(jiǎn)化任務(wù),匯編程序提供了比硬件更豐富的指令集。
$1:即$at,該寄存器為匯編保留,由于I型指令的立即數(shù)字段只有16位,在加載大常數(shù)時(shí),編譯器或匯編程序需要
???????把大常數(shù)拆開,然后重新組合到寄存器里。比如加載一個(gè)32位立即數(shù)需要 lui(裝入高位立即數(shù))和addi兩條
???????指令。像MIPS程序拆散和重裝大常數(shù)由匯編程序來完成,匯編程序必需一個(gè)臨時(shí)寄存器來重組大常數(shù),這
???????也是為匯編 保留$at的原因之一。
$2..$3:($v0-$v1)用于子程序的非浮點(diǎn)結(jié)果或返回值,對(duì)于子程序如何傳遞參數(shù)及如何返回,MIPS范圍有一套約
???????定,堆棧中少數(shù)幾個(gè)位置處的內(nèi)容裝入CPU寄存器,其相應(yīng)內(nèi)存位置保留未做定義,當(dāng)這兩個(gè)寄存器不夠存
???????放返回值時(shí),編譯器通過內(nèi)存來完成。
$4..$7:($a0-$a3)用來傳遞前四個(gè)參數(shù)給子程序,不夠的用堆棧。a0-a3和v0-v1以及ra一起來支持子程序/過程
???????調(diào)用,分別用以傳遞參數(shù),返回結(jié)果和存放返回地址。當(dāng)需要使用更多的寄存器時(shí),就需要堆棧(stack)
???????了,MIPS編譯器總是為參數(shù)在堆棧中留有空間以防有參數(shù)需要存儲(chǔ)。
$8..$15:($t0-$t7)臨時(shí)寄存器,子程序可以使用它們而不用保留。
$16..$23:($s0-$s7)保存寄存器,在過程調(diào)用過程中需要保留(被調(diào)用者保存和恢復(fù),還包括$fp和$ra),MIPS
???????提供了臨時(shí)寄存器和保存寄存器,這樣就減少了寄存器溢出(spilling,即將不常用的變量放到存儲(chǔ)器的過程),
???????編譯器在編譯一個(gè)葉(leaf)過程(不調(diào)用其它過程的過程)的時(shí)候,總是在臨時(shí)寄存器分配完了才使用需要
???????保存的寄存器。
$24..$25:($t8-$t9)同($t0-$t7)
$26..$27:($k0,$k1)為操作系統(tǒng)/異常處理保留,至少要預(yù)留一個(gè)。 異常(或中斷)是一種不需要在程序中顯示
???????調(diào)用的過程。MIPS有個(gè)叫異常程序計(jì)數(shù)器(exception program counter,EPC)的寄存器,屬于CP0寄存器,

???????用于保存造成異常的那條指令的地址。查看控制寄存器的唯一方法是把它復(fù)制到通用寄存器里,指令mfc0
? ? ? ?(move from system control)可以將EPC中的地址復(fù)制到某個(gè)通用寄存器中,通過跳轉(zhuǎn)語句(jr),程序可以返
? ? ? ?回到造成異常的那條指令處繼續(xù)執(zhí)行。MIPS程序員都必須保留兩個(gè)寄存器$k0和$k1,供操作系統(tǒng)使用。

???????發(fā)生異常時(shí),這兩個(gè)寄存器的值不會(huì)被恢復(fù),編譯器也不使用k0和k1,異常處理函數(shù)可以將返回地址放到這
???????兩個(gè)中的任何一個(gè),然后使用jr跳轉(zhuǎn)到造成異常的指令處繼續(xù)執(zhí)行。
$28:($gp)為了簡(jiǎn)化靜態(tài)數(shù)據(jù)的訪問,MIPS軟件保留了一個(gè)寄存器:全局指針gp(global pointer,$gp),全局指針
???????只想靜態(tài)數(shù)據(jù)區(qū)中的運(yùn)行時(shí)決定的地址,在存取位于gp值上下32KB范圍內(nèi)的數(shù)據(jù)時(shí),只需要一條以gp為基
???????指針的指令即可。在編譯時(shí),數(shù)據(jù)須在以gp為基指針的64KB范圍內(nèi)。
$29:($sp)MIPS硬件并不直接支持堆棧,你可以把它用于別的目的,但為了使用別人的程序或讓別人使用你的程
???????序, 還是要遵守這個(gè)約定的,但這和硬件沒有關(guān)系。
$30:($fp)GNU MIPS C編譯器使用了幀指針(frame pointer),而SGI的C編譯器沒有使用,而把這個(gè)寄存器當(dāng)作保
???????存寄存器使用($s8),這節(jié)省了調(diào)用和返回開銷,但增加了代碼生成的復(fù)雜性。
$31:($ra)存放返回地址,MIPS有個(gè)jal(jump-and-link,跳轉(zhuǎn)并 鏈接)指令,在跳轉(zhuǎn)到某個(gè)地址時(shí),把下一條指令的
???????地址放到$ra中。用于支持子程序,例如調(diào)用程序把參數(shù)放到$a0~$a3,然后jal X跳到X過程,被調(diào)過程完成后
???????把結(jié)果放到$v0,$v1,然后使用jr $ra返回。
本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉