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