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

Установить флаги регистра cpsr для Rd – Rs.

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

CMP <Rd>, <Rs>

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

Описание

<Rd> – регистр результата (см. таблицу 1).

<Rn> – регистр первого операнда (см. таблицу 1).

Установить флаги регистра CPSR для Rd – Rs

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

Код

Действие

CMP Rd, Rs

1010

Установить флаги регистра CPSR для Rd - Rs


Примечание: оказывает влияние только на флаги регистра CPSR, и при этом регистр назначения Rd изменению не подвергается.

           Примеры

CMP R2, R6 ; Установить флаги условий в зависимости от результата R2 -                          R6.

EORARM

Логическое побитовое «исключающее или» (Exclusive or)

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

EOR {<cond>} {S} <Rd>, <Rn>, <shifter_operand>

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

Описание

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

S– устанавливаетS-бит ­– бит условия (см. таблицу 1).

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

<Rn> – регистр первого операнда (см. таблицу 1).

<shifter_operand> – второй операнд (см. таблицу 3).

Команда EOR выполняет операцию исключающего ИЛИ над операндом из регистра <Rn> со значением из < shifter_operand > и сохраняет результат в регистр <Rd>.

В результате выполнения возможно изменение флагов N и Z. Флаг С может быть изменен при вычислении <shifter_operand>.

Действие

Если условие (<cond>) выполнено, то (Rd) = (Rn)EOR(shifter_operand). Далее, еслиS= 1 иR15 задействован какRd, тогдаCPSR=SPSR, иначе (S= 1,R15 не задействован какRd) тогда формируются флагиN,Z,C,V.

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

Команда EOR может использоваться для инверсии нужных бит регистра.

Примеры

EORS R0, R0, R3, ROR R6

EORTHUMB

Логическое побитовое «исключающее или» (Exclusive or)

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

EOR <Rd>, <Rm>

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

Описание

<Rd> – регистр результата (см. таблицу 1).

<Rm> – регистр сопроцессора, содержащий второй операнд (см. таблицу 1).

Команда EOR (Exclusive OR) выполняет побитовое “Ислючающее ИЛИ” значений, хранящихся в двух регистрах. Флаги состояния обновляются в зависимости от результата.

Действие

(Rd)=(Rd) exclusive or (Rm). В результате выполнения возможно изменение флагов N и Z.

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

Команда EOR используется, когда необходимо произвести операцию “Ислючающее ИЛИ”.

Примеры

EORR4,R5

В регистр R4 записывается значение результата операции “Ислючающее ИЛИ” значений регистровR4 иR5.

LDCARM

Загрузить в сопроцессор из памяти (Load Coprocessor)

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

LDC{<cond>}{L} <coproc>, <CRd>, <addressing_mode>

Описание

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

<L> - устанавливает бит N в 1 и определяет длинную нагрузку.

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

<CRd> - определяет, что предназначение сопроцессора совмещает инструкции.

<addressing_mode> - определяет P, U, Rn, Вт и 8_bit_word_offset биты инструкции.

Действие

Если условие ConditionPassed(cond) выполнено, то address = начальному адресу, load Memory[address,4] для сопроцессора[cp_num], в то время как (NotFinished(Coprocessor[cp_num])), address = address + 4, load Memory[address,4] для сопроцессора[cp_num], assert address == конечному адресу.

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

Команда LDC используется для чтения регистров сопроцессоров непосредственно из/в память. Ядро ARM7TDMI передает сопроцессору адрес ячейки памяти, а сопроцессор в свою очередь возвращает ядру данные и их количество в словах.

Примеры

LDC p1,c2,table ; Загрузить регистр с2 сопроцессора #1 из ячейки

; памяти по адресу "table",

; используя адрес, относительно содержимого PC.

LDC2 – ARM