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

Команда инвертирования (Negate)

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

NEG <Rd>, <Rm>

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

Описание

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

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

Команда NEG осуществляет операцию инвертирования значения из регистра <Rm> и записывает результат в регистр <Rd>.

Действие

(Rd) = 0 – (Rm)

Флаги, обновляющиеся в результате выполнения операции:

  1. Флаг N устанавливается в зависимости от значения 31-го бита в регистре <Rd>.

  2. Флаг Z зависит от значения результата операции: если (Rd) = 0, тогда 1 иначе 0.

  3. Флаг V будет установлен, если в результате выполнения операции произошло переполнение.

  4. Флаг C будет установлен, если в результате выполнения операции произошел перенос.

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

Команда NEG используется, когда необходимо произвести операцию инвертирования значения.

Примеры

ORR R2,R2

В регистр R2 записывается значение результата операции инвертирования значения регистра R2.

ORR R2,R5

В регистр R2 записывается значение результата операции инвертирования значения регистра R5.

NOP – ARM

Нет операции (No oPeration)

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

NOP

Описание

NOP обычно используются для того, чтобы рассчитать цели, вызывать выравнивание памяти, предотвращать опасности, занять отложенную передачу управления, или как "метка - заполнитель", которая будет заменена активными командами позже в развитии программы (или заменять удаленные команды, когда перефакторинг был бы проблематичным или отнимающим много времени). Команда может использоваться для исключения команд в ходе проверки программного обеспечения или для задания необходимого времени ожидания. Команда NOP главным образом используется в двух случаях:

- сохранение одного, двух или трех слов памяти;

- корректировка программных временных интервалов.

Примеры

Пусть требуется создать отрицательный выходной

импульс на порте P1[6] длительностью 3 цикла. Это

выполнит следующая последовательность команд:

CLR P1.6 ;P1[6]:=0

NOP

NOP

NOP

SETB P1.6 ;P1[6]:=1

ORRARM

Логическое или (or)

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

ORR{<cond>}{S}<Rd>,<Rn>,<shifter_operand> Формат команды представлен на рис. 1.

Описание

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

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

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

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

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

ORR (Логическое ИЛИ) инструкция выполняет ИЛИ значения регистра <Rn> со значением <shifter_operand>, и сохраняет результат в регистре предназначения <Rn>.

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

Команда ORRиспользуется для установки выбранных бит в регистр <Rd>.

Примеры

ORRR3,RO,R3,LSL

ORRTHUMB

Команда логического или (Or)

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

ORR <Rd>, <Rm>

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

Описание

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

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

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

Действие

(Rd) = (Rd) or (Rm)

Флаги, обновляющиеся в результате выполнения операции:

  1. Флаг N устанавливается в зависимости от значения 31 бита регистра <Rd>.

  2. Флаг Z зависит от значения результата операции: если (Rd) = 0, тогда 1 иначе 0.

  3. С и V флаги не меняются.

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

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

Примеры

ORR R2,R0

В регистр R2 записывается значение результата операции логического ИЛИ с регистрамиR2 иR0.

PLD – ARM