C.ANDI

RISC-V C.ANDI 指令详解

指令手册C-type

rd'与有符号6位立即数按位与。CB格式。

指令语法

c.andi rd', imm
操作数说明
压缩指令仅 16 位,寄存器选择通常限制在 x8–x15。
立即数字段较窄,查看特定压缩指令的完整编码。
C压缩指令

指令行为说明

c.andi 将 rd' 与符号扩展的 6 位立即数按位与,并写回 rd'。

快速理解与检索要点

c.andi 将 rd' 与符号扩展的 6 位立即数按位与,并写回 rd'。

压缩指令通常对应一条 32 位基础指令语义,但有寄存器子集、立即数编码或 XLEN 限制。
立即数是符号扩展,不是零扩展。
rd' 使用 x8..x15 压缩寄存器子集。

常见使用场景

位操作与掩码

结合 «c.andi x8, 0xF # x8 &= 0xF» 等实际代码理解该场景。

使用前检查清单

语法检查
  • 确认当前指令格式为 C-type。
  • 确认操作数排列顺序与示例一致。
语义检查
  • 确认目标寄存器用途和调用约定兼容。
  • 确认该指令不是伪指令展开后的底层形式。

容易混淆 / 常见误区

立即数是符号扩展,不是零扩展。
rd' 使用 x8..x15 压缩寄存器子集。

常见问题

c.andi 为什么有寄存器限制?

多数 C 扩展格式用较短字段编码寄存器,因此部分形式只能访问 x8..x15 或固定寄存器。

c.andi 是否只是汇编伪指令?

不是。它是 C 扩展定义的 16 位编码指令。