計算機組成原理lecture_第1頁
計算機組成原理lecture_第2頁
計算機組成原理lecture_第3頁
計算機組成原理lecture_第4頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、Lecture 15: MIPS AssemblyLanguage程序的級表示主要內容u MIPS指令格式 R 類型u MIP器寄存存寄I 類型 J 類型器長度u M數I 作操個數功能分配數作寄存器操作數指令尋址方式器操作數立即數本文位本u M立即數尋址 型類令指寄存器尋址型類令相對尋址偽直接尋址偏移尋址算術邏輯送傳據數支分件條送無條件支轉移匯編語言形式操作碼的表示寄存器的表示器數據表示語言的反匯編級高高級編匯語言語匯級編言語語言編過程調用與堆棧語言之間的轉換MIPS指令格式所有指令都是32位寬須按字地址對齊指令11312621660u 有三種指令格式R-Typ6 bits5 bits5 bi

2、tsbits5 bitsrs rt6 bits兩個操作數和結果都在寄存器的運算指令。如:surdI-Ty運算指令:一個寄存器、一個立即數。如:orit,s, imm16D和S指令。如:lrt, rs, i條件分支指令。如:b31q rs26rt, imm162指令1606its5 bits5 bits16 bits無條件跳轉指令。如:j31target26指令6 bits26 bitsoparget addressoprsrtimmediateoprsrtrdshamtfuncMIPS指令字段含義R-Type指令113126211660OP:操作碼rs:第一個源操作數寄存器rt:第二個源操作數

3、寄存器rd:結果寄存器shamt:移位指令的位移量6 bits5 bits5 bits5 bits5 bits6 bitsI-Type指令3126211606 bits265 bits5 bits16 bits J-Type指令3106 bits26 bitsfunc:R-Type指令的OP字段是特定的“000000”,具體操作由func字段給定。例如:func=“100000”時,表示“加法”運算。操作碼的不同編碼定義不同的含義,操作碼相同時,再由功能碼定義不同的含義! immediate:立即數或load/store指令和分支指令的偏移地址target address:無條件轉移地址的低2

4、6位。將PC高4位拼上26位直接地址,最后添2個“0”就是32位目標地址。為何最后兩位要添“0”?指令按字地址對齊,所以每條指令的地址都是4的倍數(最后兩位為0)。optarget addressoprsrtimmediateoprsrtrdshamtfuncOP字段的含義(MIPS指令的操作碼編碼/表)BACK to AssembleBack to Load/Storeop=0:R型;op=2/3:J型;其余:I型R-型指令的(op=0時,func字段的編碼/表)的BACK to Assemble令ad指d指令的的fun令c指字段為100000B(32)div指令的func字段為多少? 01

5、1010B(26)!MIPS Addressing Modes(尋址方式)有專門的尋址方式字段(Mod)嗎?沒有!由指令格式來確定,而指令格式由op來確定!還記得如何確定的嗎?R-format:Register655556I-format:ImmediateByte / Half Word / WordBase或index基址或變址+PC-relative相對尋址+J-format:Pseudodirect偽直接尋址為什么稱偽直接?還記得如何得到最終地址的嗎?最終地址=PC3128|addr.|00位數:4+26+2=32opaddr.MemoryPC + 4Memoryoprsrtimmed

6、registerMemoryB/HW/WoprsrtimmedoprsrtimmedregisteroprsrtrdsmtfuncExample:匯編形式與指令的對應器取來一條指令為00AF8020H,則對應的匯編形式是什么?u 若從32位指令代碼:0000 0000 1010 1111 1000 0000 0010 0000指令的前6位為000000,根據指令表知,是一條R-Type指令,按照R-Type指令的格式6 bits5 bits5 bits5 bits5 bits6 bits31262116116000000000101011111000000000100000得到: rs=001

7、01, rt=01111, rd=10000, shamt=00000, funct=1000001. 根據R-Type指令表,知是 “add”操作(非移位操作)2. rs、rt、rd的十進制值分別為5、15、16,從MIPS寄存器功能表知: rs、rt、rd分別為:$a1、$t7、$s0故對應的匯編形式為:add$s0 ,$a1,$t7這個過程稱為“反匯編”,可用來 他人的二進制代碼(可執行程序).功能:$a1 + $t7 $s0oprsrtrdshamtfuncExample:匯編形式與指令的對應 若MIPS Assembly Instruction:Add$t0,$s1,$s2?則對應的

8、指令代碼是什么?從助記符表中查到Add是R型指令,即:655556問題:如何知道是R型指令?Decimal representaton:根據匯編指令中的操作碼助記符查表能知道是什么格式!556$s1$s2$t0R-TypeNo shiftAddBinary representaton:655556這個過程稱為“匯編”,所有匯編源程序都必須匯編成二進制代碼才能讓直接執行!000000100011001001000000001000000oprsrtrdsmtfunc匯編器MIPS Circuits for R-Type Instructions問題:你能給出R-型指令在上述通路中的大致執行過程嗎

9、?MIPS R-type指令實現電路的執行過程Phase1: Pre aro段階備準備階段 裝入指令寄存器IR段階備 以下相應字段送邏輯ofiel(O 字段)func fie d (fushmt fi ld (s字段)段字這個過程描述僅是示意性的,實際上整個過程需要時鐘信號段以下相應字段送寄存器堆第一操作數寄存器編號第二操作數寄存器編號存放結果的目標寄存器編號的并有其他部件參與將在下一章詳細介紹。Phase2: Exe執i段階行執寄存器號被送選擇器 對應選擇器輸出被激活被選寄存器的輸出送到數據線邏輯提供:操作碼寫信號結果被寫回目標寄存器MIPS指令中寄存器數據和器數據的指定r0 r1 寄存器數

10、據指定: 332-biGPR(r)寄存器編號占5 bit3x 32-it FP r f 1, pai ed無需編號()HI, LO,特殊寄存器r31PC寄和存能功器存種匯編能表示方式器數據指定lo hi2- bit m c間hi空問訪可空間問: 2訪32b可y es間 Big端大端式方方式端大過通能只只能通過過Lo通能只數據地址通過一個指令器數據位寄存器內容加位偏移量得到位偏移量是帶符號整數故應符號擴展數據要求按邊界是對址齊地( 數倍(的4址的地倍數)數)倍的SKIP0MIPS寄存器的功能定義和兩種匯編表示Registers are referenced either by number$0,

11、 $31, or by name $t0, $s1 $ra.012 - 34 - 78-1516-2324 - 2526 - 2728293031BACK to Assemblezeroatv0-v1a0 - a3t0 - t7s0 - s7t8 - t9k0 - k1gpspfpraNamenumberUsageon call?zero0constant value =0(恒為0)n.a.at1for assembler(為匯編程序保留)n.a.v0 v12 3values for results(過程調用返回值)noa0 a34 7Arguments(過程調用參數)yest0 t78 15Temporaries(臨時變量)nos0 s716 23Saved(保存)yest8

溫馨提示

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

評論

0/150

提交評論