




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
RV32I指令功能分類按照功能整數(shù)運算整數(shù)的算術(shù)、邏輯和移位運算等數(shù)據(jù)傳送在內(nèi)存和寄存器之間傳送數(shù)據(jù)條件分支根據(jù)兩個寄存器的比較結(jié)果,進行分支跳轉(zhuǎn)無條件跳轉(zhuǎn)改變指令執(zhí)行的順序其他功能控制狀態(tài)寄存器指令,系統(tǒng)調(diào)用,以及將控制轉(zhuǎn)移到調(diào)試環(huán)境等RV32I指令表312524201915141211760
0000000rs2rs1000rd0110011add0100000rs2rs1000rd0110011sub0000000rs2rs1001rd0110011sll0000000rs2rs1010rd0110011slt0000000rs2rs1011rd0110011sltu0000000rs2rs1100rd0110011xor0000000rs2rs1101rd0110011srl0100000rs2rs1101rd0110011sra0000000rs2rs1110rd0110011or0000000rs2rs1111rd0110011andimm[11:0]rs1000rd0010011addiimm[11:0]rs1010rd0010011sltiimm[11:0]rs1011rd0010011sltiuimm[11:0]rs1100rd0010011xoriimm[11:0]rs1110rd0010011oriimm[11:0]rs1111rd0010011andi0000000shamtrs1001rd0010011slli0000000shamtrs1101rd0010011srli0100000shamtrs1101rd0010011sraiimm[31:12]rd0110111luiimm[31:12]rd0010111auipcimm[11:0]rs1000rd0000011lbimm[11:0]rs1001rd0000011lhimm[11:0]rs1010rd0000011lwimm[11:0]rs1100rd0000011lbuimm[11:0]rs1101rd0000011lhuimm[11:5]rs2rs1000imm[4:0]0100011sbimm[11:5]rs2rs1001imm[4:0]0100011shimm[11:5]rs2rs1010imm[4:0]0100011swimm[12|10:5]rs2rs1000imm[4:1|11]1100011beqimm[12|10:5]rs2rs1001imm[4:1|11]1100011bneimm[12|10:5]rs2rs1100imm[4:1|11]1100011bltimm[12|10:5]rs2rs1101imm[4:1|11]1100011bgeimm[12|10:5]rs2rs1110imm[4:1|11]1100011bltuimm[12|10:5]rs2rs1111imm[4:1|11]1100011bgeuimm[20|10:1|11|19:12]rd1101111jalimm[11:0]rs1000rd1100111jalr整數(shù)運算指令整數(shù)的算術(shù)、邏輯和移位運算等,共21條指令算術(shù)運算加法,減法運算邏輯運算與、或和異或移位運算左移、邏輯右移和算術(shù)右移小于則置位(slt/slti/sltu/sltiu),加載高位立即數(shù)(lui)、PC加高位立即數(shù)(auipc)整數(shù)運算指令除lui和auipc外,其他運算指令都是三地址指令兩個源操作數(shù)(即待運算的數(shù)據(jù))第一個源操作數(shù)來自于寄存器rs1第二個源操作數(shù)rs2——R-類型或從指令[31:20]中直接獲得——I-類型一個目標操作數(shù)(運算執(zhí)行后的結(jié)果)存儲于rd中整數(shù)運算指令R-類型,RegisterI-類型,ImmediateU-類型,Upper:lui和auipc指令312524201915141211760funct7rs2rs1funct3rdopcode31201915141211760imm[11:0]rs1funct3rdopcode311211760imm[31:12]rdopcodeR-類型運算指令操作碼為0110011312524201915141211760funct7rs2rs1funct3rdopcodeADD操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為000和0000000,加法運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001000010000110011addx10x9算術(shù)x8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000010019x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31SUB操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為000和0100000,減法運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176001000000101001001000010000110011subx10x9算術(shù)x8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000000113x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31AND操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為111和0000000,按位與運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001111010000110011x10x9andx8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000000102x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31OR操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為110和0000000,按位或運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001110010000110011x10x9orx8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000001117x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31XOR操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為100和0000000,按位異或運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001100010000110011x10x9xorx8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000001015x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31SLL操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為001和0000000,邏輯左移運算(ShiftLeftLogical)寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001001010000110011x10x9sllx8R-類型寄存器堆x0000000000000000000000000000000000x1******x80000000000000000000000000011000048x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31SRL操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為101和0000000,邏輯右移運算(ShiftRightLogical)寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001101010000110011srlx10x9右移x8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000000000x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31SRA操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為101和0100000,算術(shù)右移運算(ShiftRightArithmetic)寄存器堆x0000000000000000000000000000000000x1******x8x911111111111111111111111111111010-6x10000000000000000000000000000000011x30x3131252420191514121176001000000101001001101010000110011srax10x9右移x8R-類型寄存器堆x0000000000000000000000000000000000x1******x811111111111111111111111111111101-3x911111111111111111111111111111010-6x10000000000000000000000000000000011x30x31SLT操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為010和0000000,小于則置位運算(SetLessThan)寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001010010000110011x10x9sltx8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000000000x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31SLTU操作碼0110011,R-類型函數(shù)碼:指令[14:12]和指令[31:25],分別為011和0000000,無符號小于則置位運算(SetLessThanUnsigned)在比較時,將rs1和rs2中的數(shù)看作無符號數(shù)寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10000000000000000000000000000000113x30x3131252420191514121176000000000101001001011010000110011x10x9sltux8R-類型寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000000000x9000000000000000000000000000001106x10000000000000000000000000000000113x30x31I-類型運算指令操作碼為001001131201915141211760imm[11:0]rs1funct3rdopcodeADDI操作碼0010011,I-類型函數(shù)碼:指令[14:12]為000,加立即數(shù)運算3120191514121176000000000000101001000010000010011imm[11:0]x9addx8I-類型運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10x30x31寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000001117x9000000000000000000000000000001106x10x30x31andi,ori,xori,slti和sltiu指令均為I-類型指令,解釋與addi指令類似問題1沒有定義減立即數(shù)指令,如何實現(xiàn)減立即數(shù)運算?將addi指令的imm[11:0]中的立即數(shù)設(shè)置為負數(shù)3120191514121176011111111111101000000010000010011imm[11:0]x8addx8I-類型運算寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000001117x9x10x30x31寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000001106x9x10x30x31注意:在同一條指令中,一個寄存器既可以用作源寄存器,也可以用作目標寄存器這對所有的運算指令都是適用的問題2沒有定義非(NOT)運算指令,如何實現(xiàn)位組合的按位非運算,即按位取反操作?將xori指令的imm[11:0]中的立即數(shù)設(shè)置為xFFF3120191514121176011111111111101000100010000010011imm[11:0]x8xorx8I-類型運算寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000001117x9x10x30x31寄存器堆x0000000000000000000000000000000000x1******x811111111111111111111111111111000-8x9x10x30x31問題3I-類型指令的立即數(shù)的取值范圍是多少?立即數(shù)是來自于指令的[31:20]位中,共12位,其取值范圍:-211~211-1移位運算移位運算的移動位數(shù)僅需5位表示slli,srli和srai指令第二個源操作數(shù):指令[31:20]中的立即數(shù)的低5位(指令[24:20]),shamt(shiftamount,移位操作的位數(shù))指令[31:20]中的立即數(shù)的高7位,用于設(shè)置移位運算的類型(邏輯或算術(shù)移位)SLLI操作碼0010011,I-類型函數(shù)碼:指令[14:12]為001,代表左移運算結(jié)合指令[31:25]的立即數(shù)0000000,表示要執(zhí)行的是邏輯左移立即數(shù)運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10x30x31寄存器堆x0000000000000000000000000000000000x1******x80000000000000000000000000011000048x9000000000000000000000000000001106x10x30x3131252420191514121176000000000001101001001010000010011sllishamtx9左移x8I-類型運算SRLI操作碼0010011,I-類型函數(shù)碼:指令[14:12]為101,代表右移運算結(jié)合指令[31:25]的立即數(shù)0000000,表示要執(zhí)行的是邏輯右移立即數(shù)運算寄存器堆x0000000000000000000000000000000000x1******x8x9000000000000000000000000000001106x10x30x31寄存器堆x0000000000000000000000000000000000x1******x8000000000000000000000000000000000x9000000000000000000000000000001106x10x30x3131252420191514121176000000000001101001101010000010011srlishamtx9右移x8I-類型運算SRAI操作碼0010011,I-類型函數(shù)碼:指令[14:12]為101,代表右移運算結(jié)合指令[31:25]的立即數(shù)0100000,表示要執(zhí)行的是算術(shù)右移立即數(shù)運算寄存器堆x0000000000000000000000000000000000x1******x8x911111111111111111111111111111010-6x10x30x31寄存器堆x0000000000000000000000000000000000x1******x811111111111111111111111111111101-3x911111111111111111111111111111010-6x10x30x3131252420191514121176001000000000101001101010000010011sraishamtx9右移x8I-類型運算U-類型運算指令311211760imm[31:12]rdopcodeLUI操作碼0110111,代表加載高位立即數(shù)(LoadUpperImmediate)運算將指令[31:12]的20位立即數(shù),寫入指令[11:7]標識的rd的高20位中,低12位補0寄存器堆x0000000000000000000000000000000000x1x2x3******x30x3131121176000010100000000000000000110110111imm[31:12]x3lui寄存器堆x0000000000000000000000000000000000x1x2x300010100000000000000000000000000x14000000******x30x31AUIPC操作碼0010111,代表PC加高位立即數(shù)(AddUpperImmediatetoPC)運算以低12位補0,高20位是指令[31:12]的立即數(shù)的方式形成一個32位的值,加到PC上,結(jié)果寫入指令[11:7]標識的rd中寄存器堆x0000000000000000000000000000000000x1******x5x30x3131121176000000000000000000000001010010111imm[31:12]x3auipc寄存器堆x0000000000000000000000000000000000x1******x501000000000000000000000000000000x40000000x30x31PC01000000000000000000000000000000x40000000數(shù)據(jù)傳送指令在內(nèi)存和通用寄存器之間傳送數(shù)據(jù)加載(Load)將數(shù)據(jù)從內(nèi)存移動到寄存器存儲(Store)將數(shù)據(jù)從寄存器移動到內(nèi)存加載/存儲指令加載指令操作碼為0000011I-類型lb,lh,lw,lbu和lhu指令存儲指令操作碼為0100011S-類型sb,sh和sw指令尋址模式使用存儲單元地址,對存儲單元進行讀寫操作存儲單元地址32位無法在一條32位的指令中直接聲明一個地址尋址模式計算將要讀取或存儲的存儲單元的地址的機制加載/存儲指令的尋址模式“基址寄存器+偏移量”基址+偏移量存儲單元地址通過將一個12位的立即數(shù)(imm[11:0])進行符號擴展后,與寄存器rs1中的值相加得到rs1,“基址寄存器”imm[11:0],偏移量LW地址x3FFF000700000000x3FFF000600000000x3FFF000500000000x3FFF000400000110寄存器堆x0000000000000000000000000000000000x1*******x2001111111111111100000000000000000x3FFF0000x3x4x31基址+偏移量(x2)+0x000000040x3FFF00043120191514121176000000000010000010010010100000011imm[11:0]x2lwx10I-類型加載寄存器堆x0000000000000000000000000000000000x1*******x2001111111111111100000000000000000x3FFF0000x10000000000000000000000000000001106x31RS1=x0x0=0“基址+偏移量”,0+SEXT(imm[11:0])絕對地址x0加載指令不可用作目標寄存器RD其他加載指令W代表字(Word)B代表字節(jié)(Byte)lb指令,從計算出的存儲單元地址中讀取一個字節(jié)(即8位),經(jīng)符號擴展為32位后,寫入目標寄存器rd中H代表半字(Halfword)lh指令,從計算出的存儲單元地址中讀取連續(xù)的兩個字節(jié)(即16位,半字),經(jīng)符號擴展為32位后,寫入目標寄存器rd中U代表無符號數(shù)(Unsigned)lbu指令,從計算出的存儲單元地址中讀取一個字節(jié),經(jīng)零擴展后,寫入目標寄存器rd中l(wèi)hu指令,從計算出的存儲單元地址中讀取連續(xù)的兩個字節(jié),經(jīng)零擴展后,寫入目標寄存器rd中l(wèi)b和lbu:用于讀取ASCII字符lh和lhu:用于讀取16位的Unicode字符(一種可以容納世界上所有文字和符號的字符編碼方案)SW基址+偏移量(x5)+0x000000080x30000008地址x3000000B00000000x3000000A00000000x3000000900000000x300000080000001131252420191514121176000000000011000101010010000100011imm[11:5]x6x5swimm[4:0]S-類型寄存器堆x0000000000000000000000000000000000x1************x5001100000000000000000000000000000x30000000x6000000000000000000000000000000113x31其他存儲指令sb指令存儲字節(jié)(StoreByte,SB)操作將寄存器rs2中的值的低8位(一個字節(jié)),傳送到內(nèi)存的一個存儲單元中sh指令存儲半字(StoreHalfword,SH)操作將寄存器rs2中的值的低16位(兩個字節(jié)),傳送到兩個連續(xù)的存儲單元中地址對齊為了提高性能,加載/存儲指令計算出來的“基址+偏移量”的值,應該盡量對齊地址lw/sw指令“基址+偏移量”的值應該是4字節(jié)對齊,即地址應為4的倍數(shù)lh/lhu/sh指令2字節(jié)對齊,即地址應為2的倍數(shù)指令序列示例寄存器堆x0000000000000000000000000000000000x1……x30x31地址312524201915141211760解釋x10000010............……......x0040000C00000001000000101010001110000011lwx0040000800000000011000101010100000100011swx0040000400000000010100000000001100010011addix0040000000010000000000000000001010110111luiLUIx50x10000000地址312524201915141211760解釋x10000010......……......x0040000C00000001000000101010001110000011lwx0040000800000000011000101010100000100011swx0040000400000000010100000000001100010011addix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5x30x31寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x30x31ADDIx6
(x0)+5地址312524201915141211760解釋x10000010......……......x0040000C00000001000000101010001110000011lwx0040000800000000011000101010100000100011swx0040000400000000010100000000001100010011addix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x30x31寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x6000000000000000000000000000001015x30x31SW基址+偏移量:0x10000000+x00000010地址x1000001300000000x1000001200000000x1000001100000000x1000001000000101地址312524201915141211760解釋x10000010000000000000000000000000000001015......……......x0040000C00000001000000101010001110000011lwx0040000800000000011000101010100000100011swx0040000400000000010100000000001100010011addix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x6000000000000000000000000000001015x30x31LW基址+偏移量:x10000000
+x00000010地址312524201915141211760解釋x10000010000000000000000000000000000001015......……......x0040000C00000001000000101010001110000011lwx0040000800000000011000101010100000100011swx0040000400000000010100000000001100010011addix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x6000000000000000000000000000001015x30x31寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x6000000000000000000000000000001015x7000000000000000000000000000001015x30x31整數(shù)運算指令和數(shù)據(jù)傳送指令不改變指令執(zhí)行的順序控制器中的程序計數(shù)器PC記錄下一條要執(zhí)行的指令的地址PC
PC+4一條指令占用連續(xù)的4個存儲單元改變指令執(zhí)行的順序改變被執(zhí)行的指令的順序?qū)C設(shè)置為需要執(zhí)行的指令的地址指令控制指令條件分支無條件跳轉(zhuǎn)系統(tǒng)調(diào)用條件分支根據(jù)兩個寄存器的比較結(jié)果,決定是否改變指令執(zhí)行的順序,即改變PC的值如何計算PC中包含的下一條要執(zhí)行的指令地址?條件分支指令采用“PC-相對”尋址模式PC-相對指令地址可通過將一個13位的立即數(shù)(imm[12:0])進行符號擴展后,與當前PC的值相加得到注意:立即數(shù)由5個部分組合而成依次是:指令[31]、指令[7]、指令[30:25]、指令[11:8]和0imm[0]在指令中沒有出現(xiàn),其值被定義為0條件分支指令操作碼為1100011B-類型,B代表分支(Branch)313025242019151412118760imm[12]imm[10:5]rs2rs1funct3imm[4:1]imm[11]opcodeBEQ指令操作碼:1100011,B-類型函數(shù)碼:指令[14:12]的000,相等時分支(BranchifEQual)操作比較rs1和rs2中的值是否相等如果相等,PC
PC+SEXT(imm[12:0])如果不相等,PC
PC+4地址312524201915141211760x0040000000000000011000101000010001100011
imm[12|10:5]x6x5beqimm[4:1|11]B-類型BEQ指令PC
PC+SEXT(imm[12:0])0x00400000+0x00000008PC000000000100000000000000000010000x00400008地址312524201915141211760x0040000000000000011000101000010001100011
imm[12|10:5]x6x5beqimm[4:1|11]B-類型寄存器堆x0000000000000000000000000000000000x1……x5000000000000000000000000000001106x6000000000000000000000000000001106x30x31PC00000000010000000000000000000000x00400000地址限制計算出的地址被限制于內(nèi)存的一定范圍之內(nèi)在條件分支指令的偏移范圍之內(nèi)偏移范圍為-212到212-1每條指令占4個單元,跳轉(zhuǎn)的指令就位于當前指令之前的1024條指令,和當前指令之后的1024條指令之間RS1=RS2PC
PC+SEXT(imm[12:0])無條件分支其他條件分支指令bne指令(BranchifNotEqual)不相等時分支blt指令(BranchifLessThan)小于時分支,判斷rs1是否小于rs2中的值bge指令(BranchifGreaterThanorEqual)大于等于時分支,判斷rs1是否大于或等于rs2中的值bltu指令(BranchifLessThan,Unsigned)無符號小于時分支,將rs1和rs2中的值看作無符號整數(shù),判斷rs1是否小于rs2中的值bgeu指令(BranchifGreaterThanorEqual,Unsigned)無符號大于等于時分支,將rs1和rs2中的值看作無符號整數(shù),判斷rs1是否大于或等于rs2中的值。無條件跳轉(zhuǎn)指令jal指令和jalr指令改變PC中的值將下一條指令的地址(即PC+4的值),保存到目標寄存器rd中,以便將來返回返回地址,或返回鏈接(Link)如果目標寄存器rd被設(shè)置為x0,則不保存返回地址JAL指令操作碼:1101111,J-類型,J代表跳轉(zhuǎn)(Jump)跳轉(zhuǎn)并鏈接(JumpandLink)PCPC+SEXT(imm[20:0])0x00400000+0x0000000Cx1PC+4地址311211760x0040000000000000110000000000000011101111
imm[20|10:1|11|19:12]x1jal寄存器堆x0000000000000000000000000000000000x1……x5x6x30x31PC000000000100000000000000000000000x00400000寄存器堆x0000000000000000000000000000000000x1000000000100000000000000000001000x00400004x5x6x30x31PC000000000100000000000000000011000x0040000CJALR指令操作碼:1100111,I-類型跳轉(zhuǎn)指令函數(shù)碼:指令[14:12]的000,寄存器跳轉(zhuǎn)并鏈接(JumpandLinkRegister)PC(x5)+SEXT(imm[11:0])0x00400020+0xFFFFFFFCx1PC+4地址31201915141211760x0040000011111111110000101000000011100111
imm[11:0]x5jalrx1I-類型跳轉(zhuǎn)寄存器堆x0000000000000000000000000000000000x1……x5000000000100000000000000001000000x00400020x6x30x31PC000000000100000000000000000000000x00400000寄存器堆x0000000000000000000000000000000000x1000000000100000000000000000001000x00400004x5x6x30x31PC000000000100000000000000000111000x0040001C示例:計算一列數(shù)之和地址312524201915141211760解釋x10000024000000000000000000000000000001015......……......x10000000000000000000000000000000000001106......……......x0040002011111110110111111111000001101111jalx0040001C11111111111101001000010010010011addix0040001800000000010000101000001010010011addix0040001400000000100000110000010000110011addx0040001000000000000000101010001100000011lwx0040000C00000000000001001000110001100011beqx0040000800000000101000000000010010010011addix0040000400000000000001000111010000010011andix0040000000010000000000000000001010110111luiLUI指令x50x10000000地址312524201915141211760解釋x10000024000000000000000000000000000001015......……......x10000000000000000000000000000000000001106......……......x0040002011111110110111111111000001101111jalx0040001C11111111111101001000010010010011addix0040001800000000010000101000001010010011addix0040001400000000100000110000010000110011addx0040001000000000000000101010001100000011lwx0040000C00000000000001001000110001100011beqx0040000800000000101000000000010010010011addix0040000400000000000001000111010000010011andix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5x30x31寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x30x31ANDI指令x8
(x8)AND0地址312524201915141211760解釋x10000024000000000000000000000000000001015......……......x10000000000000000000000000000000000001106......……......x0040002011111110110111111111000001101111jalx0040001C11111111111101001000010010010011addix0040001800000000010000101000001010010011addix0040001400000000100000110000010000110011addx0040001000000000000000101010001100000011lwx0040000C00000000000001001000110001100011beqx0040000800000000101000000000010010010011addix0040000400000000000001000111010000010011andix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x8******x30x31寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x8000000000000000000000000000000000x30x31ADDI指令x9
(x0)+10地址312524201915141211760解釋x10000024000000000000000000000000000001015......……......x10000000000000000000000000000000000001106......……......x0040002011111110110111111111000001101111jalx0040001C11111111111101001000010010010011addix0040001800000000010000101000001010010011addix0040001400000000100000110000010000110011addx0040001000000000000000101010001100000011lwx0040000C00000000000001001000110001100011beqx0040000800000000101000000000010010010011addix0040000400000000000001000111010000010011andix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x8000000000000000000000000000000000x30x31寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x8000000000000000000000000000000000x90000000000000000000000000000101010x30x31BEQ指令(x9)!=(x0),PC
PC+4地址312524201915141211760解釋x10000024000000000000000000000000000001015......……......x10000000000000000000000000000000000001106......……......x0040002011111110110111111111000001101111jalx0040001C11111111111101001000010010010011addix0040001800000000010000101000001010010011addix0040001400000000100000110000010000110011addx0040001000000000000000101010001100000011lwx0040000C00000000000001001000110001100011beqx0040000800000000101000000000010010010011addix0040000400000000000001000111010000010011andix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x8000000000000000000000000000000000x90000000000000000000000000000101010x30x31PC000000000100000000000000000011000x0040000CPC000000000100000000000000000100000x00400010LW指令基址+偏移量:(x5)+x00000000地址312524201915141211760解釋x10000024000000000000000000000000000001015......……......x10000000000000000000000000000000000001106......……......x0040002011111110110111111111000001101111jalx0040001C11111111111101001000010010010011addix0040001800000000010000101000001010010011addix0040001400000000100000110000010000110011addx0040001000000000000000101010001100000011lwx0040000C00000000000001001000110001100011beqx0040000800000000101000000000010010010011addix0040000400000000000001000111010000010011andix0040000000010000000000000000001010110111lui寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x8000000000000000000000000000000000x90000000000000000000000000000101010x30x31寄存器堆x0000000000000000000000000000000000x1……x5000100000000000000000000000000000x10000000x6000000000000000000000000000001106
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 監(jiān)理工程師月度考核評分
- 國際結(jié)算考試題及答案
- 防煤氣中毒安全教育幼兒園
- 生料輥壓機培訓
- 支原體肺炎健康宣講
- 2025年中國幕布行業(yè)市場全景分析及前景機遇研判報告
- 工地文明施工培訓
- 職場文化培訓
- 教師家庭教育培訓心得
- 護理帶教老師教學小講課
- 2024年深圳市中考歷史試卷真題(含答案解析)
- 脫碳塔CO2脫氣塔設(shè)計計算
- WYA-2WAJ阿貝折射儀使用說明書
- 2022年人教版四年級數(shù)學(下冊)期末試卷及答案(必考題)
- 電梯安全隱患排查表完整版
- 房地產(chǎn)估價報告:商業(yè)房地產(chǎn)租賃價格估價
- 體育課身體素質(zhì)練習教案
- kW殼管式干式蒸發(fā)器設(shè)計
- 新進員工三級教育卡(參考)范本
- 系列螺桿冷水機組操作培訓
- 五金用樣品承認書
評論
0/150
提交評論