有效地址
存储指令通过 rs1 加符号扩展的 12 位偏移量形成有效字节地址。SW 的偏移量编码范围同样是 -2048 到 2047。
The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture, version 20260120, §2.6 Load and Store InstructionsSW指令采用S型格式(opcode=0100011, funct3=010)。有效地址由rs1与12位有符号偏移相加得到,将rs2寄存器的低32位写入该地址。字访问的自然对齐地址为4的倍数;非自然对齐访问的完成或异常由执行环境接口(EEI)定义。SW 可用于 RV32I 和 RV64I。
从机器码字段解析开始,依次展示操作数读取、该指令专属语义计算和 ISA 可见状态更新。
本例使用固定寄存器初值和初始 PC=0x2000;取指成功,没有异步中断或额外扩展检查。异常分支只显示普通提交停止,陷入后的 PC 和处理程序状态由 EEI 决定。
本例假设普通内存可写、采用小端序。成功访问显示低 32 位字及 PC+4;非对齐异常不假定内存保持不变,部分写入或副作用未建模。
仅当有效地址不是 4 的倍数时使用此 EEI 分支;自然对齐访问不得引发地址未对齐异常。
机器码按当前指令格式切成字段,动画从 encoding/decode 开始。
该动画展示 ISA 可见的解码和状态变化,不表示任何特定 CPU 的流水线、缓存、预测或时序实现。
SW 使用 rs1 加 12 位有符号偏移形成有效地址,并把 rs2 的低 32 位字写入内存。
以下要点按 RISC-V Unprivileged ISA 手册核准,用于补充操作语义、立即数范围和边界行为。
存储指令通过 rs1 加符号扩展的 12 位偏移量形成有效字节地址。SW 的偏移量编码范围同样是 -2048 到 2047。
The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture, version 20260120, §2.6 Load and Store InstructionsSW 将 rs2 的低 32 位写入内存:RV32 中这是完整寄存器值,RV64 中仅写低半部分。
The RISC-V Instruction Set Manual, Volume I: Unprivileged Architecture, version 20260120, §2.6 Load and Store Instructions结合 «sw x5, 0(x10) # mem[x10+0][31:0] = x5[31:0]» 等实际代码理解该场景。
SW 只写 rs2 的低 32 位字,不是总是写完整 XLEN 宽寄存器。
有效地址由基址寄存器 rs1 加符号扩展的 12 位字节偏移得到。