C.BEQZ 会写返回地址吗?
不会;它不写链接寄存器。条件成立时 PC 更新为目标地址,否则顺序执行到 pc+2。
当 x[rs1'] 等于零时跳到 PC+offset;否则到 PC+2。16 位 CB 格式。
扩展条件:RV32C / RV64C;本页按 C 扩展版本 2.0 说明。
C.BEQZ 使用 16 位 CB 格式,rs1' 的 3 位字段选择 x8-x15。若寄存器值等于零,目标为当前指令 PC 加符号扩展的字节偏移;否则顺序执行到 PC+2。偏移是 -256 到 254 的偶数,可为零;对应 beq rs1', x0, offset,不写链接寄存器。
三个学习步骤展示架构规则;不表示处理器流水线或周期。
RV32C / RV64C;C 扩展下 IALIGN=16,PC 为偶数字节地址。地址计算按 XLEN 回绕。 目标后续取指异常不在本模型中展示。
c.beqz → 条件成立;PC ← 0x00001020; 不写链接寄存器
0xC005
尚未提交架构结果。
C.BEQZ 使用 CB 格式,把受限 rs1' 与隐式 x0 比较;成立时 PC 加符号扩展偏移。
结合 «c.beqz x8, 32 # PC=0x1000: x8=0 -> PC=0x1020; x8!=0 -> PC=0x1002» 等实际代码理解该场景。
不会;它不写链接寄存器。条件成立时 PC 更新为目标地址,否则顺序执行到 pc+2。