第02章 指令系統_第1頁
第02章 指令系統_第2頁
第02章 指令系統_第3頁
第02章 指令系統_第4頁
第02章 指令系統_第5頁
已閱讀5頁,還剩79頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

張晨曦第三版華中科技大學計算機學院2013年3月作業(yè):P51頁2.1(RISCCISC通用寄存器型機器)2.32.1指令集結構的分類2.2尋址技術2.3指令集結構的功能設計2.4操作數的類型、表示和大小2.5指令集格式的設計2.6MIPS指令集結構第二章

計算機指令系統的設計2.1指令集結構的分類2.1.1指令集結構分類根據五個因素對計算機指令集結構進行分類:

(1)

在CPU中操作數的存儲方法(2)指令中顯式表示的操作數個數(3)操作數的尋址方式(4)指令集所提供的操作類型(5)操作數的類型和大小第二章

計算機指令系統的設計1.CPU中用來存儲操作數的存儲單元主要有:2.指令中的操作數可以顯式給出,也可以隱式地給出。3.CPU對操作數的不同存取方式。進而分成3種指令集

堆棧隱式

累加器隱式一組寄存器

顯式CPU中操作數的存儲方法,是各種指令集結構之間最主要的區(qū)別所在。2.1指令集結構的分類

CPU對操作數的不同存取方式

CPU提供的暫存器每條ALU指令顯式表示的操作數個數運算結果的目的地訪問顯式操作數的過程堆棧0堆棧Push/Pop累加器1累加器Load/Store累加器一組寄存器2/3寄存器或存儲器Load/Store寄存器或存儲器

4.根據CPU內部存儲單元類型進行分類,可以分為

堆棧型指令集結構累加器型指令集結構通用寄存器型指令集結構

例C=A+B表達式在這三種類型指令集結構上的實現方法。假設A、B、C均是保存在存儲器單元中,且A和B的值在運算過程中一直被保持。2.1指令集結構的分類堆棧累加器寄存器(寄存器-存儲器)寄存器(寄存器-寄存器)PUSHALOADALOADR1,ALOADR1,APUSHBADDBADDR1,BLOADR2,BADDStoreCStoreC,R1AddR3,R1,R2POPCStoreC,R313次訪存6次訪存6次訪存7次訪存C=A+B表達式在這三種類型指令集結構上的實現方法

三種類型指令集結構的優(yōu)缺點

指令集結構類型優(yōu)點缺點堆棧型

是一種表示計算的簡單模型;指令短小。

堆棧不能被隨機訪問,從而很難生成有效代碼。同時,由于堆棧是瓶頸,所以很難被高效地實現。累加器型

減小了機器的內部狀態(tài);指令短小。

由于累加器是唯一的暫存器,這種機器的存儲器通信開銷最大。寄存器型

是代碼生成最一般的模型。

所有操作數均需命名,且顯式表示,因而指令比較長。2.1.2通用寄存器型指令集結構的分類

1.通用寄存器型指令集結構的主要優(yōu)點使編譯器有效地使用寄存器。(1)在表達式求值方面,比其它類型指令集結構

具有更大的靈活性;(2)寄存器可以用來存放變量?!?/p>

減少存儲器的通信量,加快程序的執(zhí)行速度。(因為寄存器比存儲器快)◆可以用更少的地址位來尋址寄存器,從而可以有效改進程序的目標代碼大小。2.1指令集結構的分類3.兩種主要的指令特性能夠將通用寄存器指令集結構(GPR)進一步細分

(1)ALU(算術邏輯)指令到底有兩個或是三個操作數?

有三個操作數的指令:兩個源操作數一個結果操作數2.CPU需要設置多少個寄存器呢?

主要由編譯器使用寄存器的情況來決定。

為表達式求值保留一些寄存器為傳遞參數保留一些寄存器用剩下的寄存器來保存變量2.1指令集結構的分類

有兩個操作數的指令:一個操作數既作為源操作數,也作為目的操作數。(2)在ALU指令中,有多少個操作數可以用存儲器來尋址,也即有多少個存儲器操作數?一般來說,ALU指令有0~3個存儲器操作數。2.1指令集結構的分類ALU指令中,存儲器操作數個數和操作數個數的

所有可能組合,以及相應的機器實例ALU指令中存儲器操作數個數ALU指令中操作數的最大個數機器實例02IBMRT-PC3SPARC,MIPS12PDP-10,IBM360,Motorola680003IBM360的部分指令22PDP-11,部分IBM360指令3

33VAX(3)通用寄存器指令集結構進一步細分為三種類型:(4)常見的三種通用寄存器型指令集結構的優(yōu)缺點

注:表中(m,n)的含義是,指令的n個操作數中有m個存儲器操作數。

寄存器---寄存器型(R-R:register-register)

寄存器---存儲器型(R-M:register-memory)

存儲器---存儲器型(M-M:memory-memory)2.1指令集結構的分類指令集結構類型優(yōu)點缺點

寄存器-寄存器型(0,3)簡單,指令字長固定,是一種簡單的代碼生成模型,各種指令的執(zhí)行時鐘周期數相近。

和指令中含有對存儲器操作數訪問的結構相比,指令條數多,因而其目標代碼較大。

寄存器-存儲器型(1,2)

可以直接對存儲器操作數進行訪問,容易對指令進行編碼,且其目標代碼較小。ADDR1,B指令中的操作數類型不同。在一條指令中同時對一個寄存器操作數和存儲器操作數進行編碼,將限制指令所能夠表示的寄存器個數。由于指令的操作數可以存儲在不同類型的存儲器單元,所以每條指令的執(zhí)行時鐘周期數也不盡相同。存儲器-存儲器型(3,3)是一種最緊密的編碼方式,無需“浪費”寄存器保存變量。指令字長多種多樣。每條指令的執(zhí)行時鐘周期數也大不一樣,對存儲器的頻繁訪問將導致存儲器訪問瓶頸問題。2.1指令集結構的分類本節(jié)思考指令格式越簡單,編譯器的工作越簡單還是越復雜?P32指令格式越多樣,目標代碼越大還是越小?有了寄存器,編譯才有挑戰(zhàn)!2.2尋址方式

在通用寄存器指令集結構中,一般是利用尋址方式指明指令中的操作數是一個常數、一個寄存器操作數,抑或是一個存儲器操作數。

2.

當前指令集結構中所使用的一些操作數尋址方式。第二章

計算機指令集結構設計尋址方式指令實例含義寄存器尋址AddR4,R3Regs[R4]←Regs[R4]+Regs[R3]立即值尋址AddR4,#3Regs[R4]←Regs[R4]+3偏移尋址AddR4,100(R1)Regs[R4]←Regs[R4]+Mem[100+Regs[R1]]寄存器間接尋址AddR4,(R1)Regs[R4]←Regs[R4]+Mem[Regs[R1]]索引尋址AddR3,(R1+R2)Regs[R3]←Regs[R3]+Mem[Regs[R1]+Regs[R2]]直接尋址或絕對尋址AddR1,(1001)Regs[R1]←Regs[R1]+Mem[1001]存儲器間接尋址AddR1,@(R3)Regs[R1]←Regs[R1]+Mem[Mem[Regs[R3]]]自增尋址AddR1,(R2)+Regs[R1]←Regs[R1]+Mem[Regs[R2]]Regs[R2]←Regs[R2]+d自減尋址AddR1,-(R2)Regs[R2]←Regs[R2]-dRegs[R1]←Regs[R1]+Mem[Regs[R2]]縮放尋址AddR1,100(R2)[R3]Regs[R1]←Regs[R1]+Mem[100+Regs[R2]+Regs[R3]*d]3.尋址方式使用情況統計結果(大概率事件優(yōu)先)(VAX指令集結構的機器:gcc、Spice和Tex基準程序)立即值尋址方式和偏移尋址方式的使用頻率十分高。4.各種偏移量字段大小的使用情況寄存器-寄存器型指令集結構的機器上(MIPS)

運行SPECint92基準程序集(compress、espresso、eqntott、gcc、li)

運行SPECfp92基準程序集(dudoc、ear、hydro2d、mdljdp2、su2cor)2.2尋址方式

x軸的標記是對偏移量大小進行l(wèi)og2(·)運算所得,也就是偏移量字段的位數。2.2尋址技術◆

程序所使用的偏移量大小分布十分廣泛;◆

