КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Условные команды передачи управления AVR-контроллера
КОМАНДЫ ВЕТВЛЕНИЯ
| 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
|
|
|