LD.AQRL 可以写 offset(rs1) 吗?
不可以。语法为 ld.aqrl rd, (rs1);rs1 直接提供地址,没有 offset 字段。
Zalasr 原子加载 8 字节,带 acquire+release-RCsc 排序标注(RV64-only)。
rd:接收完整 64 位加载值,仅 RV64;rd=x0 只丢弃写回,加载的异常与副作用仍保留。
rs1:直接提供执行前的地址,没有 offset 立即数;rs1=x0 时地址为 0,rd=rs1 时仍用写回前的地址。
rs2 字段固定为 00000,不是汇编操作数;aq=1,rl 由 .aq 或 .aqrl 后缀确定,二者只指定排序标注。
LD.AQRL 是 Zalasr 1.0 的 RV64 专用原子加载。访问成功时,从 x[rs1] 指向的地址原子读取 8 字节,完整 64 位写入 x[rd];源宽度等于 XLEN,无需额外扩展。语法没有 offset 字段。地址需按 8 字节自然对齐;若全部访问字节位于同一 misaligned atomicity granule PMA 内,可放宽对齐要求。
展示 Zalasr 独立 load-acquire 的 AMO 编码、无 offset 地址语法、64-bit 数据传输和 aq/rl 排序标注。
未自然按 8 字节对齐时,勾选框只断言所有访问字节位于同一 misaligned atomicity granule PMA;未勾选时模型展示 address-misaligned 或 access-fault 的允许异常分支。动画不判断具体平台的 PMA。
假定 Zalasr 已实现,且除所示对齐异常外,取指和数据访问均获准并成功。地址样例限制为非负安全整数(最大 2^53−1),RV32 还需适合 32 位;这是演示输入范围。rd=x0 仍执行加载及其副作用,只丢弃结果;rd=rs1 时使用写回前的地址。
LD.AQRL 从内存取完整 64 位写入 rd;宽度等于 XLEN,无需增加符号位。
该动画展示 Zalasr 的 ISA 可见原子 load/store 与 aq/rl 排序标注;不模拟 LR/SC 预留、AMO read-modify-write 旧值返回、cache、总线或流水线时序。
LD.AQRL 使用 x[rs1] 作为地址,原子读取 8 字节并将完整 64 位写入 rd。仅 RV64 定义;aq/rl 指定排序标注。
结合 «ld.aqrl x5, (x6)» 等实际代码理解该场景。
结合 «ld.aqrl x5, (x6)» 等实际代码理解该场景。
不可以。语法为 ld.aqrl rd, (rs1);rs1 直接提供地址,没有 offset 字段。
不是。它是原子加载,不建立预留,也不执行读改写。
不会。aq/rl 是排序标注;LD 的完整 64 位加载值保持不变,rd=x0 时只丢弃写回。