MIPS 指令系統(tǒng)和匯編語言_第1頁
MIPS 指令系統(tǒng)和匯編語言_第2頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、 12/12MIPS 指令系統(tǒng)和匯編語言 第四章MIPS指令系統(tǒng)和匯編語言 1.考研預(yù)測:出題特點總結(jié) 本章是對統(tǒng)考408內(nèi)容來說,本章是新增的章節(jié)。此外北航961大綱中制定了要考MIPS 指令集,從15年961真題來看MIPS是重中之重。但是今年計組并沒有指定具體的教材,但大綱明確要求掌握MIPS指令集,所以還是建議考生將計算機組成與設(shè)計:硬件/軟件接口中文版(原版第三版或第四版)作為本章的參考書籍。 本章大致內(nèi)容是MIPS的基礎(chǔ)知識,難度并不大??忌鷳?yīng)該將重點放在MIPS指令集的基礎(chǔ)上,考察C語言中的語句轉(zhuǎn)換為對應(yīng)的MIPS指令,所以需要熟練掌握C語言中一些語句對應(yīng)的MIPS指令實現(xiàn)。本章

2、出題很大可能就是C語言和MIPS匯編語言之間的轉(zhuǎn)換,也可能涉及到第五章CPU指令流水線等內(nèi)容。 2.考研知識點系統(tǒng)整理:梳理考點,各個擊破 3.1 指令系統(tǒng)概述 機器指令要素 操作碼:指明進行的何種操作 源操作數(shù)地址:參加操作的操作數(shù)的地址,可能有多個。 目的操作數(shù)地址:保存操作結(jié)果的地址。 下條指令的地址:指明下一條要運行的指令的位置,一般指令是按順序依次執(zhí)行的,所以絕大多數(shù)指令中并不顯式的指明下一條指令的地址,也就是說,指令格式中并不包含這部分信息。只有少數(shù)指令需要顯示指明下一條指令的地址。 指令執(zhí)行周期 3.2 指令格式 一臺計算機指令格式的選擇和確定要涉及多方面的因素,如指令長度、地址

