-
bgtz:
-用法:bgtz rs,offset;作用:if rs > 0 then branch -
blez:
-用法:blez rs,offset;作用:if rs <= 0 then branch -
bne:
-用法:bne rs,rt,offset;作用:if rs != rt then branch -
beq:
-用法:beq rs,rt,offset;作用:if rs = rt then branch,
将地址为rs的通用寄存器的值与地址为rt的通用寄存器的值进行比较,如果相等,则发生转移
bnez -
bnez rs1, offset ;
-当寄存器 rs1 的值是非 0 值,则指令产生控制转移 -
beqz rs1, offset ;
-当寄存器 rs1 的值是 0,则指令产生控制转移 -
j:
-用法:j offset ;作用:pc += sext(offset)
无条件控制转移。偏移量被符号扩展后,与pc相加形成跳转目标地址 -
jal:
-用法:jal rd, offset;作用:x[rd] = pc+4; pc += sext(offset)
把下一条指令的地址 (pc+4)存入x[rd],然后把 pc 设置为当前值加上符号位扩展的offset。rd 默认为 x1;
sext是sign-extend(符号扩展)的缩写,表示将该立即数扩展到32位; -
li:
-用法:li rd, immediate; 作用:x[rd] = immediate 将常量加载到 x[rd]中。 -
sw rs2, offset(rs1)
-
csrc 0x%0x, 0x4;
-把 0x%0x 中指定的 bit位 (0x4)置 0 -
csrs 0x%0x, 0x4 ;
-把 0x%0x 中指定的 bit位 (0x4)置 1 -
addi rd, rs1, immediate ;
– x[rd] = x[rs1] + sext(immediate) 把符号位扩展的立即数加到寄存器 x[rs1]上,结果写入 x[rd]。忽略算术溢出。 -
andi rd, rs1, immediate;
x[rd] = x[rs1] & sext(immediate) 把符号位扩展的立即数和寄存器 x[rs1]上的值进行位与,结果写入 x[rd]。 -
EBREAK;
-指令被调试器所使用,用来将控制权传送回给调试环境。
risc_v 汇编指令(1)
最新推荐文章于 2023-11-28 20:28:34 发布