MIPS匯編語言(課堂提問)_第1頁
MIPS匯編語言(課堂提問)_第2頁
MIPS匯編語言(課堂提問)_第3頁
MIPS匯編語言(課堂提問)_第4頁
MIPS匯編語言(課堂提問)_第5頁
已閱讀5頁,還剩13頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

NJUSTwang0429s計算機科學與工程學院MIPS匯編語言序言:Q1:

和高級語言相比,低級語言有何優(yōu)缺點?優(yōu)點:(1)可以直接訪問系統(tǒng)接口,匯編程序翻譯成的機器語言程序效率高;(2)直接控制硬件,充分發(fā)揮硬件功能;(3)匯編語言程序代碼質量高,占用內存空間少,執(zhí)行速度快。缺點:編寫難,難修改,難維護。Q2:為何需要學習匯編語言?便于理解如何更好地編寫高級語言代碼;有利于深入了解程序執(zhí)行過程;有助于對高級語言程序機制的理解;Q3:匯編源程序和匯編程序分別是什么?匯編源程序是用匯編語言編寫的程序;匯編程序是將匯編源程序轉化為機器能識別的機器代碼;Q4:根據(jù)機器指令體系,CPU分為哪兩大類?典型代表有哪些?CPU兩種架構:CISC(復雜指令集計算機),RISC(精簡指令集計算機)CISC:Intel、80X86、8086;RISC:ARM系列;架構Q1:學習MIPS架構需要了解哪四個主要方面的內容?(1)寄存器用途;(2)指令集;(3)尋址方式;(4)數(shù)據(jù)類型;Q2:數(shù)據(jù)類型和高級語言中的數(shù)據(jù)類型有何不同?匯編語言中指:數(shù)據(jù)長度,有無符號等;高級語言中:字符型、整形等;Q3:MIPS架構中通用寄存器有多少個?一個寄存器多少位?(1)3232Q4:用于傳遞函數(shù)輸入實參的寄存器是哪些?(1)a0—a3編號:4—7;Q5:用于存放函數(shù)返回值的寄存器是哪些?(1)v0和v1編號:2和3;Q6:在MIPS程序中,函數(shù)Main調用函數(shù)A,函數(shù)Main中有一個t0寄存器存放某個重要值,但函數(shù)A中有改變t0寄存器值的指令,若不希望函數(shù)A返回后t0寄存器值被改變,根據(jù)編程約定,應該如何保證t0寄存器值不變。(1)在main中入棧;Q7:和上題類似,若函數(shù)Main使用s0寄存器存放某個重要值,該如何做呢?(1)在A中入棧;Q8:保留給OS使用的寄存器是哪些?

保留給匯編程序使用的寄存器是?在這段指令中有哪個?k0和k1編號:26和27;at編號:1;Q9:用于存放函數(shù)的返回地址的寄存器是哪個?存放棧頂?shù)刂返募拇嫫魇悄膫€?(1)ra編號:31;(2)sp編號:29;Q10:HI寄存器用于存放什么數(shù)據(jù)?LO寄存器用于存放什么數(shù)據(jù)?HI:乘積的高32位、余數(shù);(2)LO:乘積的低32位、商;Q11:簡述匯編源程序執(zhí)行過程?(1)匯編源程序->目標程序->可執(zhí)行程序;Q12:程序計數(shù)器寄存器PC存放什么值?為何一次遞增4?何時遞增?存放將要取出執(zhí)行的指令所在內存單元的地址;32位MPIPS架構中定義的所有指令長度都為32位,因此每條指令取出后,PC增量值為4;Q13:畫一個64KB的存儲器。先計算所需內存單元數(shù);再執(zhí)筆畫;Q14:現(xiàn)有一個如下存儲器,在對齊要求下,取出地址為0003的一個字節(jié)。取出地址為0002的一個半字。取出地址為0001的一個字。Q15:內存分為幾個部分?地址范圍、地址空間、數(shù)據(jù)段、堆棧段;Q16:指令寄存器IR存放什么?MIPS指令有幾種格式?(1)IR存放最近一條取出的指令;(2)MIPS指令三種格式:R、I、J;Q17:R指令有幾段?

舉一個指令例子。(1)R指令一共有六段:操作碼(op)寄存器(rs、rt、rd)移位數(shù)值、功能號;Q18:I指令有幾段?舉一個指令例子。(1)I指令一共4個域;(2)addi$rt,$rs,imm語意:R[rt]=R[rs]+(IR15)^16IR15-0Q19:J

