ori 指令是拿 a0 寄存器和立即数 0 进行或操作,由于立即数是 0,所以总是返回 a0 原本的数据;or 指令是拿 a0 和 a1 寄存器进行或操作,再把结果写入到 a0 寄存器。 VSCode 里,按下“F5”调试一下,如下所示: 上图中是执行完 ori a0,a0,0 指令之后,执行 jr ra 指令之前的状态。如果 a0 寄存器中的值确...
算术左移与逻辑左移都会丢弃最高位,作用类似,因此,RV指令集中没有设置算术左移指令。 位操作指令 位操作指令的种类有:and、or、xor、not: and/andi:寄存器与寄存器/立即数按位与 or/ori:寄存器与寄存器/立即数按位或 xor/xori:寄存器与寄存器/立即数按位异或 not:按位取反 具体格式为: {and | or | xor...
J-typed 的指令操作由 7 位 opcode 决定,与 U-typed 一样只有一个目的寄存器 rd和一个 20 位的立即数,但是 20 位的立即数组成不同,即指令的 31 位是 imm[20]、 12 到 19 位是 imm[19:12]、20 位是 imm[11]、21 到 30 位是 imm[10:1],J-typed 一般表示无条件跳转指令,如 jal 指令。 从...
逻辑指令 and rd,rs1,rs2:将rs1和rs2寄存器中的值进行按位与操作,结果存入rd寄存器。 ori rd,rs1,imm:将rs1寄存器中的值与有符号立即数imm进行按位或操作,结果存入rd寄存器。 xori rd,rs1,imm:将rs1寄存器中的值与有符号立即数imm进行按位异或操作,结果存入rd寄存器。 内存访问指令 lw rd,offset(rs...
2. OR指令,用于执行位或操作,将两个操作数的对应位进行或运算,并将结果存储在目标寄存器中。 3. XOR指令,用于执行位异或操作,将两个操作数的对应位进行异或运算,并将结果存储在目标寄存器中。 4. ANDI指令,与AND指令类似,但是其中一个操作数是一个立即数,而不是一个寄存器中的值。 5. ORI指令,与OR指令类似...
ori rd,rs1,imm :将寄存器rs1的值与立即数imm的值按位或并写入寄存器rd。 xor rd,rs1,rs2 :将寄存器rs1与rs2的值按位异或并写入寄存器rd。 xori rd,rs1,imm :将寄存器rs1的值与立即数imm的值按位异或并写入寄存器rd。 移位运算 sll rd,rs1,rs2 ...
图2 整数寄存器-立即数指令机器码格式 [2] I-type总共有15条指令,这里先介绍前6条指令,包括以下: ADDI、SLTI、SLTIU、ANDI、ORI、XORI 1.1. ADDI :ADDI指令格式为ADDI rd,rs1,immediate。x[rd] = x[rs1] + sext(imm) 1.2. SLT:SLTI指令格式为SLTI rd,rs1,immediate。x[rd] = x[rs1] < sext(...
一、ORI指令 二、状态机与流水线 三、五级流水线模型 四、流水线验证 五、处理数据相关问题 六、MIPS编译环境建立——GNU工具链 一、ORI指令 31~26为ORI指令的指令码 25~21为源寄存器(取出源操作数)——MIPS有32个寄存器,所以5位即可全部表示 20~16为目的寄存器(保存运算结果) 15~0为立即数 ORI指令:...
首先根据指令命名方式判断左侧的含义,从上到下依次为,立即数与源寄存器相加addi、寄存器小于立即数slti、寄存器小于立即数无符号版本sltiu、立即数与源寄存器异或xori、立即数与源寄存器按位或ori、立即数与源寄存器按位与andi、寄存器根据立即数逻辑右移slli、寄存器根据立即数逻辑右移srli、寄存器根据立即数算术右移srai...