2. 從記憶體載入暫存器¶
2.1. 文件慣例¶
標記法:除非另有說明,否則 Rt, Rn 表示 ARM 暫存器 R0-R7。immN 表示寬度為 N 位元的立即值,因此 imm5 被限制在 0-31 的範圍內。[Rn + immN] 是將 Rn 與偏移量 immN 相加所得記憶體位址的內容。偏移量以位元組為單位。這些指令會影響條件旗標。
2.2. 暫存器載入¶
ldr(Rt, [Rn, imm7])
Rt = [Rn + imm7]載入一個 32 位元字組(word)ldrb(Rt, [Rn, imm5])
Rt = [Rn + imm5]載入一個位元組ldrh(Rt, [Rn, imm6])
Rt = [Rn + imm6]載入一個 16 位元半字組(half word)
在載入位元組或半字組時,會將其零延伸(zero-extend)至 32 位元。
所指定的立即偏移量以位元組為單位。因此,就 ldr 而言,7 位元的值可讓 32 位元字組對齊的值以最大 31 個字組的偏移量被存取。就 ldrh 而言,6 位元的值可讓 16 位元半字組對齊的值以最大 31 個半字組的偏移量被存取。