DIVU 的除零会触发 trap 吗?
不会。规范定义商为全 1 位模式,指令本身不产生整数除零异常。
无符号除法,rs1除以rs2,商写入rd
DIVU执行无符号整数除法,rs1为被除数,rs2为除数,商写入rd。除数为零时商为全1(最大无符号数,即2^XLEN-1)。无符号除法不会发生溢出。
从机器码字段解析开始,依次展示操作数读取、该指令专属语义计算和 ISA 可见状态更新。
该选择器只选择规范定义的除法结果分支;它不是异常、陷入或性能模型。
机器码按当前指令格式切成字段,动画从 encoding/decode 开始。
该动画展示 ISA 可见的解码和状态变化,不表示任何特定 CPU 的流水线、缓存、预测或时序实现。
DIVU 用 M 扩展 R-type 编码将 rs1 与 rs2 按 XLEN 位无符号数相除。除数为零时商为全 1;这不是异常路径,也没有无符号溢出特例。
结合 «divu a0, a1, a2 # a0 = unsigned(a1 / a2)» 等实际代码理解该场景。
结合 «divu a0, a1, a2 # a0 = unsigned(a1 / a2)» 等实际代码理解该场景。
不会。规范定义商为全 1 位模式,指令本身不产生整数除零异常。