Пример:
bst r0, 3 ;Загрузить T битом 3 регистра r0. brbs 6,bitset ;Перейти, если бит T установлен.
.....
bitset: nop ;Перейти по назначению (пустая операция).
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
Команда BRCC – перейти, если флаг переноса очищен
Описание:
Условный относительный переход. Тестируется бит флага переноса (С) регистра статуса и, если бит очищен, выполняется переход относительно состояния счетчика программ. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC - 64 < назначение < PC + 63). Параметр k является смещением относительно состояния счетчика программ и представлен в форме дополнения до двух. (Команда эквивалентна BRBC 0,k.)
Операция: If С= 0 then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
|
|
PC <- PC + k + 1 |
BRСС k |
-64 < k <+63 |
PC <- PC + 1, если |
|
|
условия не соблюдены. |
Пример:
add r22, r23 ; Сложить r23 с r22.
brcc nocarry ; Перейти, если перенос очищен.
..... |
; Пустая операция. |
nocarry: nop |
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
Команда BREQ – перейти если равно
Описание:
Условный относительный переход. Тестируется бит флага нулевого значения (Z) регистра статуса и, если бит установлен, выполняется переход относительно состояния счетчика программ. Если команда выполняется сразу после любой из команд CP, CPI, SUB или SUBI, то переход произойдет, если двоичное число (со знаком или без знака) в Rd, равно двоичному числу в Rr. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC - 64 < назначение < PC + 63). Параметр k является смещением относительно
60
состояния счетчика программ и представлен в форме дополнения до двух. (Команда эквивалентна BRBS 1,k.)
Операция: If Rd = Rr (Z = 1) then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
|
|
PC <- PC + k + 1 |
BREQ k |
-64 < k <+63 |
PC <- PC + 1, если условия не |
|
|
соблюдены. |
Пример: |
; Сравнить регистры r1 и r0. |
cp r1, r0 |
|
breq equal ; Перейти, если содержимое регистров |
|
..... |
;совпадает. |
equal: nop |
; Пустая операция. |
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
Команда BRGE – перейти, если больше или равно (с учетом знака)
Описание:
Условный относительный переход. Тестируется бит флага знака (S) регистра статуса и, если бит очищен, выполняется переход относительно состояния счетчика программ. Если команда выполняется сразу после выполнения любой из команд CP, CPI, SUB или SUBI, то переход произойдет, если двоичное число со знаком, находящееся в Rd, больше или равно двоичному числу со знаком в Rr. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC - 64 < назначение < PC + 63). Параметр k является смещением. (Команда эквивалентна BRBC 4,k.)
Операция: If Rd ≥ Rr (N V = 0) then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
BRGE k |
-64 < k <+63 |
PC <- PC + k + 1 |
|
|
PC <- PC + 1, если условия |
|
|
не соблюдены. |
Пример: |
; Сравнить регистры r11 и r12. |
|
cp r11, r12 |
||
brge greateq ; Перейти, если r11 >= r12(со знаком)
..... |
; Пустая операция. |
greateq: nop |
|
Слов: 1 (2 байта). |
Циклов: 1, если условия не соблюдены, 2 при соблюде- |
нии правильных условий.
61
Команда BRHC – перейти, если флаг полупереноса очищен
Описание:
Условный относительный переход. Тестируется бит флага полупереноса
(H) регистра статуса и, если бит очищен, выполняется переход относительно состояния счетчика программ. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC - 64 < назначение < PC + 63). Параметр k является смещением. (Команда эквивалентна BRBC 5,k.)
Операция: If H = 0 then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
BRHC k |
-64 < k <+63 |
PC <- PC + k + 1 |
|
|
PC <- PC + 1, если условия не |
|
|
соблюдены. |
Пример:
brhc hclear ; Перейти, если флаг полупереноса очищен.
.....
hclear: nop ; Перейти по назначению(пустая операция).
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
Команда BRHS – перейти, если флаг полупереноса установлен
Описание:
Условный относительный переход. Тестируется бит флага полупереноса
(H) регистра статуса и, если бит установлен, выполняется переход относительно состояния счетчика программ. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC - 64 < назначение < PC + 63). Параметр k является смещением относительно состояния счетчика программ и представлен в форме дополнения до двух. (Команда эквивалентна BRBS 5,k.)
Операция: If H = 1 then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
BRHS k |
-64 < k <+63 |
PC <- PC + k + 1 |
|
|
PC <- PC + 1, если |
|
|
условия не соблюдены. |
Пример: |
brhs hset ; |
Перейти, если флаг полупереноса |
|
|
|||
hset: |
..... |
;установлен. |
|
nop |
; |
Пустая операция. |
|
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
62
Команда BRID – перейти, если глобальное прерывание запрещено
Описание:
Условный относительный переход. Тестируется бит флага глобального прерывания (I) регистра статуса и, если бит сброшен, выполняется переход относительно состояния счетчика программ. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC - 64 << назначение < PC + 63). Параметр k является смещением относительно состояния счетчика программ и представлен в форме дополнения до двух. (Команда эквивалентна BRBC 7,k.)
Операция: If I = 0 then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
BRID k |
-64 < k <+63 |
PC <- PC + k + 1 |
|
|
PC <- PC + 1, если условия |
|
|
не соблюдены. |
Пример:
brid intdis ; Перейти, если глобальное
..... |
; прерывание запрещено. |
intdis: nop |
; Пустая операция. |
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
Команда BRIE перейти, если глобальное прерывание разрешено
Описание:
Условный относительный переход. Тестируется бит флага глобального прерывания (I) регистра статуса и, если бит установлен, то выполняется переход относительно состояния счетчика программ. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC64 < назначение < PC+63). Параметр k является смещением. (Команда эквивалентна BRBS 7,k.)
Операция: If I = 1 then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
BRIE k |
-64 < k <+63 |
PC <- PC + k + 1 |
|
|
PC <- PC + 1, если условия |
|
|
не соблюдены. |
Пример: |
brie inten ; |
Перейти, если глобальное |
|
|
|||
inten: |
..... |
;прерывание разрешено. |
|
nop |
; |
Пустая операция. |
|
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
63
Команда BRLO перейти, если меньше (без знака)
Описание:
Условный относительный переход. Тестируется бит флага переноса (C) регистра статуса и, если бит установлен, выполняется переход относительно состояния счетчика программ. Если команда выполняется сразу после любой из команд CP, CPI, SUB или SUBI, то переход произойдет, если двоичное число без знака, находящееся в Rd, меньше двоичного числа без знака, находящегося в Rr. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC-64 < назначение < PC+63). Параметр k является смещением относительно состояния счетчика программ и представлен в форме дополнения до двух. (Команда эквивалентна BRBS 0,k.)
Операция: If Rd < Rr (C = 1) then PC <- PC + k +1, else PC <- PC +1
Синтаксис: |
Операнды: |
Счетчик программ: |
BRLO k |
-64 < k <+63 |
PC <- PC + k + 1 |
|
|
PC <- PC + 1, если условия |
|
|
не соблюдены. |
Пример:
eor r19, r19 ; Очистить r19. loop: inc r19 ; Увеличить на 1 r19.
.....
cpi r19, $10 ; Сравнить r19 с $10.
brlo loop |
; Перейти, если |
r19 < $10 |
nop |
; (без знака). |
(пустая операция). |
; Выйти из петли |
Слов: 1 (2 байта). Циклов: 1, если условия не соблюдены, 2 при соблюдении правильных условий.
Команда BRLT перейти, если меньше чем (со знаком)
Описание:
Условный относительный переход. Тестируется бит флага знака (S) регистра статуса и, если бит установлен, выполняется переход относительно состояния счетчика программ. Если команда выполняется сразу после выполнения любой из команд CP, CPI, SUB или SUBI, то переход произойдет, если двоичное число со знаком, находящееся в Rd, меньше двоичного числа со знаком, находящегося в Rr. Данная команда выполняет переход в любом направлении относительно состояния счетчика программ (PC - 64 < назначение < PC + 63). Параметр k является смещением относительно состояния счетчика программ и представлен в форме дополнения до двух. (Команда эквивалентна BRBS 4,k.)
Операция: If Rd < Rr (N V = 1) then PC <- PC + k +1, else PC <- PC +1
64