mips 體系結(jié)構(gòu)和匯編語言快速入門

mips 體系結(jié)構(gòu)和匯編語言快速入門

ID:9213346

大?。?21.93 KB

頁數(shù):10頁

時(shí)間:2018-04-23

mips 體系結(jié)構(gòu)和匯編語言快速入門_第1頁
mips 體系結(jié)構(gòu)和匯編語言快速入門_第2頁
mips 體系結(jié)構(gòu)和匯編語言快速入門_第3頁
mips 體系結(jié)構(gòu)和匯編語言快速入門_第4頁
mips 體系結(jié)構(gòu)和匯編語言快速入門_第5頁
資源描述:

《mips 體系結(jié)構(gòu)和匯編語言快速入門》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、MIPS體系結(jié)構(gòu)和匯編語言快速入門譯者:SonicFu,NortheasternUniversity,Boston,MA,USA譯者按:有修改,無刪減,初學(xué)必讀。學(xué)習(xí)筆記,拋磚引玉!網(wǎng)上有一個(gè)老版本,不如此版全面。英文原版:http://logos.cs.uic.edu/366/notes/mips%20quick%20tutorial.htm#IOSystemCalls本文分3部分:1、寄存器2、程序結(jié)構(gòu)框架3、編寫匯編程序概要:數(shù)據(jù)類型和文法?數(shù)據(jù)類型:字節(jié),byte占用(8bit),halfword占2byte=16bit),word占用(4byt

2、e=32bit)?一個(gè)字符需要一個(gè)Byte的空間;?一個(gè)整數(shù)需要1個(gè)Word(4Byte)的空間;?MIPS結(jié)構(gòu)的每條指令長度都是32bit寄存器?MIPS體系架構(gòu)有32個(gè)通用寄存器。在匯編程序中,可以用編號$0到$31來表示;?也可以用寄存器的名字來進(jìn)行表示,例如:$sp,$t1,$ra….?有兩個(gè)特殊的寄存器Lo,Hi,用來保存乘法/除法的運(yùn)算結(jié)果;此2寄存器不能直接尋址,只能用特殊的指令:mfhi和mflo來aceess其中的內(nèi)容。(含義:mfhi=movefromHi,mflo=MovefromLow.)?堆棧(Stack)的增長方向是:從內(nèi)存的

3、高地址方向,向低地址方向;表格1:寄存器的編號名稱及分類編號寄存器名稱寄存器描述0Zero第0號寄存器,其值始終為01$at(AssemblerTemporary)是Assembler保留的寄存器2~3$v0~$v1(values)保存表達(dá)式或函數(shù)返回的結(jié)果(arguments)作為函數(shù)的前四個(gè)入?yún)?。在子函?shù)調(diào)用的過程中不4-7$a0-$a3會被保留。(temporaries)Callersavedifneeded.Subroutinescanusewithout8-15$t0-$t7saving.供匯編程序使用的臨時(shí)寄存器。在子函數(shù)調(diào)用的過程中不會被保

4、留。(savedvalues)-Calleesaved.16-23$s0-$s7Asubroutineusingoneofthesemustsaveoriginalandrestoreitbeforeexiting.在子函數(shù)調(diào)用的過程中會被保留。(temporaries)Callersavedifneeded.Subroutinescanusewithout24-25$t8-$t9saving.供匯編程序使用的臨時(shí)寄存器。在子函數(shù)調(diào)用的過程中不會被保留。這是對$t0-$t7的補(bǔ)充。26-27$k0-$k1保留,僅供中斷(interrupt/trap)處理

5、函數(shù)使用.globalpointer.全局指針。Pointstothemiddleofthe64Kblockof28$gpmemoryinthestaticdatasegment.指向固態(tài)數(shù)據(jù)塊內(nèi)存的64K的塊的中間。29$spstackpointer堆棧指針,指向堆棧的棧頂。savedvalue/framepointer保存的值/幀指針30$s8/$fp其中的值在函數(shù)調(diào)用的過程中會被保留31$rareturnaddress返回地址匯編程序結(jié)構(gòu)框架匯編源程序代碼本質(zhì)上是文本文件。由數(shù)據(jù)聲明、代碼段兩部分組成。匯編程序文件應(yīng)該以.s為后綴,以在Spim軟件

6、中進(jìn)行模擬。(實(shí)際上ASM也行。)數(shù)據(jù)聲明部分在源代碼中,數(shù)據(jù)聲明部分以.data開始。聲明了在代碼中使用的變量的名字。同時(shí),也在主存(RAM)中創(chuàng)建了對應(yīng)的空間。程序代碼部分在源代碼中,程序代碼部分以.text開始。這部分包含了由指令構(gòu)成的程序功能代碼。代碼以main:函數(shù)開始。main的結(jié)束點(diǎn)應(yīng)該調(diào)用exitsystemcall,參見后文有關(guān)systemcall的介紹。程序的注釋部分使用#符號進(jìn)行注釋。每行以#引導(dǎo)的部分都被視作注釋。一個(gè)MIPS匯編程序框架:#Commentgivingnameofprogramanddescriptionoffun

7、ction#Template.s#Bare-bonesoutlineofMIPSassemblylanguageprogram.data#variabledeclarationsfollowthisline#....text#instructionsfollowthislinemain:#indicatesstartofcode(firstinstructiontoexecute)#...#Endofprogram,leaveablanklineafterwardstomakeSPIMhappy編寫MIPS匯編程序:Content:PartI:數(shù)據(jù)的聲明

8、PartII:數(shù)據(jù)的裝載和保存(Load/Store指令)PartIII:尋址P

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動畫的文件,查看預(yù)覽時(shí)可能會顯示錯(cuò)亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時(shí)聯(lián)系客服。
3. 下載前請仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請聯(lián)系客服處理。