Команды передачи управления




 

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
  ­ - - - - - - -
                     

 

BRID k - Переход, если прерывания запрещены
  Операнды –64 ≤ k ≤ 63
  Операция Если флаг I = 0, то PC =PC+k+1, иначе PC = PC + 1 Циклов 2,
  Описание Условный относительный переход. Проверяет флаг общего разрешения прерываний (I) и выполняет переход, если этот разряд сброшен. Смещение k представляется числом в дополнительном коде.
  Состояние флагов I T H S V N Z C
  ­ - - - - - - -
                     


Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: