КОМАНДЫ ВЕТВЛЕНИЯ
|
RJMP
| k
| Относительный переход
| PC<PC+k+1
| None
|
|
LJMP
|
| Переход по адресу (Z)
| PC<Z
| None
|
|
RCALL
| k
| Относ. вызов подпрогр.
(запись в стек адр. возврата)
| PC<PC+k+1
| None
|
|
ICALL
|
| Вызов подпр по адр (Z)
| PC<Z
| None
|
|
RET
|
| Выход из подпрограммы
| PC<STACK
| None
|
|
RETI
|
| Выход из прерывания
| PC<STACK
| I
|
|
CPSE
| Rd,Rr
| Сравнить, пропуск если равно
| if(Rd=Rr) PC<PC+2 или 3
| None
|
|
CP
| Rd,Rr
| Сравнить, установить флаг нуля Z
| Rd-Rr (Z=1 – если=)
| Z,N,V,C,H
|
|
CPC
| Rd,Rr
| Сравнить с переносом
| Rd-Rr-C
| Z,N,V,C,H
|
|
CPI
| Rd,K
| Сравнить с константой
| Rd-K
| Z,N,V,C,H
|
|
SBRC
| Rr,b
| Пропуск если бит (b) в регистре сброшен
| if(Rr(b)=0) PC<PC+2 или 3
| None
| 1/2
|
SBRS
| Rr,b
| Пропуск если бит в регистре установлен
| if(Rr(b)=1) PC<PC+2 или 3
| None
| 1/2
|
SBIC
| P, b
| Пропуск если бит в рег ввода/выв. сброшен
| if(P(b)=0) PC<PC+2 или 3
| None
| 1/2
|
SBIS
| P, b
| Пропуск если бит в рег ввода/выв. установлен
| if(P(b)=1) PC<PC+2 или 3
| None
| 1/2
|
BRBS
| s, k
| Переход если установл. флаг S – флаг знака
| if(SREG(s)=1) PC<PC+k+1
| None
| 1/2
|
BRBC
| s, k
| Переход если сброшен флаг s
| if(SREG(s)=0) PC<PC+k+1
| None
| 1/2
|
BREQ
| k
| Переход если равно
| if(Z=1) PC<PC+k+1
| None
| 1/2
|
BRNE
| k
| Переход если неравно
| if(Z=0) PC<PC+k+1
| None
| 1/2
|
BRCS
| k
| Переход если установл. С флаг переноса
| if(C=1)
PC<PC+k+1
| None
| 1/2
|
BRCC
| k
| Переход если сброшен перенос
| if(C=0) PC<PC+k+1
| None
| 1/2
|
BRSH
| k
| Переход если равно или больше
| if(C=0) PC<PC+k+1
| None
| 1/2
|
BRLO
| k
| Переход если меньше
| if(C=1) PC<PC+k+1
| None
| 1/2
|
BRMI
| k
| Переход если минус
| if(N=1) PC<PC+k+1
| None
| 1/2
|
BRPL
| k
| Переход если плюс N – флаг отрицательного результата
| if(N=0) PC<PC+k+1
| None
| 1/2
|
BRGE
| k
| Переход если больше или равно, со знаком
| if(N XOR V=0) PC<PC+k+1
| None
| 1/2
|
BRLT
| k
| Переход если меньше нуля, со знаком
| if(N XOR V=1) PC<PC+k+1
| None
| 1/2
|
BRHS
| k
| Переход если установл. флаг Н – флаг дополнительного переноса
| if (H=1) PC<PC+k+1
| None
| 1/2
|
BRHC
| k
| Переход если сброшен флаг H
| if (H=0) PC<PC+k+1
| None
| 1/2
|
BRTS
| k
| Переход если установл. флаг Т – флаг трассировки
| if (H=1) PC<PC+k+1
| None
| 1/2
|
BRTC
| k
| Переход если сброшен флаг T
| if (H=0) PC<PC+k+1
| None
| 1/2
|
BRVS
| k
| Переход если установлен флаг V (переполнение)
| if (H=1) PC<PC+k+1
| None
| 1/2
|
BRVC
| k
| Переход если сброшен флаг V
| if (H=0) PC<PC+k+1
| None
| 1/2
|
BRIE
| k
| Переход если разрешены прерывания
| if(I=1) PC<PC+k+1
| None
| 1/2
|
BRID
| k
| Переход если запрещены прерывания
| if(I=0) PC<PC+k+1
| None
|
|