[轉]MIPS指令集

來源:互聯網
上載者:User

標籤:

  MIPS CPU的一次操作可載入或儲存1到8個位元組的資料。由於乘法的結果返回的速度不足以使下一條指令能夠自動得到這個結果,乘法結果寄存器是互鎖的(interlocked)。在乘法操作完成之前試圖讀取結果寄存器就是導致CPU停止運行,直到完成。  和其他一些更簡單的RISC體繫結構相比,MIPS體繫結構的目標之一是:體繫結構朝著64位發展,從而使得地址的段式結構變得沒有任何必要。(在64位版本的X86核PowerPC中還有這個負擔)  功能分組:    空操作:nop、ssnop(不能和其他指令同時發射,至少需要一個刻度)    寄存器間的資料傳送指令:move、movf、movt、movn、movz(後四個為條件傳遞指令)    常數載入指令:dla、la(擷取某些標號地址或程式中變數地址的巨集指令);dli、li(載入常數立即數指令);lui(載入高位立即數指令)    算術/邏輯操作指令:addu、addiu、daddu,daddiu(加法指令);dsub、sub(會觸發溢出陷入的減法操作);dsubu、subu(普通減法指令);abs、dabs(求絕對值操作);dneg、neg、dnegu、negu(一元非操作);and、andi、or、ori、xor、xori、nor、not(按位邏輯指令);drol、dror、rol、ror(迴圈左移和右移);dsll、dsll32、dsllv(64位左移,低位補零);dsra、dsra32、dsrav(64位算術右移指令);dsrl、dsrl32、dsrlv(64位邏輯右移指令);sll、sllv(32位左移指令);sra、srav(32位算術右移指令);srl、srlv(32位邏輯右移指令);slt、slti、sltiu、sltu(硬體指令,條件滿足就寫入1,否則寫0);seq、sge、sgeu、sgt、sgtu、sle、slue、sne(根據更複雜的條件設定目的寄存器的巨集指令)    整數乘法、除法以及求餘指令:ddiv、ddivu、div、divu(整數除法的3運算元巨集指令分別處理64位或32位有符號或無符號數);divo、divou(明確該指令是帶有溢出檢查的除法指令);dmul、mul(3運算元64位或32位乘法指令,沒有溢出檢查);mulo、mulou、dmulo、dumlou(乘法巨集指令,如果結果不能存入一個通用寄存器,發生溢出,觸發異常);dmult、dmultu、mult、multu(執行有符號/無符號32/64位乘法的機器指令);drem、dremu、rem、remu(求餘操作);mfhi、mflo、mthi、mtlo(用於訪問整數乘除單元的結果寄存器hi和lo)    存取指令(記憶體訪問指令):lb、lbu(載入一個位元組,高位可以補零,或進行符號擴充,以補充整個寄存器的長度);ld(載入一個雙字);ldl、ldr、lwl、lwr、sdl、sdr、swl、swr(向左、向右載入、儲存一個字、雙字);lh、lhu(載入一個半字,高位可以補零,或進行符號擴充,以補充整個寄存器的長度);lw、lwu(載入一個字);pref、prefx(把資料預取到緩衝);sb、sd、sh、sw(儲存位元組、雙字、半字、字);uld、ulh、ulhu、ulw、usd、usw、ush(地址非對齊的資料存取巨集指令);l.d、l.s、s.d、s.s(存取雙精確度和單精確度浮點數的指令,地址必須對齊);ldxcl、lwxcl、sdxcl、swxcl(採用基底位址暫存器+位移寄存器的定址方式存取指令);    跳轉、分支和子程式調用指令:j(無條件跳轉到一個絕對位址,訪問256M的代碼空間);jal、jalr(直接或間接子程式調用,這種跳轉不僅能跳轉到指定地址,而且可以順便把返回地址(當前指令地址+8)放到ra寄存器中);b(基於當前指令地址的無條件相對跳轉);bal(基於當前地址的函數調用指令);bc0f、bc0f1、bc0t、bc0t1、bc2f、bc2f1、bc2t、bc2t1(根據副處理器0和2的條件標誌進行跳轉);bc1f、bc1f1、bc1t、bc1t1(根據浮點條件標誌位進行跳轉);beq、beq1、beqz、beqz1、bge、bge1、bgeu、bgeu1、bgez、bgez1、bgt、bgt1、bgtu、bgtu1、bgtz、bgtz1、ble、ble1、bleu、bleu1、blez、blez1、blt、blt1、bltu、bltu1、bltz、bltz1、bne、bnel、bnez、bnezl(雙運算元和單運算元的比較跳轉指令);bgeza1、bgeza11、bltza1、bltza11(如果需要 ,這些指令是用於有條件函數調用的原始機器指令);    斷點及陷阱指令:break(產生一個“斷點”類型的異常);sdbbp(產生EJTAG異常的斷點指令);syscall(產生一個約定用於系統調用的異常類型);teq、teqi、tge、tgei、tgeiu、tgeu、tlt、tlti、tltiu、tltu、tne、tnei(條件異常指令,對一個或兩個運算元進行條件測試);    副處理器0的功能:cfc0、ctc0(把資料拷進和拷出副處理器0的控制寄存器);mfc0、mtc0、dmfc0、dmtc0(在通用寄存器和副處理器0寄存器之間交換資料);cfc2、ctc2、dmfc2、dmtc2、mfc2、mtc2(副處理器2的指令);   彙編資料匯總:http://www.cnblogs.com/kingwolfofsky/archive/2011/09/02/2163457.html

[轉]MIPS指令集

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.