Скачиваний:
76
Добавлен:
01.05.2014
Размер:
1 Мб
Скачать
☆

Установить флаги регистра 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.

EOR – ARM

Логическое побитовое «исключающее или» (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

EOR – THUMB

Логическое побитовое «исключающее или» (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.

LDC – ARM

Загрузить в сопроцессор из памяти (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