指令有幾段?舉一個指令例子。(1)J指令一共2個域;(2)jtarget;Q20:結合指令動畫理解三種格式指令并描述指令執(zhí)行過程。IF(取指)從指令緩存中獲取下一條指令,放入IR;RD(從寄存器堆讀)解碼指令,讀取寄存器堆中相應寄存器的內容;ALU(運算)在一個時鐘周期內完成ALU的運算,浮點和乘除法除外;MEM(訪問數(shù)據(jù)緩存)按照指令給定的地址,將寄存器的值讀入/寫入數(shù)據(jù)緩存;WB(寫回)操作完成后,將得到的值保存到寄存器堆。尋址方式和指令集:Q1:操作數(shù)尋址方式有哪幾種?分別是什么含義?寄存器尋址、立即數(shù)尋址、存儲單元尋址(3種);寄存器尋址:在指令中指定寄存器名就是寄存器尋址;立即數(shù)尋址:滿足了指令中需要常數(shù)的要求(I指令格式);存儲單元尋址:CPU訪問主存只能通過取數(shù)/存數(shù)("load/Store")指令;Q2:采用立即數(shù)尋址的指令是什么格式?采用寄存器尋址的指令是什么格式?(1)I指令格式;(2)R指令格式;Q3:采用存儲單元尋址的指令是什么格式?什么寫法?可以直接訪問內存的指令有哪些?(1)load/store架構;(2)取數(shù)據(jù)字指令lwrt,offset(rs),存數(shù)據(jù)字指令swrt,offset(rs);(3)Q4:為何需要目標地址尋址?(1)Q5:寄存器間接尋址為何稱為間接?采用寄存器間接尋址的指令是什么格式?有哪些指令

因為寄存器間接尋址是將指定的寄存器內容為地址,由該地址所指定的單元內容作為操作數(shù);R指令格式;Q6:偽直接尋址為何稱為偽?采用偽直接尋址的指令是什么格式?有哪些指令

?由于目標地址的高4位不會改變,導致指令的跳轉范圍比整個尋址空間?。恢噶罡袷剑篔指令格式;例:jtarjet;Q7:相對尋址為何稱為相對?采用相對尋址的指令是什么格式?如何計算Imm?相對尋址以程序計數(shù)器的當前值為基地址,指令中的地址標號作為偏移量,將兩者相加后得到操作數(shù)的有效地址。I指令格式;Imm=(y-x-4)>>2;y-x是目標地址和當前跳轉指令的差值;Q8:從內存Mem取數(shù)據(jù)的指令有哪些?它們是什么種類的指令?取有符號字節(jié)類型數(shù)據(jù)指令格式lb;取無符號字節(jié)類型數(shù)據(jù)的指令lbu;取有符號半字數(shù)據(jù)類型指令lh取無符號半字類型數(shù)據(jù)指令lhu取字類型數(shù)據(jù)的指令lw加載立即數(shù)到寄存器指令lui存數(shù)據(jù)指令sbshsw;有關專用寄存器的指令mfhimflomthimtlo相關宏指令;Q9:帶u和不帶u指令的區(qū)別是什么?為何沒有l(wèi)wu?帶u指令對象為無符號型數(shù)據(jù);不帶u的為有符號型數(shù)據(jù);lw針對字類型數(shù)據(jù)字類型數(shù)據(jù)沒有符號位;Q10:把寄存器中數(shù)據(jù)存放到Mem的指令有哪些?它們是什么種類的指令?(1)sbshsw(2)R型指令Q11:把HI寄存器值傳送到通用寄存器的指令是什么?該指令是什么格式的?把通用寄存器值傳送到LO寄存器的指令是什么?(1)mfhirdest(2)mfloRdest(3)mthiRsrc(4)mtloRsrcQ12:什么是宏指令?(1)宏指令是匯編語言程序中的一種偽指令;宏指令是代表某功能的一段源程序;Q13:如何把32位Imm存放到Mem中?(1)用la或者li指令;Q14:如何把16位Imm存放到Mem中?(1)Q15:寫出宏指令li

$t0,

