В HTML      В PDF
микроэлектроника, микросхема, транзистор, диод, микроконтроллер, память, msp430, Atmel, Maxim, LCD, hd44780, t6963, sed1335, avr, mega128
Предприятия Компоненты Документация Применения Статьи Новости

 
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации





Главная > Обзоры по типам > Микроконтроллеры > ARM > Система команд
Пересюхтюмя


13-я Международная выставка электронных компонентов и комплектующих для электронной промышленности





Выставка Передовые Технологии Автоматизации


Поле Условия

В режиме ARM все команды выполняются в зависимости состоянию регистра CPSR и поля условия самой команды. Это поле (биты 31:28) содержит условие, при которых команда будет выполнена. Если флаги C, N, Z и V установлены (сброшены) согласно коду поля условия, то команда будет выполнена, в противном случае эта команда будет проигнорирована.

Всего существуют 16 различных условий, каждое из которых определяется двухсимвольным суффиксом, добавляемым к мнемонике команды. Например, команда переход (Branch - "B" в ассемблере) становится командой перейти, если равно - BEQ (Branch if Equal), которая означает, что переход будет выполнен, если установлен флаг Z.

Практически можно использовать только 15 различных условий, 16-е условие (1111) зарезервировано и не применяется.

При отсутствии в мнемонике команды условия выполнения или установлен суффикс AL, то эта команда будет выполнена безусловно, независимо от состояния флагов условия (регистр CPSR).

Таблица 6. Перечень кодов условий выполнения

Код Суффикс Флаги Значение
0000 EQ Z установлен Равно
0001 NE Z сброшен Не равно
0010 CS C установлен Выше или равно
0011 CC C сброшен Ниже
0100 MI N установлен Отрицательный результат
0101 PL N сброшен Положительный результат либо ноль
0110 VS V установлен Переполнение
0111 VC V сброшен Нет переполнения
1000 HI C установлен and Z сброшен Выше
1001 LS C сброшен or Z установлен Ниже или равно
1010 GE N равно V Больше или равно
1011 LT N не равно V Меньше
1100 GT Z сброшен AND (N равно V) Больше
1101 LE Z установлен OR (N не равно V) Меньше или равно
1110 AL (проигнорировано) Всегда