- •1 Общие сведения
- •1.1 Типы данных
- •1.2 Регистры общего назначения
- •1.3 Регистр состояния программы
- •1.4 Набор инструкций ARM
- •2 Флаги условий
- •3 Предикаты выполнения команды
- •4 Команды обработки данных
- •4.1 Условные обозначения
- •4.2 Форматы записи универсального операнда
- •4.3 Форматы записи команд обработки данных
- •4.4 Арифметические операции
- •4.5 Логические операции
- •4.6 Операции простой пересылки
- •4.7 Операции сравнения и проверки
- •4.8 Сдвиговые операции при формировании второго операнда
- •4.8.1 Арифметический сдвиг вправо
- •4.8.2 Логические сдвиги
- •4.8.3 Циклический сдвиг вправо
- •4.8.4 Циклический сдвиг вправо на одну позицию с переносом
- •4.9 Примеры
- •5 Команды передачи управления
- •5.1 Условные обозначения
- •5.2 Форматы записи команд передачи управления
- •5.3 Переход на метку
- •5.4 Переход по адресу в регистре
- •5.5 Вызов подпрограммы
- •5.6 Вызов подпрограммы по адресу в регистре
- •5.7 Вызов подпрограммы со сменой набора инструкций
- •6 Команды доступа к памяти (пересылки данных)
- •6.1 Условные обозначения
- •6.2 Форматы записи выражения, формирующего адрес, и виды адресации
- •6.3 Режимы пересылки
- •6.4 Особенности использования различных команд пересылки
- •6.5 Примеры использования команд пересылки
- •7 Команды умножения
- •7.1 Условные обозначения
- •7.2 Простое умножение
- •7.3 «Длинное» умножение
- •8 Псевдоинструкции
- •8.1 Псевдоинструкция ldr
Унарная логическая операция побитового "НЕ" реализуется за счёт использования команды пересылки с инверсией mvn (см. п. 4.6).
4.6Операции простой пересылки
Формат операций простой пересылки: op{cond}{s} Rd, Operand2
Мнемоника |
Расшифровка |
|
|
|
|
|
|
|
|
|
|
mov |
move |
Переслать |
Переслать |
значение |
второго |
|
|
|
операнда в операнд назначения. |
||
mvn |
move not |
Переслать с инверсией |
Переслать |
инвертированное |
|
|
|
|
значение |
второго операнда в |
|
|
|
|
операнд назначения. |
|
При использовании суффикса S происходит обновление флагов Z и N, флаг C обновляется в зависимости от результата формирования второго операнда (подробнее см. п. 4.8).
4.7Операции сравнения и проверки
Формат записи команд сравнения и проверки: op{cond} Rn, Operand2
У команд сравнения и проверки отсутствует операнд назначения. Это означает, что при их выполнении результат вычисления никуда не записывается. Обновляются лишь флаги условий N, Z, C, V. Использование суффикса S не предусмотрено, поскольку данные команды всегда обновляют флаги условий.
Мнемоника |
Расшифровка |
Назначение |
|
|
|
|
|
cmp |
compare |
Сравнение |
Обновить флаги условий в соответствии с |
|
|
|
результатом вычитания из значения |
|
|
|
первого операнда значения второго |
|
|
|
операнда. Аналог инструкции subs. |
cmn |
compare negative |
Сравнение с |
Обновить флаги условий по результату |
|
|
отрицанием |
сложения первого операнда со вторым. |
|
|
|
Аналог инструкции adds. |
tst |
test |
Проверка |
Обновить флаги условий по результату |
|
|
битов по |
выполнения побитового логического "И" |
|
|
маске |
между первым и вторым операндом. |
|
|
|
Аналог инструкции ands. |
13