0xffffefff的實現(xiàn)代碼。(1)Q16:通用寄存器之間傳送數(shù)據(jù)的宏指令是什么?其如何實現(xiàn)?moveRdest,Rsrc將Rsrc寄存器中的數(shù)據(jù)復制到Rdest寄存器中;Q17:加法指令包括哪些?分別是什么類型的指令?帶u和不帶u有何區(qū)別?(1)add(R指令)addu(R指令)addi(I指令)addiu(I指令)Q18:減法指令包括哪些?分別是什么類型的指令?(1)sub(R指令)subu(R指令)Q19:減法指令為何不像加法指令那樣有帶i型指令?如何實現(xiàn)減去一個立即數(shù)?(1)減去一個立即數(shù)可以用加上一個負的立即數(shù)來代替;Q20:與減法指令相關的宏指令有哪些?(1)求補(neg)取絕對值(abs)Q21:求補宏指令能否對-2^31求補?(1)不能會越界;Q22:乘/除法指令包括哪些?是什么類型的指令?(1)乘法(multmultu)(2)除法(divdivu)都是R指令;Q23:與乘法指令相關的宏指令有哪些?(1)mulQ24:與除法指令相關的宏指令有哪些?(1)divdivuremremuQ25:與運算指令包括哪些?是什么類型的指令?(1)and(R指令)andi(I指令)Q26:或運算指令包括哪些?是什么類型的指令?(1)or(R指令)ori(I指令)Q27:異或運算指令包括哪些?是什么類型的指令?(1)xor(R指令)xori(I指令)Q28:或非指令含義是什么?非運算如何實現(xiàn)?(1)或運算加非運算Q29:邏輯左移指令包括哪些?是什么類型的指令?(1)sll(R指令)sllv(R指令)Q30:邏輯右移指令包括哪些?是什么類型的指令?(1)srl(R指令)srlv(R指令)Q31:算術右移指令包括哪些?是什么類型的指令?(1)sra(R指令)srav(R指令)Q32:為何沒有算術左移指令?如何實現(xiàn)算術左移?(1)邏輯左移和算術左移在操作上是一致的;(2)算術左移:移動一位對應有符號數(shù)乘2,在低位的空位補0;Q33:循環(huán)左移宏指令如何實現(xiàn)?循環(huán)移位:移出的二進制位不丟失,填補到另一端;循環(huán)左移宏指令:rolrd,rs,rt/sa;實現(xiàn):subu$at,$0,$rt;計算32-rt,得出值xsrlv$at,$rs,$at;邏輯右移x位sllvrd,rs,rt;orrd,rd,at;Q34:循環(huán)右移宏指令如何實現(xiàn)?(1)ror

rd,

rs,

rt

/

saQ35:條件設置指令包括哪些?是什么類型的指令?(1)slt

/

sltu

rd,

rs,

rt(2)slti

/

sltiu

rd,

rs,immQ36:條件設置宏指令有哪些?如何實現(xiàn)的?(1)seqrd,rs,rt(2)sgt/sgturd,rs,rt(3)sge/sgeurd,rs,rt(4)sle/sleurd,rs,rt(5)snerd,rs,rtQ37:無條件轉移指令包括哪些?是什么類型的指令?(1)I指令(偽直接尋址)jlabel;jallabel;(2)R指令(寄存器間接尋址)jrjs;jalrrd,rs;(3)宏指令blable;實現(xiàn):bgez$0,lable;Q38:條件轉移指令包括哪些?是什么類型的指令?判斷兩個寄存器$s0和$s1中值符號是否相同的指令(1)I指令(相對尋址):beq/bners,rt,Labelbgez/bgezal/bgtz/blez/bltz/bltzalrs,Label宏指令:beqzrs,Label實現(xiàn):beqrs,$0,Labelbge/bgeurs,rt,Label實現(xiàn):slt/sltu$at,rs,rtbeq$at,$0,Labelbgt/bgturs,rt,Label實現(xiàn):slt/sltu$at,rt,rsbne$at,$0,Label(為何不和1比較相等?)ble/bleurs,rt,Label實現(xiàn):slt/sltu$at,rt,rsbeq$at,$0,Labelblt/blturs,rt,Label實現(xiàn):slt/sltu$at,rs,rtbne$at,$0,Labelbnezrs,Label實現(xiàn):bners,$0,LabelQ39:無條件轉移宏指令如何實現(xiàn)?與j指令有何不同?(1)b

Label;(2)bgez

$0,

Label;Q40:條件轉移宏指令包括哪些?如何實現(xiàn)的?(1)beqz

rs,

Label;實現(xiàn):beq

rs,

$0,

Label;(2)bnez

rs,

Label;實現(xiàn):bne

rs,

$0,

Label(3)bge/

bgeu

rs,

rt,

Label;實現(xiàn):slt/

sltu

$at,

rs,

rtbeq

$at,

$0,

Label(4)bgt/

bgtu

rs,

rt,

Label;實現(xiàn):slt/

sltu

$at,

rt,

rsbne

$at,

$0,

Label(5)ble/

bleu

rs,

rt,

Label;blt

/

bltu

rs,

rt,

Label;

andi

$t0,

$s0,

1eqz

$t0,

even…even:(6)abs

rd,

rs;

溫馨提示

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

評論

0/150

提交評論