3、碼結(jié)構(gòu)以及操 作碼結(jié)構(gòu)等,是一個很復(fù)雜的問題,它與計算機系統(tǒng)結(jié)構(gòu)、數(shù)據(jù)表示方法、指令功能設(shè)計等都密切相關(guān)。 指令的基本格式 一條指令就是機器語言的一個語句,它是一組有意義的二進制代碼,指令的基本格式如下: ( 其中A1為第一操作數(shù)地址,A2為第二操作數(shù)地址,A3為操作結(jié)果存放地址。 這條指令的含義:(A1)OP(A2)A3 式中OP表示雙操作數(shù)運算指令的運算符號,如“+”或“”等。 (2)二地址指令 如果讓第一操作數(shù)地址同時兼作存放結(jié)果的地址(目的地址),這樣即得到了二地址指令,其格式為: 其中A1為目的操作數(shù)地址,A2為源操作數(shù)地址。 指令的含義:(A1)OP(A2)A1。 ( 保( 存器,

4、 個短。 這是一種最簡單的編碼方法,為了能表示整個指令系統(tǒng)中的全部指令,指令的操作碼字段應(yīng)當(dāng)具有足夠的位數(shù)。假定指令系統(tǒng)共有m條指令,指令中操作碼字段的位數(shù)為N位,則有如下關(guān)系式: m2N,所以Nlog2m 定長操作碼對于簡化硬件設(shè)計,減少指令譯碼的時間是非常有利的,在字長較長的大、中 型計算機及超級小型計算機上廣泛采用。例如,IBM 370機中不論指令的長度為多少位,其操作碼字段一律都是8位。8位操作碼允許容納256條指令,而實際上在IBM 370機中僅有183條指令,存在著極大的信息冗余,這種信息冗余的編碼也稱為非法操作碼。 擴展操作碼指令格式 如果某個計算機全部指令的操作碼字段的位數(shù)不固

5、定,且分散地放在指令字的不同位置上,就稱為變長操作碼指令。這種方式能夠有效地壓縮指令中操作碼字段的平均長度,在字長較短的小、微型計算機上廣泛采用。顯然,操作碼字段的位數(shù)和位置不固定將增加指令譯碼和分析的難度,使控制器的設(shè)計復(fù)雜化。 最常見的變長操作碼指令采用擴展操作碼法。因為如果指令長度一定,則地址碼與操作碼字段的長度是相互制約的。為了解決這一矛盾,讓操作數(shù)地址個數(shù)多的指令(三地址指令)的操作碼字段短些,操作數(shù)地址個數(shù)少的指令(一或零地址指令)的操作碼字段長些,這樣既能充分地利用指令的各個字段,又能在不增加指令長度的情況下擴展操作碼的位數(shù),使它能表示更多的指令。 3.3 指令的尋址方式 所謂尋

6、址,指的是尋找操作數(shù)的地址或下一條將要執(zhí)行的指令地址。討論尋址方式首先要搞清楚編址的概念。通常,指令中的地址碼字段將指出操作數(shù)的來源和去向,而操作數(shù)則存放在相應(yīng)的存儲設(shè)備中。在計算機中需要編址的設(shè)備主要有CPU中的通用寄存器、主存儲器和輸入輸出設(shè)備等3種。要對寄存器、主存儲器和輸入輸出設(shè)備等進行訪問,首先必須對它們進行編址。就像一個大樓有許多房間,首先必須給每一個房間編上一個唯一的號碼,人們才能據(jù)此找到需要的房間一樣。 指令格式中每個地址碼的位數(shù)是與主存容量和最小尋址單位(即編址單位)有關(guān)聯(lián)的。主存容量越大,所需的地址碼位數(shù)就越長。對于相同容量來說,如果以字節(jié)為最小尋址單位,地址碼的位數(shù)就需要

7、長些,但是可以方便地對每一個字符進行處理;如果以字為最小尋址單位(假定字長為16位或更長),地址碼的位數(shù)可以減少,但對字符操作比較困難。例如:某機主存容量為220個字節(jié),機器字長32位,若最小尋址單位為字節(jié)(按字節(jié)編址),其地址碼應(yīng)為20位;若最小尋址單位為字(按字編址),其地址碼只需18位。 有效地址的概念 尋址方式是根據(jù)指令中給出的地址碼字段尋找有效地址的方式。我們把指令中地址碼字段給出的地址稱為形式地址(用字母A表示),這個地址有可能不能直接用來訪問主存。例如,IBM PC/XT機的主存容量可達1MB,而指令中的地址碼字段最長僅16位,僅能直接訪問主存的一小部分,而無法訪問到整個主存空間

8、。就是在字長很長的大型機中,即使指令中能夠拿出足夠的位數(shù)來作為訪問整個主存空間的地址,為了靈活方便地編制程序,也需要對地址進行必要的變換。 有效地址是指能夠直接訪問主存的地址(用字母EA表示),形式地址經(jīng)過某種尋址方式的轉(zhuǎn)換才能變?yōu)橛行У刂贰?數(shù)據(jù)尋址和指令尋址 尋址可以分為指令尋址和數(shù)據(jù)尋址。尋找下一條將要執(zhí)行的指令地址稱為指令尋址,尋找操作數(shù)的地址稱為數(shù)據(jù)尋址。指令尋址比較簡單,它又可以細(xì)分為順序?qū)ぶ泛吞S尋址。而數(shù)據(jù)尋址方式種類較多,其最終目的都是尋找所需要的操作數(shù)。 順序?qū)ぶ房赏ㄟ^程序計數(shù)器加1,自動形成下一條指令的地址;跳躍尋址則需要通過程序轉(zhuǎn)移類指令實現(xiàn)。 跳躍尋址的轉(zhuǎn)移地址形成方

9、式有3種:直接(絕對)、相對和間接尋址,它與數(shù)據(jù)尋址方式中的直接、相對和間接尋址是相同的,只不過尋找到的不是操作數(shù)的有效地址而是轉(zhuǎn)移的有效地址而已。 常見尋址方式 每臺計算機的指令系統(tǒng)都有自己的一套尋址方式,不同計算機的尋址方式的名稱和含義并不統(tǒng)一,下面介紹大多數(shù)計算機常用的幾種基本尋址方式。 (1)立即尋址 立即尋址是一種特殊的尋址方式,指令中在操作碼字段后面的部分不是通常意義上的操作數(shù)地址,而是操作數(shù)本身,也就是說數(shù)據(jù)就包含在指令中,只要取出指令,也就取出了可以立即使用的操作數(shù),這樣的數(shù)稱為立即數(shù),其指令格式為: 這種方式的特點是:在取指令時,操作碼和操作數(shù)被同時取出,不必再次訪問主存,從