較小的偏移量和較大的偏移量均占有相當大的比例;◆

將偏移量字段的大小設置為12~16位。這種長度可以支持上述75%~99%基于偏移尋址方式的數據訪問中偏移量大小的表示。

2.2尋址方式5.在一種Load/Store型指令集結構上,一些指令使用

立即值尋址方式的頻率。

比較指令和ALU指令使用立即值尋址方式十分頻繁。

6.不同立即值大小的使用分布情況

將立即值的大小設置為8~16位,可以覆蓋所有使用立即值尋址方式指令的50%~80%。

2.2尋址方式目標相同:都是為了解決操作數地址的修改問題,都能做到不改變程序而修改操作數地址。一臺計算機中,原則上,僅需設置間址尋址方式與變址尋址方式中的任何一種即可。主要差別:間接尋址地址在主存儲器中,沒有偏移量;變址尋址地址在寄存器中,帶偏移量。優(yōu)缺點:間接實現容易,只需要一條主存到數據寄存器的通路。速度慢,讀一個操作數需要訪存兩次以上。變址需要一個硬件加法器,不需要訪存,速度快;變址更適合于數組運算;變址可以向前也可以向后偏移;無論采用哪種方式,對于數組運算,都需要對地址進行增量的指令。但變址尋址可以帶有偏移量,更有效。間接尋址與變(偏)址尋址START:MOVEASI,ASR保存源數組基地址,為了程序的再入性MOVEADI,ADR保存目標(Destination)數組基地址MOVECNT,NUM保存數據個數LOOP:MOVE@ADI,@ASI傳送數據設AD、AS地址為100、101INCASI,源數組地址加1AD、AS中數據為10、50INCADI,目標數組地址加1地址50的數據放至地址10DECCNT,個數減1AD、AS中數據為11、51BGTLOOP,判斷仍然去地址100、101HALT停機100和500中的值為11、51ASR:AS源基地址地址51的數據放至地址11ADR:AD目標基址即10、50為源、目標初址NUM:N需傳送數據數目ASI:0當前征傳送源數組地址ADI:0當前征傳送目標數組地址CNT:0乘余數據個數START:MOVER,AS送源數組基址到寄存器R=10MOVECNT,NUM保存數據個數AD-AS=40LOOP:MOVEAD-AS(R),(R)AD-AS為地址偏移量,確定值INCR,變址寄存器中的值加1DECCNT,個數減1把10中的值放入40+10中BGTLOOP,判斷R=11HALT停機把11中的值放入40+11中NUM:N需傳送數據數目CNT:0乘余數據個數以AD=50,AS=10舉例MOVEAD-AS(R),(R),只需要訪存3次,哪3次?AD-AS匯編時計算

MOVE@ADI,@ASI,至少要訪存5次,哪5次?××00字節(jié)半字雙××08字單字半××10字單字字節(jié)單××18字××20××00字節(jié)浪費××08半字浪費××10單字浪費××18雙字××2010001001101010111100110111101111字節(jié)編址2.2尋址方式2.3指令集結構的功能設計

第二章

計算機指令集結構設計完整性:足夠用規(guī)整性:

對稱性——操作碼和存儲單元設置要對稱均勻性——數據表示、存儲單元、字長設置要均勻高效率:兼容性:能增加,但不能刪除和更改指令功能操作類型實例算術和邏輯運算整數的算術和邏輯操作:加、減、與、或等。數據傳輸Load/Store控制分支、跳轉、過程調用和返回、自陷(trap)等。系統操作系統調用、虛擬存儲器管理等。浮點浮點操作:加、乘等。十進制十進制加、十進制乘、十進制到字符的轉換。字符串字符串移動、字符串比較、字符串搜索等。圖形象素操作、壓縮/解壓操作等。1.指令集中操作的分類

2.一種指令集結構中的指令到底要支持哪些類型的操作?

(指令集結構功能設計問題)

兩種截然不同的方向:◆

復雜指令集計算機(CISC)強化指令功能,實現軟件功能向硬件功能轉移。◆

精簡指令集計算機(RISC)盡可能地降低指令集結構的復雜性,以達到 簡化實現,提高性能的目的。

當今指令集結構功能設計的一個主要趨勢。2.3指令集結構的功能設計2.3.1CISC指令集結構的功能設計CISC結構追求的目標:

強化指令功能,減少程序的指令條數,以達到提高性能的目的。增強指令功能主要是從如下幾個方面著手:1.

面向目標程序增強指令功能

提高運算型指令功能expect

提高傳送指令功能vector

增加程序控制指令功能ceil2.3指令集結構的功能設計2.面向高級語言和編譯程序改進指令系統

(1)增加對高級語言和編譯系統支持的指令功能

對源程序中各種高級語言語句進行使用頻 度的統計與分析,對于使用頻度高的語句, 可以設置專門的指令或采取措施增加相應 令的功能,以提高其編譯速度和執(zhí)行速度。

從面向編譯程序,尤其是從優(yōu)化代碼生成 的角度進行考慮,增加指令集結構的規(guī)整 性來改進指令系統。2.3指令集結構的功能設計規(guī)整性:沒有或盡可能減少例外的情況和特殊的應用,以及所有運算都能對稱、均勻地

在存儲器單元或寄存器單元之間進行。(2)高級語言計算機指令系統

◆面向高級語言(HL)的機器縮小機器語言和高級語言的語義差距。

◆間接執(zhí)行型高級語言機器高級語言和機器語言是一一對應的,用匯編的方法(可以用軟件實現,也可以用硬件實現)把高級語言源程序翻譯成機器語言程序。2.3指令集結構的功能設計◆直接執(zhí)行型高級語言機器高級語言就作為機器語言,直接由硬件或固件對高級語言源程序的語句逐條進行解釋以執(zhí)行它。3.面向操作系統的優(yōu)化實現改進指令系統

操作系統的實現在很大程度上取決于體系結構的支持。

(1)主要表現在對以下方面的支持2.3指令集結構的功能設計

中斷處理

進程管理

存儲管理和保護系統工作狀態(tài)的建立與切換

(2)設置指令來優(yōu)化操作系統

支持系統工作狀態(tài)和訪問方式轉移的指令支持進程轉移的指令支持進程同步和互斥的指令2.3指令集結構的功能設計2.3.2RISC指令集功能的設計1.CISC結構存在的缺點(寫出來的程序小,內存貴)(1)在CISC結構的指令系統中,各種指令的使用頻率相差懸殊。(2)CISC結構指令系統的復雜性帶來了計算機體系結構的復雜性,這不僅增加了研制時間和成本,而且還容易造成設計錯誤。(3)CISC結構指令系統的復雜性給VLSI設計增加了很大負擔,不利于單片集成。2.3指令集結構的功能設計(4)CISC結構的指令系統中,許多復雜指令需要很復雜的操作,因而運行速度慢。(5)在CISC結構的指令系統中,由于各條指令的功能不均衡性,不利于采用先進的計算機體系結構技術(如流水技術)來提高系統的性能。2.RISC計算機(1)指令系統只包含那些使用頻率很高的指令和一些必要指令。

Intel80X86最常用的十條指令2.3指令集結構的功能設計執(zhí)行頻率排序80X86指令指令執(zhí)行頻率(%執(zhí)行指令總數)1Load22%2條件分支20%3比較16%4Store12%5加8%6與6%7減5%8寄存器-寄存器間數據移動4%9調用1%10返回1%合計96%Intel80X86最常用的十條指令

(2)目的使得計算機體系結構更加簡單、更加合理和更加有效,克服CISC結構的缺點,使機器速度更快,程序運行時間縮短,從而提高計算機系統的性能。(3)設計原則

選取使用頻率最高的指令,并補充一些最有用的指令;每條指令的功能應盡可能簡單,并在一個機器周期內完成;所有指令長度均相同;2.3指令集結構的功能設計

只有Load和Store操作指令才訪問存儲器;

其它指令操作均在寄存器之間進行;以簡單有效的方式支持高級語言。2.3.3控制指令

(1)跳轉:當控制指令為無條件改變控制流時,稱之為“跳轉”。(2)分支:當控制指令是有條件改變控制流時,稱之為“分支”。2.3指令集結構的功能設計

條件分支跳轉過程調用過程返回(3)控制流程的各種改變情況2.3指令集結構的功能設計1.控制指令的使用頻率

