bset 会访问内存吗?
不会。它只读取整数寄存器操作数并写回 rd。
BSET 使用 opcode 0110011(0x33)、funct3 001、funct7 0010100。rs1 和 rs2 字段选择两个源寄存器,rd 字段选择目标寄存器。
bset 是 Zbs 单比特置位指令,位索引来自rs2 的低 log2(XLEN) 位。
bset 是 Zbs 单比特置位指令,位索引来自rs2 的低 log2(XLEN) 位。
结合 «bset x10, x11, x12 ; x10 = x11 | (1 << (x12 & (XLEN-1)))» 等实际代码理解该场景。
结合 «bset x10, x11, x12 ; x10 = x11 | (1 << (x12 & (XLEN-1)))» 等实际代码理解该场景。
不会。它只读取整数寄存器操作数并写回 rd。
使用 rs2 的低 log2(XLEN) 位,因此超出范围的高位不会扩大索引范围。