10、而提高了指令的執(zhí)行速度。但是,因為操作數(shù)是指令的一部分,不能被修改,而且立即數(shù)的大小受到指令長度的限制,所以這種尋址方式靈活性最差。 (2)寄存器尋址 寄存器尋址指令的地址碼部分給出某一個通用寄存器的編號R i,這個指定的寄存器中存放著操作數(shù)。其尋址過程如圖所示,圖中的IR表示指令寄存器,它的內(nèi)容是從主存中取出的指令。操作數(shù)S與寄存器R i的關(guān)系為:S=(R i)。 這種尋址方式具有兩個明顯的優(yōu)點:從寄存器中存取數(shù)據(jù)比從主存中快得多;由于寄存器的數(shù)量較少,其地址碼字段比主存單元地址字段短得多。 (3)直接尋址 指令中地址碼字段給出的地址A就是操作數(shù)的有效地址,即形式地址等于有效地址:EA=A。

11、由于這樣給出的操作數(shù)地址是不能修改的,與程序本身所在的位置無關(guān),所以又叫做絕對尋址方式。下圖為直接尋址的示意圖。操作數(shù)S與地址碼A的關(guān)系為:S=(A)。 這種尋址方式不需作任何尋址運算,簡單直觀,也便于硬件實現(xiàn),但地址空間受到指令中地址碼字段位數(shù)的限制。 (4)間接尋址 間接尋址意味著指令中給出的地址A不是操作數(shù)的地址,而是存放操作數(shù)地址的主存單元的地址,簡稱操作數(shù)地址的地址。通常在指令格式中劃出一位作為直接或間接尋址的標(biāo)志位, 間接尋址時標(biāo)志位=1。 間接尋址中又有一級間接尋址和多級間接尋址之分。在一級間接尋址中,首先按指令的地址碼字段先從主存中取出操作數(shù)的有效地址,即EA=(A),然后再按

12、此有效地址從主存中讀出操作數(shù),如圖(a)所示。操作數(shù)S與地址碼A的關(guān)系為:S=(A)。 多級間接尋址為取得操作數(shù)需要多次訪問主存,即使在找到操作數(shù)有效地址后,還需再訪問一次主存才可得到真正的操作數(shù),如圖(b)所示。對于多級間接尋址來說,在尋址過程中所訪問到的每個主存單元的內(nèi)容中都應(yīng)設(shè)有一個間址標(biāo)志位。通常將這個標(biāo)志放在主存單元的最高位。當(dāng)該位為“1”,表示這一主存單元中仍然是間接地址,需要繼續(xù)間接尋址;當(dāng)該位為“0”,表示已經(jīng)找到了有效地址,根據(jù)這個地址可以讀出真正的操作數(shù)。 間接尋址要比直接尋址靈活得多,它的主要優(yōu)點如下:擴大了尋址范圍,可用指令中的短地址訪問大的主存空間;可將主存單元作為程

13、序的地址指針,用以指示操作數(shù)在主存中的位置。當(dāng)操作數(shù)的地址需要改變時,不必修改指令,只需修改存放有效地址的那個主存單元的內(nèi)容就可以了。 但是,間接尋址在取指之后至少需要兩次訪問主存才能取出操作數(shù),降低了取操作數(shù)的速度。尤其是在多級間接尋址時,尋找操作數(shù)要花費相當(dāng)多的時間,甚至可能發(fā)生間址循環(huán)。 (5)寄存器間接尋址 為了克服間接尋址中訪存次數(shù)多的缺點,可采用寄存器間接尋址,即指令中的地址碼給出某一通用寄存器的編號,在被指定的寄存器中存放操作數(shù)的有效地址,而操作數(shù)則存放在主存單元中,其尋址過程如圖所示。操作數(shù)S與寄存器號Ri的關(guān)系為:S=(R i)。 這種尋址方式的指令較短,并且在取指后只需一次

14、訪存便可得到操作數(shù),因此指令執(zhí)行速度較間接尋址方式快。 (6)變址尋址 變址尋址就是把變址寄存器Rx的內(nèi)容與指令中給出的形式地址A相加,形成操作數(shù)有效地址,即EA=(Rx)+A。Rx的內(nèi)容稱為變址值,其尋址過程如圖所示。操作數(shù)S與地址碼和變址寄存器的關(guān)系為:S=(Rx)+A)。 變址尋址最典型的用法是將指令中的形式地址作為基準(zhǔn)地址,而變址寄存器的內(nèi)容作為修改量。在遇到需要頻繁修改地址時,無須修改指令,只要修改變址值就可以了,這對于數(shù)組運算、字符串操作等成批數(shù)據(jù)處理是很有用的。 在具有變址尋址的指令中,除去操作碼和形式地址外,還應(yīng)具有變址尋址標(biāo)志,當(dāng)有多個變址寄存器時,還必須指明具體尋找哪一個變