(一臺Load/Store型指令集結構的機器:SPECint92、Specfp92基準程序)改變控制流的大部分指令是條件分支指令。表示分支條件的技術測試分支條件的方法優(yōu)點缺點條件碼(CC)

在程序的控制下,由ALU操作設置特殊的位。

可以自由設置分支條件。CC是額外狀態(tài),條件碼限制了指令順序,因為必須從一條指令將分支條件信息傳送到分支指令。條件寄存器

根據比較結果測試條件寄存器。

簡單

占用了一個寄存器。

比較且分支比較操作是分支指令的一部分,通常這種比較是受一定限制的。一條指令完成了兩條指令的功能。

分支指令的操作增多。2.常用的三種表示分支條件的技術及其優(yōu)缺點3.分支目標地址的表示

PC-相對尋址:在指令中提供一個和程序計數器(PC)的值相加的偏移量。(1)有效地縮短指令中表示目標地址的字段的長度;(2)使得代碼在執(zhí)行時與它被載入的位置無關。關鍵問題是:轉移目標離當前控制指令的偏移量有多大?

2.3指令集結構的功能設計4.過程調用和返回的狀態(tài)保存

兩種方法來保存寄存器的內容:

(1)“由調用者保存”方法

caller在一個調用者調用別的過程時,必須保存調用者所要保存的寄存器,以備調用結束返回后,能夠再次訪問調用者。(2)“由被調用者保存”方法callee被調用的過程必須保存它要用的寄存器,保證不會破壞過程調用者的程序執(zhí)行環(huán)境,并在過程調用結束返回時,恢復這些寄存器的內容。

2.3指令集結構的功能設計2.3指令集結構的功能設計全局變量X保留在P2知道的地方。P2不會改變它,但P3也許會改變它。宜采用調用者保留。2.4操作數的類型、表示和大小操作數類型和操作數表示是軟硬件主要界面之一。操作數類型:面向應用、面向軟件系統所處理的各

種數據結構.操作數表示:硬件結構能夠識別、指令系統可以直

接調用的那些結構。確定操作數表示是軟硬件取舍折衷的問題。第二章

計算機指令集結構設計

1.操作數的類型

整數(定點)浮點十進制字符2.操作數類型的兩種表示方法

(1)操作數的類型由操作碼的編碼指定。(最常見的一種方法)(2)數據可以附上由硬件解釋的標記,由這些標記指定操作數的類型,從而選擇適當的運算。很少見

字符串向量堆棧2.4操作數的類型、表示和大小1013101410141014000000000000用數據描述符描述一個3×4二維陣列三元素向量四元素向量塊內的元素個數四元素向量000000000000000000000000四元素向量3.操作數大小

