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 полуслово.