15、址寄存器。 (7)相對尋址 相對尋址是將程序計數(shù)器(PC)的內(nèi)容與位移量D相加,即EA=(PC)+D。PC的內(nèi)容是指令的地址,指令的地址碼字段作為位移量D,位移量可正、可負(fù),兩者相加后得到操作數(shù)的有效地址,位移量指出的是操作數(shù)和現(xiàn)行指令之間的相對位置。 這種尋址方式有如下兩個特點:操作數(shù)的地址不是固定的,它隨著PC值的變化而變化,并且與指令地址之間總是相差一個固定值。當(dāng)指令地址變換時,由于其位移量不變,使得操作數(shù)與指令在可用的存儲區(qū)內(nèi)一起移動,所以仍能保證程序的正確執(zhí)行。采用PC相對尋址方式編寫的程序可在主存中任意浮動,它放在主存的任何地方,所執(zhí)行的效果都是一樣的;其次對于指令地址而言,操作數(shù)

16、地址可能在指令地址之前或之后,因此,指令中給出的位移量可負(fù)、可正,通常用補碼表示。如果位移量為n位,則相對尋址的尋址范圍為:(PC) 2(n-1)(PC)+2(n-1)1。 (8)頁面尋址 頁面尋址相當(dāng)于將整個主存空間分成若干個大小相同的區(qū),每個區(qū)稱為一頁,每頁有若干個主存單元。例如:一個64KB的存儲器被劃分為256個頁面,每個頁面中有256個字節(jié),如圖(a)所示。每頁都有自己的編號,稱為頁面地址;頁面內(nèi)的每個主存單元也有自己的編號,稱為頁內(nèi)地址。這樣,存儲器的有效地址就被分為兩部分:前部為頁面地址(在此例中占8位),后部為頁內(nèi)地址(也占8位)。頁內(nèi)地址由指令的地址碼部分自動直接提供,它與頁

17、面地址通過簡單的拼裝連接就可得到有效地址,無須進行計算,因此尋址迅速。根據(jù)頁面地址的來源不同,頁面尋址又可以分成3種不同的方式。 基頁尋址,又稱零頁尋址。由于頁面地址全等于0,所以有效地址EA=0A(在這里表示簡單拼接),操作數(shù)S在零頁面中,如圖2-4-7(b)所示?;搶ぶ穼嶋H上就是直接尋址。 當(dāng)前頁尋址。頁面地址就等于程序計數(shù)器PC的高位部分的內(nèi)容,所以有效地址EA=(PC)H A,操作數(shù)S與指令本身處于同一頁面中,如圖(c)所示。 頁寄存器尋址。頁面地址取自頁寄存器,與形式地址相拼接形成有效地址,如圖(d)所示。 (9)堆棧尋址 堆棧是一種按特定順序進行存取的存儲區(qū),這種特定順序可歸結(jié)為

18、“后進先出(LIFO)”或“先進后出(FILO)”。堆棧區(qū)通常是主存儲器中指定的一個區(qū)域,在堆棧容量很小的情況下,也可以用一組寄存器來構(gòu)成堆棧。 寄存器堆棧又稱為硬堆棧。這種堆棧的棧頂是固定的,寄存器組中各寄存器是相互連接的,它們之間具有對應(yīng)位自動推移的功能,即可將一個寄存器的內(nèi)容推移到相鄰的另一個寄存器中去。寄存器堆棧的成本比較高,不適于作大容量的堆棧,而從主存中劃出一段區(qū)域來作堆棧是最合算且最常用的方法。這種堆棧又稱為軟堆棧,堆棧的大小可變,棧底固定,棧頂浮動,故需要一個專門的硬件寄存器作為堆棧棧頂指針,簡稱棧指針(SP)。棧指針?biāo)付ǖ拇鎯卧?,就是堆棧的棧頂?最常見的軟堆棧是自底向上

