地址寄存器是浮点寄存器吗?
不是。基址 rs1 是整数寄存器,数据源/目的才是浮点寄存器。
FLD 使用 opcode 0000111(0x07)、funct3 011。rs1 字段选择整数基址寄存器,立即数字段提供字节偏移,rd 字段选择目标浮点寄存器。
FLD 使用基地址+偏移量寻址(I 型格式),从内存加载 64 位双精度浮点值到浮点寄存器 f[rd]。偏移量为 12 位有符号立即数,基地址在 x[rs1] 中。加载的值可能是 NaN-boxed 单精度值。仅当有效地址自然对齐且 XLEN≥64 时保证原子性。位不修改传输,非规范 NaN 载荷保留。
FLD 是浮点加载/存储指令,使用整数寄存器 rs1 加 12 位有符号偏移形成有效地址,并在内存与浮点寄存器之间传输位模式。
结合 «fld f0, 0(x10)» 等实际代码理解该场景。
不是。基址 rs1 是整数寄存器,数据源/目的才是浮点寄存器。
偏移是 12 位有符号立即数,编码范围为 -2048 到 2047 字节。