Команды передачи управления
RJMP k
| -
| Относительный безусловный переход
|
| Операнды
| -2047 ≤ k ≤ 2047
|
| Операция
| РС = РС + k + 1
| Циклов
|
|
| Описание
| Команда относительного безусловного перехода. Выполняет переход по адресу, равному сумме содержимого счетчика команд и константы k. На практике вместо числовых значений смещения используются метки
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
IJMP
| -
| Косвенный переход
|
| Операнды
| Нет операндов
|
| Операция
| PC = Z
| Циклов
|
|
| Описание
| Косвенный безусловный переход. Выполняет переход по адресу, находящемуся в регистре Z
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
RCALL k
| -
| Относительный вызов подпрограммы
|
| Операнды
| -2047 ≤ k ≤ 2047
|
| Операция
| STACK=РС+1; PC=PC+k+1; SP=SP–2
| Циклов
|
|
| Описание
| Относительный вызов подпрограммы. Выполняет переход к подпрограмме, адрес которой получается сложением содержимого счетчика команд с константой k. Адрес следующей за RCALL команды (2 байта) сохраняется в стеке.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
ICALL
| -
| Косвенный вызов подпрограммы
|
| Операнды
| Нет операндов
|
| Операция
| STACK= PC+1; PC= Z; SP=SP–2
| Циклов
|
|
| Описание
| Косвенный вызов подпрограммы. Выполняет переход к подпрограмме, адрес которой находится в регистре Z. Адрес следующей за ICALL команды (2 байта) сохраняется в стеке
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
RET
| -
| Возврат из подпрограммы
|
| Операнды
| Нет операндов
|
| Операция
| SP = SP + 2; PC = STACK
| Циклов
|
|
| Описание
| Возврат из подпрограммы. Выполняет возврат в то место, откуда подпрограмма была вызвана
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
RETI
| -
| Возврат из подпрограммы обработки прерывания
|
| Операнды
| Нет операндов
|
| Операция
| SP = SP + 2; PC = STACK
| Циклов
|
|
| Описание
| Возврат из подпрограммы обработки прерывания. Выполняет возврат в то место, в котором выполнение программы было прервано в результате возникновения прерывания. Регистр состояния SREG не сохраняется при вызове подпрограммы обработки прерывания и не восстанавливается при выходе из нее. В связи с этим сохранение и восстановление этого регистра необходимо выполнять самостоятельно
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
| +
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
CPSE Rd, Rr
| -
| Пропуск команды при равенстве двух РОН
|
| Операнды
| 0 ≤ d ≤ 31, 0 ≤ r ≤ 31
|
| Операция
| Если Rd=Rr, то PC=PC+2 (или 3), иначе PC= PC+1
| Циклов
| 2,3,
|
| Описание
| Сравнивает содержимое двух регистров общего назначения Rr и Rd и пропускает следующую команду, если в регистрах записаны одинаковые значения
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
CP Rd, Rr
| -
| Сравнение РОН
|
| Операнды
| 0 ≤ d ≤ 31, 0 ≤ r ≤ 31
|
| Операция
| Rd – Rr
| Циклов
|
|
| Описание
| Сравнивает содержимое двух регистров общего назначения путем вычитания содержимого регистра Rr из содержимого регистра Rd. Данная команда влияет только на флаги регистра состояния SREG, которые устанавливаются в соответствии с результатом вычитания. Содержимое регистров не изменяется.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| +
| +
| +
| +
| +
| +
| | | | | | | | | | | |
CPC Rd, Rr
| -
| Сравнение РОН с учетом переноса
|
| Операнды
| 0 ≤ d ≤ 31, 0 ≤ r ≤ 31
|
| Операция
| Rd – Rr – C
| Циклов
|
|
| Описание
| Сравнивает содержимое двух регистров общего назначения путем вычитания содержимого регистра Rr и значения флага переноса (С) из содержимого регистра Rd. Данная команда влияет только на флаги регистра состояния SREG, которые устанавливаются в соответствии с результатом вычитания. Содержимое регистров не изменяется.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| +
| +
| +
| +
| +
| +
| | | | | | | | | | | |
CPI Rd, К
| -
| Сравнение содержимого РОН с константой
|
| Операнды
| 0 ≤ d ≤ 31, 0 ≤ K ≤ 255
|
| Операция
| Rd – K
| Циклов
|
|
| Описание
| Сравнивает содержимое регистра общего назначения Rd с константой К путем вычитания константы из содержимого регистра Rd. Данная команда влияет только на флаги регистра состояния SREG, которые устанавливаются в соответствии с результатом вычитания. Содержимое регистра Rd не изменяется.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| +
| +
| +
| +
| +
| +
| | | | | | | | | | | |
SBRC Rr, b
| -
| Пропустить команду, если разряд РОН сброшен
|
| Операнды
| 0 ≤ d ≤ 31, 0 ≤ b ≤ 7
|
| Операция
| Если в Rr бит b=0, то PC=PC+2 (или 3), иначе PC= PC + 1
| Циклов
| 2,3,
|
| Описание
| Проверяет состояние разряда b регистра общего назначения Rr. Если разряд сброшен, команда, следующая за SBRC Rr, b пропускается.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
SBRS Rr, b
| -
| Пропустить команду, если разряд РОН установлен
|
| Операнды
| 0 ≤ d ≤ 31, 0 ≤ b ≤ 7
|
| Операция
| Если в Rr бит b=1, то PC=PC+2 (или 3), иначе PC= PC + 1
| Циклов
| 2,3,
|
| Описание
| Проверяет состояние разряда b регистра общего назначения Rr. Если разряд установлен команда, следующая за SBRS Rr, b пропускается.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
SBIC P, b
| -
| Пропустить команду, если разряд b РВВ сброшен
|
| Операнды
| 0 ≤ P ≤ 31, 0 ≤ b ≤ 7
|
| Операция
| Если I/О(P) b=0, то PC=PC+2 (или 3), иначе PC = PC + 1
| Циклов
| 2,3,
|
| Описание
| Проверяет состояние разряда b регистра ввода/вывода P. Если разряд сброшен, команда, следующая за SBIC P, b, пропускается. Эта команда применима только к младшим 32 регистрам (адреса 0...31).
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
SBIS P, b
| -
| Пропустить команду, если разряд РВВ установлен
|
| Операнды
| 0 ≤ P ≤ 31, 0 ≤ b ≤ 7
|
| Операция
| Если I/О(P) b=1, то PC=PC+2 (или 3), иначе PC = PC + 1
| Циклов
| 2,3,
|
| Описание
| Проверяет состояние разряда b регистра ввода/вывода P. Если разряд установлен, команда, следующая за SBIC P, b, пропускается. Эта команда применима только к младшим 32 регистрам (адреса 0...31).
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRBS s, k
| -
| Переход, если разряд регистра SREG установлен
|
| Операнды
| 0 ≤ s ≤ 7, –64 ≤ k ≤ 63
|
| Операция
| Если SREG.s=1, то РС=РС+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет заданный разряд регистра SREG и выполняет переход, если этот разряд установлен. Величина смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRBC s, k
| -
| Переход, если разряд регистра SREG сброшен
|
| Операнды
| 0 ≤ s ≤ 7, –64 ≤ k ≤ 63
|
| Операция
| Если SREG.s=0, то РС=РС+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет заданный разряд регистра SREG и выполняет переход, если этот разряд сброшен. Величина смещения k представляется числом в дополнительном коде
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BREQ k
| -
| Переход по условию «равно»
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если Rd=Rr (Z=1),то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг нуля (Z) и выполняет переход, если флаг установлен. Величина смещения k представляется числом в дополнительном коде. При выполнении данной команды сразу же после команды СР, CPI, SUB или SUBI переход произойдет только в том случае, если число (со знаком или без знака), находящееся в регистре Rd, будет равно числу (со знаком или без знака), находящемуся в регистре Rr.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRNE k
| -
| Переход по условию «не равно»
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если Rd≠Rr (Z=0), то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг нуля (Z) и выполняет переход, если этот разряд сброшен. Величина смещения к представляется числом в дополнительном коде. При выполнении данной команды сразу же после команды СР, CPI, SUB или SUBI переход произойдет только в том случае, если числа (со знаком или без знака), находящиеся в регистрах Rd и Rr, не будут равны.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRCS k
| -
| Переход, если установлен перенос
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг С = 1, то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг переноса (С) и выполняет переход, если этот разряд установлен. Величина смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRCC k
| -
| Переход, если не было переноса
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг С=0, то PC = PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг переноса (С) и выполняет переход, если этот разряд сброшен. Величина смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRSH k
| -
| Переход по условию «больше или равно»
(для беззнаковых данных)
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если Rd ≥ Rr (С = 0), то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг переноса С и выполняет переход, если этот разряд сброшен. Величина смещения к представляется числом в дополнительном коде. При выполнении данной команды сразу же после команды СР, CPI, SUB или SUBI переход произойдет только в том случае, если число, находящееся в регистре Rd, будет больше (или равно) числа, находящегося в регистре Rr.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRLO k
| -
| Переход по условию «меньше» (для беззнаковых данных)
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если Rd<Rr (С=1), то PC=PC+k+1, иначе PC - PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг переноса С и выполняет переход, если этот разряд установлен. Величина смещения k представляется числом в дополнительном коде. При выполнении данной команды сразу же после команды СР, CPI, SUB или SUBI переход произойдет только в том случае, если число, находящееся в регистре Rd, будет меньше числа, находящегося в регистре Rr.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRMI k
| -
| Переход по условию «отрицательное значение»
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг N = 1, то PC=PC+k+1, иначе PC - PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг отрицательного значения N и выполняет переход, если этот разряд установлен. Величина смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRPL k
| -
| Переход по условию «положительное значение»
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг N = 0, то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг отрицательного значения (N) и выполнит переход, если этот разряд сброшен. Величина смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRGE k
| -
| Переход по условию «больше или равно» (для знаковых данных)
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если Rd ≥ Rr (N V=0), то PC=PC+k +1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг знака (S) и выполняет переход, если это разряд сброшен. Величина смещения k представляется числом в дополнительном коде. При выполнении данной команды сразу же после команды СР, CPI, SUB или SUBI переход про изойдет только в том случае, если число со знаком, находящееся в регистре Rd, будет больше (или равно) числа со знаком, находящегося в регистре Rr. Эквивалентна команде BRBC 4,k
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRLT k
| -
| Переход по условию «меньше» (для знаковых данных)
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если Rd<Rr (N V=1), то PC=PC+k +1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг S и выполняет переход, если это разряд установлен. Величина смещения k представляется числом в дополнительном коде. При выполнении данной команды сразу же после команды СР, CPI, SUB или SUBI переход произойдет только в том случае, если число со знаком, находящееся в регистре Rd, будет меньше числа со знаком, находящегося в регистре Rr.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRHS k
| -
| Переход по половинному переносу
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг Н = 1, то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг половинного переноса Н и выполняет переход, если этот разряд установлен. Величина смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRHC k
| -
| Переход, если не было половинного переноса
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг Н = 0, то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг половинного переноса Н и выполняет переход, если этот разряд сброшен. Величина смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRTS k
| -
| Переход, если флаг Т установлен
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг Т=1, то PC=PC+K+1, иначе PC=PC+1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг Т и выполняет переход, если этот разряд установлен. Вели-чина смещения k представляется в дополнительн. коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRTC k
| -
| Переход, если флаг Т сброшен
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг Т = 0, то РС=РС+к+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг Т и выполняет переход, если этот разряд сброшен. Величина смещения к представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRVS k
| -
| Переход по переполнению дополнительного кода
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг V = 1, то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг переполнения дополнительного кода V и выполняет переход, если этот разряд установлен. Смещения k представляется числом в дополнительном коде
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRVC k
| -
| Переход, если нет переполнения дополнительного кода
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг V = 0 то PC=PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг переполнения дополнительного кода V и выполняет переход, если этот разряд сброшен. Величина смещения k представлена в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
BRIE k
| -
| Переход, если прерывания разрешены
|
| Операнды
| –64 ≤ k ≤ 63
|
| Операция
| Если флаг I = 1, то PC =PC+k+1, иначе PC = PC + 1
| Циклов
| 2,
|
| Описание
| Условный относительный переход. Проверяет флаг общего разрешения прерываний (I) и выполняет переход, если этот разряд установлен. Смещения k представляется числом в дополнительном коде.
|
| Состояние флагов
| I
| T
| H
| S
| V
| N
| Z
| C
|
|
| -
| -
| -
| -
| -
| -
| -
| | | | | | | | | | | |
|
Поиск по сайту:
|