Unaligned Data Access
- ARM favours 32-bit aligned addresses.
- Unaligned values have to be pulled from memory a byte at a time and reformed.
A load from a guaranteed alignment:
A load from an unspecified alignment:
LDRB Rd,[Ra,#0] LDRB Rt,[Ra,#1] ORR Rd,Rd,Rt,LSL #8 LDRB Rt,[Ra,#2] ORR Rd,Rd,Rt,LSL #16 LDRB Rt,[Ra,#3] ORR Rd,Rd,Rt,LSL #24
Each byte must be individually fetched and merged into the result.