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

 
Пересюхтюмя


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





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





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


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





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


Формат 16: Переход по условию

Формат 16
Рис. 54. Формат 16

Действие

Команды этой группы выполняют условный переход в зависимости от состояния флагов регистра CPSR. Синтаксис этих команд в ассемблере приведен в таблице 27.

Табл. 27. Команды условного перехода

L THUMB ассемблер ARM эквивалент Действия
0000 BEQ метка BEQ метка Переход, если установлен Z (равно)
0001 BNE метка BNE метка Переход, если сброшен Z (не равно)
0010 BCS метка BCS метка Переход, если установлен C (выше или равно)
0011 BCC метка BCC метка Переход, если сброшен C (ниже)
0100 BMI метка BMI метка Переход, если установлен N (минус)
0101 BPL метка BPL метка Переход, если сброшен N (плюс или равно)
0110 BVS метка BVS метка Переход, если установлен V (переполнение)
0111 BVC метка BVC метка Переход, если сброшен V (нет переполнения)
1000 BHI метка BHI метка Переход, если установлен C и сброшен Z (выше)
1001 BLS метка BLS метка Переход, если сброшен C или установлен Z (ниже или равно)
1010 BGE метка BGE метка Переход, если установлен N и установлен V или сброшен N и сброшен V (больше или равно)
1011 BLT метка BLT метка Переход, если установлен N и сброшен V или сброшен N и установлен V (меньше)
1100 BGT метка BGT метка Переход, если сброшен Z и либо установлен N и сброшен V, либо сброшен N и установлен V (больше)
1101 BLE метка BLE метка Переход, если установлен Z, или установлен N и сброшен V, или сброшен N и установлен V (меньше или равно)

Примечания: Смещение, заданное в командах этого формата, является 9-битным адресом с дополнением до двух (со знаком), поэтому должен быть выровнен по границе одного полуслова (т.е. бит 0 должен быть равен нулю). При этом ассемблер при формировании команды фактически выполнить деление на 2 (#Imm >> 1), чтобы получить верное значение поля 8-битного смещения со знаком.

Команда с кодом условия Cond = 1110 - неопределенная команда, поэтому не должна использоваться. Команда с кодом условия Cond = 1111 фактически является командой программного прерывания SWI (см. формат 17).

Число машинных тактов при выполнении команд

Все команды этого формата эквивалентны командам в режиме ARM согласно таблице 27. Число машинных тактов выполнения этой команды в режиме THUMB идентично с числом тактов выполнения ее в режиме ARM. Примечание: для более подробной информации см. соответствующую главу.

Примеры

       CMP R0, #45   ; Перейти к "over", если R0 > 45.
       BGT over      ; Примечание: фактически в код команды будет занесено смещение
       ...           ; содержащее число полуслов до метки "over"
       ...
       ...
over   ...           ; Адрес метки должен быть выровнен по границе одного полуслова.


<-- Предыдущая страница Оглавление Следующая страница -->