2. Nạp thanh ghi từ bộ nhớ

2.1. Quy ước tài liệu

Ký hiệu: Rt, Rn biểu thị các thanh ghi ARM R0-R7 trừ khi có ghi chú khác. immN biểu thị một giá trị tức thì có độ rộng N bit, do đó imm5 bị giới hạn trong phạm vi 0-31. [Rn + immN] là nội dung của địa chỉ bộ nhớ thu được bằng cách cộng Rn và độ lệch immN. Các độ lệch được tính bằng byte. Các lệnh này ảnh hưởng đến các cờ điều kiện.

2.2. Nạp thanh ghi

  • ldr(Rt, [Rn, imm7]) Rt = [Rn + imm7] Nạp một từ 32 bit

  • ldrb(Rt, [Rn, imm5]) Rt = [Rn + imm5] Nạp một byte

  • ldrh(Rt, [Rn, imm6]) Rt = [Rn + imm6] Nạp một nửa từ 16 bit

Khi một byte hoặc nửa từ được nạp, nó được mở rộng bằng không lên 32 bit.

Các độ lệch tức thì được chỉ định tính bằng byte. Do đó trong trường hợp ldr, giá trị 7 bit cho phép truy cập các giá trị từ 32 bit căn chỉnh với độ lệch tối đa là 31 từ. Trong trường hợp ldrh, giá trị 6 bit cho phép truy cập các giá trị nửa từ 16 bit căn chỉnh với độ lệch tối đa là 31 nửa từ.