字節(jié)半字(16位)單字(32位)雙字(64位)(1)字符:用ASCII碼表示,為一個字節(jié)大小。(2)整數:用二進制補碼表示,其大小可以是字節(jié)、半字或單字。(3)浮點操作數:單精度浮點(單字大小)和雙精度浮點(雙字大?。?IEEE754(4)字符串:將字符串中的每個字符當作一個字節(jié)來看待。2.4操作數的類型、表示和大小(5)十進制操作數

壓縮十進制 用4位二進制數編碼數字0~9,然后將 兩個十進制數字壓縮在一個字節(jié)中存儲。

二進制編碼十進制(非壓縮十進制) 將十進制數字直接用字符串來表示。4.訪問不同操作數大小的頻率

測試統計SPECint92基準程序和SPECfp92基準程序對字節(jié)、半字、單字和雙字四種大小的操作數訪問情況。2.4操作數的類型、表示和大小基準程序對單字和雙字的數據訪問具有較高的頻率。

選擇操作數字段的長度為32位,可以有效支持8、16、32位整型操作數,以及32位浮點操作數的表示。

選擇操作數字段長度為64位,則更具有一般性。2.5指令集格式的設計

◆指令由操作碼和地址碼組成?!?/p>

指令集格式的設計確定操作碼字段和地址碼字段的大小及其組合形式,以及各種尋址方式的編碼方法?!?/p>

設計原則盡可能地增加寄存器數目和尋址方式類型;充分考慮寄存器字段和尋址方式字段對指令平均字長的影響,以及它們對目標代碼大小的影響;設計出的指令集格式能夠在具體實現中容易處理。第二章

計算機指令集結構設計2.5.1尋址方式的表示方法

1.兩種表示尋址方式的方法

(1)將尋址方式編碼于操作碼中,由操作碼在描述指令操作的同時,也描述了相應操作的尋址方式;(2)為每個操作數設置一個地址描述符,由該地址描述符表示相應操作數的尋址方式。

2.5指令集格式的設計2.選擇哪種表示尋址方式的方法?

由兩個因數決定(P47):(1)指令集結構所采用的尋址方式種類及其適用范圍(2)操作碼與尋址方式之間的獨立程度2.5.2指令集格式的選擇

三種指令集編碼格式:

變長編碼格式固定長度編碼格式混合型編碼格式2.5指令集格式的設計

1.

變長編碼格式◆

有效減少指令集結構的平均指令長度,降低目標代碼的長度?!?/p>

使得各條指令的字長和執(zhí)行時間大不一樣。多數CISC計算機的指令集結構均是采用這種編碼格式。2.

固定長度編碼格式

將操作類型和尋址方式組合編碼在操作碼中,所有指令的長度是固定唯一的。操作碼地址碼1地址碼2地址碼3操作碼地址描述符1地址碼1…地址描述符n地址碼n3.混合型編碼格式

通過提供一定類型的指令字長,期望能夠兼顧降低目標代碼長度和降低譯碼復雜度兩個目標。2.5指令集格式的設計操作碼地址描述符地址碼操作碼地址描述符1地址描述符2地址碼操作碼地址描述符地址碼1地址碼2思考題:某處理機的指令字長為16位,有雙地址、單地址和零地址三類,并假設每個地址段的長度為6位。(P522.12)(1)如果雙地址指令有15條,單地址和零地址指令的條數基本相同,問單地址和零地址各有多少條?并且為這三類指令分配操作碼。(2)如果要求三類指令的比例大致為1:9:9,問雙地址、單地址和零地址指令各有多少條?并且為這三類指令分配操作碼。2.5指令集格式的設計156364雙地址0000-1110單地址1111,0000,00-1111,1111,10零地址1111,1111,1100,0000-1111,1111,1111,111114126128雙地址0000-1101單地址1110,0000,00-1111,1111,01零地址1111,1111,1000,0000-1111,1111,1111,11112.6MIPS指令集結構MIPS是一種多元未飽和型指令集結構。MIPS指令集結構的設計思想:

Microprocessorwithoutinterlockedpipedstages具有一個簡單的Load/Store指令集;注重指令流水效率;簡化指令的譯碼;高效支持編譯器。

第二章

計算機指令集結構設計2.6.1MIPS指令集結構1.MIPS中的寄存器

(1)32個通用寄存器

命名:R0、R1、、R31

長度:32位寄存器R0的值總是為0。(2)32個浮點寄存器

命名:F0、F1、、F31

長度:32位(用來保存32位的單精度浮點數)2.6MIPS指令集結構◆

64位雙精度浮點數相鄰兩個浮點寄存器奇偶對FiFi+1

(i=0,2,4,,30)

命名:F0、F2、、F28、F30

(3)一些特殊的寄存器(比如用來保存浮點操作結果信息的浮點狀態(tài)寄存器)可以和通用寄存器相互進行數據傳送。2.6MIPS指令集結構2.MIPS的數據類型

MIPS提供了多種長度的整型數據和浮點數據。(1)

整型數據有8位、16位和32位多種長度。(當8位和16位整型數據載入到寄存器中時,

用0或數據的符號位來填充32位通用寄存器

中的剩余位。)(2)

浮點數據有32位單精度浮點數和64位雙精度浮點數。浮點數據表示采用的是IEEE754標準。2.6MIPS指令集結構IEEE754浮點數據表示標準1823S符號位EM指數尾數32位單精度形式11152S符號位EM指數尾數64位雙精度形式3.MIPS的尋址方式和數據傳送

(1)

尋址方式寄存器尋址立即值尋址偏移尋址寄存器間接尋址

(2)寄存器尋址字段的大小為5位,用來表示32個

通用寄存器或浮點寄存器。

(3)存儲器地址采用的是高端字節(jié)表示順序,存儲器按字節(jié)尋址,其地址寬度為32位。(能否直接尋址)2.6MIPS指令集結構4.MIPS的指令格式

尋址方式編碼在操作碼中。

指令的字長32位,其中用6位表示操作碼。(4)通過寄存器(通用寄存器和浮點寄存器)和存

儲器之間的數據傳送操作完成對存儲器的訪問。2.6MIPS指令集結構各種類型指令的格式5.MIPS中的操作

(1)四種類型的操作

Load和Store操作

ALU操作分支和跳轉操作浮點操作

(2)約定(1)符號“”:數據傳送操作其后附帶一個下標n,也即“n”表示傳送

一個n位數據。(2)符號“##”:兩個域的串聯操作2.6MIPS指令集結構(3)域的下標:表明從該域中選擇某一位。域中位的標記是從最高位開始標記,并且

起始標記為0。下標可以是一個單獨的數字。如Regs[R4]0

:選擇寄存器R4中內容的符號位。下標也可以是一個范圍。如Regs[R3]24..31

:選擇寄存器R3中內容

的最低一個字節(jié)。(4)上標:表示復制一個域。如024可以得到一個24位全為0的一個域。2.6MIPS指令集結構(5)變量Mem:表示存儲器中的一個數組,

存儲器按照字節(jié)尋址。舉例R8和R10:32位寄存器Regs[R10]16..3116(Mem[Regs[R8]]0)8##Mem[Regs[R8]]的含義。3.MIPS中的四種操作類型

(1)Load和Store操作2.6MIPS指令集結構存儲器的地址是32位的,但里面存的卻是一個8位的字節(jié)指令實例指令名稱含義LWR1,30(R2)載入整型字Regs[R1]←32Mem[30+Regs[R2]]LWR1,1000(R0)載入整型字Regs[R1]←32Mem[1000+0]LBR1,40(R3)載入字節(jié)Regs[R1]←32(Mem[40+Regs[R3]]0)24##Mem[40+Regs[R3]]LBUR1,40(R3)載入無符號字節(jié)Regs[R1]←32024##Mem[40+Regs[R3]]LHR1,40(R3)載入整型半字Regs[R1]←32(Mem[40+Regs[R3]]0)16##Mem[40+Regs[R3]]##Mem[41+Regs[R3]]LFF0,50(R3)載入單精度浮點Regs[F0]←32Mem[50+Regs[R3]]LDF0,50(R2)載入雙精度浮點Regs[F0]##Regs[F1]←64Mem[50+Regs[R2]]SW500(R4),R3儲存整型字Mem[500+Regs[R4]]←32Regs[R3]SF40(R3),F0儲存單精度浮點Mem[40+Regs[R3]]←32Regs[F0]SD40(R3),F0儲存雙精度浮點Mem[40+Regs[R3]]←32Regs[F0]Mem[44+Regs[R3]]←32Regs[F1]SH502(R2),R31儲存整型半字Mem[502+Regs[R2]]←16Regs[R31]16..31SB41(R3),R2儲存整型字節(jié)Mem[41+Regs[R3]]←8Regs[R2]24..31MIPS中Load和Store指令實例(2)ALU操作

簡單的算術和邏輯運算寄存器比較指令(,,,,,)指令實例指令名稱

含義DAddUR1,R2,R3無符號加Regs[R1]←Regs[R2]+Regs[R3]DADDIUR1,R2,#3和無符號立即值相加Regs[R1]←Regs[R2]+3LUIR1,#42立即值載入高16位Regs[R1]←42##016DSLLR1,R2,#5邏輯左移的立即值形式Regs[R1]←Regs[R2]<<5DSLTR1,R2,R3設置小于if(Regs[R2]<Regs[R3])Regs[R1]←1elseRegs[R1]←0ALU指令實例

2.6MIPS指令集結構(3)分支和跳轉操作

◆根據描述目標地址的方法和是否鏈接可以將

跳轉操作指令分為四種類型。 其中:兩種類型的跳轉指令用帶符號位的26位偏移量加上程序計數器的值來確定跳轉的目標地址;另外兩種類型的跳轉指令則指定一個寄

存器,由寄存器中的內容決定跳轉的目

標地址。2.6MIPS指令集結構◆

跳轉有兩種類型

溫馨提示

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

評論

0/150

提交評論