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-бітове слово

  • ldrb(Rt, [Rn, imm5]) Rt = [Rn + imm5] Завантажити байт

  • ldrh(Rt, [Rn, imm6]) Rt = [Rn + imm6] Завантажити 16-бітове напівслово

Якщо завантажується байт або напівслово, воно розширюється нулями до 32 біт.

Вказані безпосередні зсуви вимірюються в байтах. Тому у випадку ldr 7-бітове значення дозволяє отримати доступ до 32-бітових слів з вирівнюванням по слову з максимальним зсувом у 31 слово. У випадку ldrh 6-бітове значення дозволяє отримати доступ до 16-бітових напівслів з вирівнюванням по напівслову з максимальним зсувом у 31 напівслово.