RISC |
您所在的位置:网站首页 › add是什么指令类型的文件 › RISC |
1. R-Type整数寄存器-寄存器指令 上文RISC-V指令集讲解(3)I-Type 移位指令和U-type指令介绍完了整数寄存器-立即数指令,本文开始进行整数寄存器-寄存器指令的讲解。 RV32I定义了几种算术R-type运算。 所有操作都将rs1和rs2寄存器作为源操作数读取,并将结果写入寄存器rd,注意R-type指令没有立即数,只有寄存器rs1,rs2和rd。 funct7和funct3字段选择操作类型,如图1所示。 R-type一共有10条指令,opcode名称为OP,值为011_0011(所有的R-type指令的opcode都相同)。 ![]() 图1 整数寄存器-寄存器指令机器编码格式 [1] 1.1. ADD ADD指令与RISC-V指令集讲解(2)I-Type整数寄存器-立即数指令中提到的ADDI指令的操作原理类似,唯一区别是原本是12位立即数的位置,拆分为了7位的funct7和5位的rs2。 ADD指令格式为ADD rd,rs1,rs2。x[rd] = x[rs1] + x[rs2] 如图2所示,ADD指令的funct7为000_0000,funct3为000。该指令是将rs1 + rs2的结果写入rd中。注意:不是由机器码位置的bit 15-19和bit 20-24相加,而是索引号对应的寄存器的值相加。 与ADDI类似,溢出的部分忽略(溢出处理可以由软件实现,这里介绍如何处理),只将低XLEN位写入rd。 加法溢出的举例为,两个8位二进制有符号数相加,0100_0000(64) + 0111_0000(112) = 1011_0000(-80),结果明显是错误的。 指令示例: ADD x14,x12,x13 将x12和x13寄存器中的数相加,并将结果放入x14寄存器中。 OP-IMM为011_0011 funct3为000 funct7为7’b000_0000 rs2为5’b0_1101 rs1为 5’b0_1100 rd为 5’b0_1110 所以ADD x14,x12,x13 对应的机器码为0000000_01101_01100_000_01110_0110011,对应的16进制为32’h00d6_0733 ![]() 图2 ADD机器编码格式 [2] ![]() 1.2. SLT 同样,SLT与SLTI类似,SLT指令格式为SLT rd,rs1,rs2。x[rd] = x[rs1] |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |