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

Команда обмена данными с сопроцесcором

(Storу Coprocessor)

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

STC{<cond>}{L} <coproc>, <CRd>, <addressig_mode>

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

Описание

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

{L} - определяет необходимость передачи более одного слова (N=1)

<coproc> - определяет имя сопроцессора (см. таблицу 1)

<CRd> - выражение, которое определяет номера регистра сопроцессора для поля CRd

<addressig_mode> - адрес

Команда используется для записи регистров сопроцессоров непосредственно в память. Ядро ARM7TDMI передает сопроцессору адрес ячейки памяти, а сопроцессор в свою очередь возвращает ядру данные и их количествов словах. Во время выполнения команды содержимое поля смещения сдвигается влево на 2 бита (умножить на 4) и потом либо складывается (U=1) с содержимым базового регистра (Rn), либо вычитается из него (U=0); эти действия могут быть выполнены либо до непосредственно самой передачи (P=1), либо после нее (P=0). Модифицированное значение базового регистра либо может быть перезаписано обратно в него же (W=1), либо сохранить свое прежнее значения до выполнения команды.Если регистра Rn – это регистр R15, то содержимым Rn будет адрес самой команды плюс 8 байт. При этом бит перезаписи в команде должен быть сброшен (W=0).

Мнемоника ассемблера

Действие

STC

адрес := CRn

Команда обмена данными с сопроцессором

Примеры

STCEQL p2,c3,[R5,#24]! ; Условно записать содержимое c3 ; сопроцессора #2

; в ячейку памяти по адресу R5+24.

; После чего записать в R5 значение ; R5+24 и применить длинную ; передачу (возможно, блочную ; запись данных).

STC2 – ARM

Команда обмена данными с сопроцесcором

(Storу Coprocessor)

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

STC2{<cond>}{L} <coproc>, <CRd>, <addressig_mode>

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

{L} - определяет необходимость передачи более одного слова (N=1)

<coproc> - определяет имя сопроцессора (см. таблицу 1)

<CRd> - выражение, которое определяет номера регистра сопроцессора для поля CRd

<addressig_mode> - адрес

Описание

Команда используется для записи регистров сопроцессоров непосредственно в память. Ядро ARM7TDMI передает сопроцессору адрес ячейки памяти, а сопроцессор в свою очередь возвращает ядру данные и их количествов словах.STC2 устанавливает в поле условия 0b1111. Это обеспечивает дополнительное пространство кода операции для разработчиков сопроцессоров. Во время выполнения команды содержимое поля смещения сдвигается влево на 2 бита (умножить на 4) и потом либо складывается (U=1) с содержимым базового регистра (Rn), либо вычитается из него (U=0); эти действия могут быть выполнены либо до непосредственно самой передачи (P=1), либо после нее (P=0). Модифицированное значение базового регистра либо может быть перезаписано обратно в него же (W=1), либо сохранить свое прежнее значения до выполнения команды.Если регистра Rn – это регистр R15, то содержимым Rn будет адрес самой команды плюс 8 байт. При этом бит перезаписи в команде должен быть сброшен (W=0).

Мнемоника ассемблера

Действие

STC2

адрес := CRn