2. Load registers from memory¶
2.1. File Specification¶
Symbol: Except for special notes, Rt, Rn means ARM registers R0-R7. immN means instant value with width N, so the range of imm5 is limited to 0-31. [Rn + immN] is passed
Add the content of the memory address obtained by Rn and the error immN . Error unit is byte. These instructions affect the condition flags.
2.2. Register loading¶
- ldr(Rt, [Rn, imm7])
Rt = [Rn + imm7]Load a 32-bit word - ldrb(Rt, [Rn, imm5])
Rt = [Rn + imm5]Load a byte - ldrh(Rt, [Rn, imm6])
Rt = [Rn + imm6]Load a 16-bit halfword
When a byte or a halfword is loaded, it changes from zero padding to 32 bits.
Specify the immediate error unit as bytes. Therefore, in the case of ldr , the 7-bit value makes it possible to access the 32-bit word alignment value with the maximum offset of 31 words.
In the case of ldrh , the 6-bit value makes it possible to access the 16-bit halfword alignment value with the maximum offset value of 31 halfwords.