4.2 RV32I指令电子课件 计算机系统基础:C语言视角(RISC-V版).ppt
《4.2 RV32I指令电子课件 计算机系统基础:C语言视角(RISC-V版).ppt》由会员分享,可在线阅读,更多相关《4.2 RV32I指令电子课件 计算机系统基础:C语言视角(RISC-V版).ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、4.2 RV32I指令电子课件 计算机系统基础:C语言视角(RISC-V版)RV32IRV32I指令指令功能分类功能分类按照功能按照功能整数运算整数运算整数的算术、逻辑和移位运算等整数的算术、逻辑和移位运算等数据传送数据传送在内存和寄存器之间传送数据在内存和寄存器之间传送数据条件分支条件分支根据两个寄存器的比较结果,进行分支跳转根据两个寄存器的比较结果,进行分支跳转无条件跳转无条件跳转改变指令执行的顺序改变指令执行的顺序其他功能其他功能控制状态寄存器指令,系统调用,以及将控制转移到调控制状态寄存器指令,系统调用,以及将控制转移到调试环境等试环境等RV32IRV32I指令指令表表31 2524
2、2019 1514 1211 76 00000000rs2rs1000rd0110011add0100000rs2rs1000rd0110011sub0000000rs2rs1001rd0110011sll0000000rs2rs1010rd0110011slt0000000rs2rs1011rd0110011sltu0000000rs2rs1100rd0110011xor0000000rs2rs1101rd0110011srl0100000rs2rs1101rd0110011sra0000000rs2rs1110rd0110011or0000000rs2rs1111rd0110011andi
3、mm11:0rs1000rd0010011addiimm11:0rs1010rd0010011sltiimm11:0rs1011rd0010011sltiuimm11:0rs1100rd0010011xoriimm11:0rs1110rd0010011oriimm11:0rs1111rd0010011andi0000000shamtrs1001rd0010011slli0000000shamtrs1101rd0010011srli0100000shamtrs1101rd0010011sraiimm31:12rd0110111luiimm31:12rd0010111auipcimm11:0rs1
4、000rd0000011lbimm11:0rs1001rd0000011lhimm11:0rs1010rd0000011lwimm11:0rs1100rd0000011lbuimm11:0rs1101rd0000011lhuimm11:5rs2rs1000imm4:00100011sbimm11:5rs2rs1001imm4:00100011shimm11:5rs2rs1010imm4:00100011swimm12|10:5rs2rs1000imm4:1|111100011beqimm12|10:5rs2rs1001imm4:1|111100011bneimm12|10:5rs2rs1100
5、imm4:1|111100011bltimm12|10:5rs2rs1101imm4:1|111100011bgeimm12|10:5rs2rs1110imm4:1|111100011bltuimm12|10:5rs2rs1111imm4:1|111100011bgeuimm20|10:1|11|19:12rd1101111jalimm11:0rs1000rd1100111jalr整数运算指令整数运算指令整数的算术、逻辑和移位运算等,共整数的算术、逻辑和移位运算等,共2121条指令条指令算术运算算术运算加法,减法运算加法,减法运算逻辑运算逻辑运算与、或和异或与、或和异或移位运算移位运算左移、逻
6、辑右移和算术右移左移、逻辑右移和算术右移小于则置位(小于则置位(slt/slti/sltu/sltiuslt/slti/sltu/sltiu),加载高),加载高位立即数(位立即数(luilui)、)、PCPC加高位立即数(加高位立即数(auipcauipc)整数整数运算指令运算指令除除luilui和和auipcauipc外,其他运算指令都是三地址指令外,其他运算指令都是三地址指令两个源操作数(即待运算的数据)两个源操作数(即待运算的数据)第一个源操作数第一个源操作数来自于寄存器来自于寄存器rs1rs1第二个源操作数第二个源操作数rs2 rs2 R-类类型型或从指令或从指令31:2031:20中
7、直接获得中直接获得 I-类类型型一个目标操作数(运算执行后的结果)一个目标操作数(运算执行后的结果)存储于存储于rdrd中中整数运算指令整数运算指令R-R-类型,类型,RegisterRegisterI-I-类型,类型,ImmediateImmediateU-U-类型,类型,UpperUpper:lui lui和和auipcauipc指令指令31 25 24 20 19 15 14 12 11 7 6 0funct7rs2rs1funct3rdopcode31 20 19 15 14 12 11 7 6 0imm11:0rs1funct3rdopcode31 1211 7 6 0imm31:1
8、2rdopcodeR-R-类型运算指令类型运算指令操作码为操作码为0110011011001131 25 24 20 19 15 14 12 11 7 6 0funct7rs2rs1funct3rdopcodeADDADD操作码操作码01100110110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为000000和和00000000000000,加法运算加法运算寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000
9、0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x3131 2524 2019 1514 1211 76 000000000101001001000010000110011addx10 x9算术算术x8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 0000 0000 0000 10019x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000
10、 0000 0000 0000 0000 00113x30 x31SUBSUB操作码操作码01100110110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为000000和和01000000100000,减法运算减法运算寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x3131 2524
11、 2019 1514 1211 76 001000000101001001000010000110011subx10 x9算术算术x8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 0000 0000 0000 00113x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x31ANDAND操作码操作码01100110110011,R-R-类型类型函数码:
12、指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为111111和和00000000000000,按位与运算按位与运算寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x3131 2524 2019 1514 1211 76 000000000101001001111010000110011x10 x9andx8R-类型类型寄
13、存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 0000 0000 0000 00102x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x31OROR操作码操作码01100110110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为110110和和00000000000000,按位或运算按位或运算寄
14、存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x3131 2524 2019 1514 1211 76 000000000101001001110010000110011x10 x9orx8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 00
15、00 0000 0000 01117x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x31XORXOR操作码操作码01100110110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为100100和和00000000000000,按位异或运算按位异或运算寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0
16、000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x3131 2524 2019 1514 1211 76 000000000101001001100010000110011x10 x9xorx8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 0000 0000 0000 01015x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000
17、 0000 0000 0000 0000 0000 00113x30 x31SLLSLL操作码操作码01100110110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为001001和和00000000000000,逻辑左移运算(逻辑左移运算(Shift Left Shift Left LogicalLogical)寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000 0000 0000 01106x100000 0
18、000 0000 0000 0000 0000 0000 00113x30 x3131 2524 2019 1514 1211 76 000000000101001001001010000110011x10 x9sllx8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 0000 0000 0011 000048x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x
19、30 x31SRLSRL操作码操作码01100110110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为101101和和00000000000000,逻辑右移运算(逻辑右移运算(Shift Right Shift Right LogicalLogical)寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 0
20、0113x30 x3131 2524 2019 1514 1211 76 000000000101001001101010000110011srlx10 x9右移右移x8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 0000 0000 0000 00000 x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x31SRASRA操作码操作码01100110
21、110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为101101和和01000000100000,算术右移运算(算术右移运算(Shift Right Shift Right ArithmeticArithmetic)寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x91111 1111 1111 1111 1111 1111 1111 1010-6x100000 0000 0000 0000 0000 0000 0000 00011x30 x3131 2524
22、2019 1514 1211 76 001000000101001001101010000110011srax10 x9右移右移x8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x81111 1111 1111 1111 1111 1111 1111 1101-3x91111 1111 1111 1111 1111 1111 1111 1010-6x100000 0000 0000 0000 0000 0000 0000 00011x30 x31SLTSLT操作码操作码01100110110011,R-R-类型类型函数码
23、:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别为,分别为010010和和00000000000000,小于则置位运算(小于则置位运算(Set Less Set Less ThanThan)寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x3131 2524 2019 1514 1211 76 00000000010100100
24、1010010000110011x10 x9sltx8R-类型类型寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x80000 0000 0000 0000 0000 0000 0000 00000 x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x31SLTUSLTU操作码操作码01100110110011,R-R-类型类型函数码:指令函数码:指令14:1214:12和指令和指令31:2531:25,分别
25、为,分别为011011和和00000000000000,无符号小于则置位运算(无符号小于则置位运算(Set Less Than Set Less Than UnsignedUnsigned)在比较时,将在比较时,将rs1rs1和和rs2rs2中的数看作无符号数中的数看作无符号数寄存器堆寄存器堆x00000 0000 0000 0000 0000 0000 0000 00000 x1*x8x90000 0000 0000 0000 0000 0000 0000 01106x100000 0000 0000 0000 0000 0000 0000 00113x30 x3131 2524 2019
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 4.2 RV32I指令电子课件 计算机系统基础:C语言视角RISC-V版 RV32I 指令 电子 课件 计算机系统 基础 语言 视角 RISC
限制150内