19、生成(向低地址方向生成)堆棧,這種堆棧的棧底地址大于棧頂?shù)刂罚ǔV羔樖冀K指向棧頂?shù)臐M單元。因此,進棧時,堆棧指針SP的內(nèi)容需要先自動減1,然后再將數(shù)據(jù)壓入堆棧;出棧時,需要先將堆棧中的數(shù)據(jù)彈出,然后SP的內(nèi)容再自動加1。 3.4 MIPS 匯編語言 MIPS 匯編語言是本章的重點內(nèi)容,也是必考內(nèi)容。在15年961真題中MIPS 匯編語言所占分?jǐn)?shù)很大,MIPS 匯編語言的考點有:MIPS 寄存器結(jié)構(gòu)、MIPS 指令格式、運算指令、分支指令、尋址指令、函數(shù)調(diào)用以及與C 語言之間的轉(zhuǎn)換等知識點。 總體來說MIPS 匯編語言難度不大,但知識點比較雜,需要考生仔細(xì)復(fù)習(xí)。在計算機組成與設(shè)計:硬件/軟件

20、接口教材MIPS 章節(jié)中也有相應(yīng)的習(xí)題,考生可以多加練習(xí)。 MIPS 寄存器結(jié)構(gòu) 目前最常用的MIPS 是32位虛擬地址空間: 32個32位的GPRs (通用寄存器),編號從$zero($0), $1 $31 32個32位的FPRs (浮點數(shù)寄存器) PC ,32位 HI ,LO (乘除寄存器),都是32位 MIPS 指令格式 操作碼 RS RT RD SHAMT 功能碼 R 型 31 26 21 16 15 11 10 6 5 類似于addu ,僅僅不同的是這里執(zhí)行減法操作 sll rd, rt, sa 屬于R 型指令,其中shamt=sa rd rt 設(shè)機器字長為32位,一個容量為16MB

21、的存儲器,CPU按半字尋址,其尋址單元數(shù)是()。 A224B223C222D221 解答:B。16MB = 224,由于字長為32位,現(xiàn)在按半字(16位)尋址,相當(dāng)于有8M個存儲單元,每個存儲單元中存放16位。 某機器字長16位,主存按字節(jié)編址,轉(zhuǎn)移指令采用相對尋址,由兩個字節(jié)組成,第一字節(jié)為操作碼字段,第二字節(jié)為相對位移量字段。假定取指令時,每取一個字節(jié)PC自動加1。若某轉(zhuǎn)移指令所在主存地址為2000H,相對位移量字段的內(nèi)容為06H,則該轉(zhuǎn)移指令成功轉(zhuǎn)移后的目標(biāo)地址是()。 A2006H B2007H C2008H D2009H 解答:C。主存按字節(jié)編址,取指令時,每取一個字節(jié)PC自動加1。

22、由于轉(zhuǎn)移指令由兩個字節(jié)組成,取出這條轉(zhuǎn)移指令之后的PC值等于2002H,所以轉(zhuǎn)移指令成功轉(zhuǎn)移后的目標(biāo)地址PC = 2000H + 2 + 06H = 2008H。 將下面C代碼轉(zhuǎn)換成對應(yīng)的MIPS匯編指令。 解答:本題中沒有給定參數(shù)存放的寄存器,此時就需要根據(jù)寄存器使用約定! g存放在a0中,h存放在a1中,i存放在a2上,j存放在a3上。 對應(yīng)的MIPS匯編代碼如下: leaf_example: addi $sp, $sp, -4 add $t0, $a0, $a1 add $t1, $a2, $a3 sub $t2, $t0, $t1 sw $t2, 0($sp) addi $v0, $t

23、2, $zero addi $sp, $sp, 4 jr $ra 經(jīng)過優(yōu)化之后: leaf_example: add $t0, $a0, $a1 add $t1, $a2, $a3 sub $v0, $t0, $t1 jr $ra 假設(shè)這樣: leaf_example: addi $sp, $sp, -12 sw $s0, 8($sp) sw $s1, 4($sp) sw $s2, 0($sp) add $s0, $a0, $a1 add $s1, $a2, $a3 sub $s2, $s0, $s1 sw $s2, 0($sp) addi $v0, $s2, $zero lw $s0, 8(

24、$sp) lw $s1, 4($sp) lw $s2, 0($sp) addi $sp, $sp, 12 jr $ra 將下面一段遞歸程序翻譯成MIPS匯編代碼。 解答:根據(jù)寄存器使用規(guī)則,n存放在a0寄存器中。 兩種方式實現(xiàn): 1.調(diào)用者負(fù)責(zé)恢復(fù)堆棧 fact: slti $t0, $a0, 1 beq $t0, $zero, Label1 addi $v0, $zero, 1 jr $ra Label1: addi $sp, $sp, -8 sw $ra, 4($sp) sw $a0, 0($sp) addi $a0, $a0, -1 jal fact lw $a0, 0($sp) lw

