Скачиваний:
66
Добавлен:
01.05.2014
Размер:
1.22 Mб
Скачать

Сохранение в памяти 8-ми разрядных данных из рон (Store Register)

Синтаксис в ассемблере

STRB <Rd>, [<Rn>, #<immed_5>]

Формат команды представлен на рис. 2.

Описание

<Rd> – регистр-источник(см. таблицу 1).

<Rn> – регистр указывающий область для пересылки (см. таблицу 1).

<immed_5> – 5-и разрядное смещение (см. таблицу 1)

Данная разновидность инструкции STRB (Store Register Byte) позволяет сохранить в памяти 8-ми разрядные данные из регистра общего назначения. Данный режим адресации используется для доступа к полям данных. Если значение смещения – 0, то адресом хранения будет значение базового регистра <Rn>.

Примеры

STRB R1,[R2,#20]

// сохранить байт, хранящийся в регистре R1 по адресу памяти R2 + 20

STRD – ARM

Запоминание 2х слов (Stores two words).

Синтаксис в ассемблере

STRD <cond><Rd>, <Rn>

Формат команды представлен на рис. 1.

Описание

<cond> – поле условия (см. таблицу 1).

<Rd> – регистр для получение данных для записи (см. таблицу 1).

<Rn> – регистр указывающий область для пересылки (см. таблицу 1).

Сохраняет пару регистров Rd и Rd+1 значением с двойным словом (на 64 бита). Регистром Rd могут быть только регистры Р0, Р2, R4, R6, R8, R10, R12.

Возможно использования следующих смещений : преиндексного, прединдексного с обновлением, преиндексного с PC родственным смещением, постидексное с обновлением.

Действие

Запоминание 2х регистров двойным словом.

Использование

Применительно только для ARM9E. Аналог команды STR. Сохраняет пару регистров Rd и Rd+1 значением с двойным словом (на 64 бита). Регистром Rd могут быть только регистры Р0, Р2, R4, R6, R8, R10, R12.

Примеры

STRDR4, [R9, #24]

Записать значение регистра R4 иR5 по адресу (R9)+24.

STRDEQR4, [R9, #24]

Если Z=1, то тогда записать в память по адресу (R9+24) двойное слово состоящее из регистровR4 иR5.

STRHARM

Команда передачи полуслова между Lo регистром и памятью.

Синтаксис в ассемблере

STRH{cond} <Rd>, [<Rb>, <#Imm>]

Формат команды представлен на рис. 1.

Описание

<cond> – поле условия (см. таблицу 1).

<Rd> – регистр для получение данных для записи (см. таблицу 1).

<Rb> – регистр указывающий область для пересылки (см. таблицу 1).

<#Imm> – дополнительное смещение.

Эта команда выполняют передачу полуслова между Lo регистром и памятью с прединдексной адресацией, задаваемой в виде 6-битной константы.

Константа #Imm - это полный 6-битный адрес, у которого бит [0] должен быть равен нулю (выравнивание по границе полуслова). При этом ассемблер при формировании команды фактически выполнить деление на 2 (#Imm >> 1), чтобы получить верное значение поля 5-битного смещения.

Действие

Вычислить адрес ячейки памяти посредством сложения содержимого базового регистра Rb и константы #Imm. Полуслово из Rd (биты 0…15) поместить в память по этому адресу.

Использование

Используется для пересылки полуслова.

Примеры

STRH R6, [R1, #56]

Записать в память по адресу (R1)+56 младшее полуслово (R6)

STRHEQR6, [R1, #56]

Если Z=1, то тогда записать в память по адресу (R1)+56 младшее полуслово (R6).

STRHTHUMB