Can LB.AQ use offset(rs1)?
No. The official syntax is lb.aq rd, (rs1), with no offset immediate; the address comes directly from rs1.
Zalasr atomic load of 1 byte with acquire-RCsc ordering.
LB.AQ is a 1-byte ordered atomic load in the Zalasr standalone load-acquire/store-release family. It atomically reads 8 bits from the address in x[rs1], sign-extends from that width, and writes x[rd]; the syntax has no offset field. Every byte address is naturally aligned for this 1-byte access; the example assumes access is permitted and completes successfully.
Shows the Zalasr standalone load-acquire AMO encoding, no-offset address syntax, 8-bit data transfer, and aq/rl ordering annotation.
A 1-byte access is naturally aligned at every byte address. Assume successful permitted fetch/access and implemented Zalasr. This illustrates the load and ordering annotation, without a concurrent schedule. Address samples are nonnegative safe integers and also fit 32 bits on RV32; this is a demo input limit. rd=x0 still performs the load and its side effects, discarding only the result.
LB.AQ loads 8 bits from memory and sign-extends from that width to XLEN before writing rd.
This animation shows ISA-visible Zalasr atomic load/store behavior and aq/rl ordering annotations; it does not model LR/SC reservations, AMO read-modify-write old-value return, caches, buses, or pipeline timing.
LB.AQ uses rs1 directly as the address, atomically reads 1 byte, and sign-extends into rd; aq/rl bits provide ordering annotations and do not change the loaded data.
Understand this scenario with real code like «lb.aq x5, (x6)».
Understand this scenario with real code like «lb.aq x5, (x6)».
No. The official syntax is lb.aq rd, (rs1), with no offset immediate; the address comes directly from rs1.
No. These Zalasr instructions are single ordered atomic load/store operations; the animation does not show reservations or old-value return.
No. aq/rl are ordering annotations; the loaded value is still sign-extended from the source width into rd.