3. Збереження регістра до пам’яті

3.1. Конвенції документа

Позначення: Rt, Rn позначають регістри ARM R0-R7, якщо не вказано інше. immN представляє безпосереднє значення шириною N бітів, отже imm5 обмежений діапазоном 0-31. [Rn + imm5] — це вміст адреси пам’яті, отриманої додаванням Rn та зсуву imm5. Зсуви вимірюються в байтах. Ці інструкції не впливають на прапорці умов.

3.2. Збереження регістра

  • str(Rt, [Rn, imm7]) [Rn + imm7] = Rt Зберегти 32-бітове слово

  • strb(Rt, [Rn, imm5]) [Rn + imm5] = Rt Зберегти байт (b0-b7)

  • strh(Rt, [Rn, imm6]) [Rn + imm6] = Rt Зберегти 16-бітове напівслово (b0-b15)

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