25、$ra, 4($sp) addi $sp, $sp, 8 mul $v0, $a0, $v0 jr $ra 2.被調(diào)用者負(fù)責(zé)恢復(fù)堆棧 fact: slti $t0, $a0, 1 beq $t0, $zero, Label1 addi $v0, $zero, 1 lw $a0, 0($sp) lw $ra, 4($sp) addi $sp, $sp, 8 jr $ra Label1: addi $sp, $sp, -8 sw $ra, 4($sp) sw $a0, 0($sp) addi $a0, $a0, -1 jal fact mul $v0, $a0, $v0 lw $a0, 0($sp

26、) lw $ra, 4($sp) addi $sp, $sp, 8 jr $ra 稍加修改: fact: slti $t0, $a0, 1 beq $t0, $zero, Label1 addi $v0, $zero, 1 j exit Label1: addi $sp, $sp, -8 sw $ra, 4($sp) sw $a0, 0($sp) addi $a0, $a0, -1 jal fact mul $v0, $a0, $v0 exit: lw $a0, 0($sp) lw $ra, 4($sp) addi $sp, $sp, 8 jr $ra 一些電腦有顯示的指令從32位寄存器中取出

27、任意字段并放到寄存器中的最低有效位中,下圖顯示了需要的操作: 找出最短的MIPS指令序列能夠完成上述操作,給定實現(xiàn)該功能的函數(shù)原型如下: int pickuppart(int value, int i, int j); 其中返回值就是所要得到的部分。 解答:注意參數(shù)保存的位置。 pickuppart: addi $t0, $zero, 31 sub $t1, $t0, $a2 sllv $a0, $a0, $t1 addi $a1, $a1, 1 srlv $v0, $a0, $a1 addi $sp, $sp, 12 jr $ra 對于上題有沒有更快的方法? 解答:一般系統(tǒng)會這么去實現(xiàn)。 m

28、emcpy: srl $t0, $a2, 2 add $v0, $zero, $a0 addi $t1, $zero, 0 loop: beq $t1, $t0, next lw $t3, 0($a1) sw $t3, 0($a0) addi $t1, $t1, 1 addi $a1, $a1, 4 addi $a0, $a0, 4 j loop next: sll $t1, $t1, 2 loop1 beq $t1, $a2, exit lb $t2, 0($a1) sb $t2, 0($a0) addi $t1, $t1, 1 addi $a0, $a0, 1 addi $a1, $a1,

29、 1 j loop1 exit: jr $ra 用MIPS指令實現(xiàn)下面的MIPS偽指令,其中big的對應(yīng)一個指定需要32位來表示的數(shù)字,small對應(yīng)一個16位數(shù)。 解答:偽指令是為了方便程序員編程,編譯器提供的,一旦程序員在編寫程序的過程中使用了偽指令,由編譯器負(fù)責(zé)將這些偽指令映射為實實在在能夠在機器上執(zhí)行的機器指令。 1.move $t1, $t2 功能:實現(xiàn)了$t1 $t2 映射:addi $t1, $t2, 0 或者add $t1, $t2, $zero 2.clear $t0 功能:$t0 0 映射:addi $t0, $zero, 0 或者add $t0, $zero, $zero

30、 3.beq $t1, small, L 功能:If($t1 = small) goto L 映射:addi $t2, $zero, small beq $t1, $t2, L 或者li $at, small beq $t1, $at, L 4.beq $t2, big, L 功能:If($t1 = big) goto L 映射:lui $at, upper(big) addi $at, $at, lower(big) beq $t2, $at, L 或者li $at, big beq $t2, $at, L 5.li $t1, small 功能:$t1 = small 映射:addi $t1

31、, $zero, small 6.li $t2, big 功能:$t2 = big 映射:lui $t2, upper(big) ori $t2, $t2, lower(big) 7.ble $t3, $t5, L 功能:if($t3 $5) goto L 映射:slt $at, $5, $4 bne $at, $zero, L 9.bge $t5, $t3, L 功能:slt $at, $5, $3 beq $at, $zero, L 10.addi $t0, $t2, big 功能:$t0 = $t2 + big 映射:li $at, big add $0, $t2, $at 11.lw $t5, big($t2) 功能

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論