2841
.pdfПРИЛОЖЕНИЕ 4
Сводная таблица команд микроконтроллера AVR
Группа команд логических операций
Мнемоника |
Описание |
|
Операция |
Циклы |
Флаги |
|
AND Rd,Rr |
«Логическое И» двух |
Rd=Rd • Rr |
1 |
|
Z,N,V |
|
|
РОН |
|
|
|
|
|
ANDI Rd,K |
«Логическое И» РОН и |
Rd = Rd • К |
1 |
|
Z,N,V |
|
|
константы |
|
|
|
|
|
EOR Rd, Rr |
«Исключающее ИЛИ» |
Rd = Rd |
1 |
|
Z,N,V |
|
|
двух РОН |
|
®Rr |
|
|
|
OR Rd,Rr |
«Логическое ИЛИ» |
|
Rd = RdvRr |
1 |
|
Z,N,V |
|
двух РОН |
|
|
|
|
|
ORI Rd,K |
«Логическое ИЛИ» |
|
Rd = Rd v К |
1 |
|
Z,N,V |
|
РОН и константы |
|
|
|
|
|
COM Rd |
Перевод в обратный |
Rd = $FF- |
1 |
|
Z,C,N,V |
|
|
код |
|
Rd |
|
|
|
NEG Rd |
Перевод в |
|
Rd = $00-Rd |
1 |
|
Z,C,N,V,H |
|
дополнительный код |
|
|
|
|
|
CLR Rd |
Сброс всех разрядов |
Rd=Rd®Rd |
1 |
|
Z,N,V |
|
|
РОН |
|
|
|
|
|
SER Rd |
Установка всех |
|
Rd =$FF |
1 |
|
|
|
разрядов РОН |
|
|
|
|
|
TST Rd |
Проверка РОН на |
|
Rd • Rd |
1 |
|
Z,N,V |
|
отрицательное или |
|
|
|
|
|
|
нулевое значение |
|
|
|
|
|
SWAP Rd |
Обмен местами тетрад |
Rd(3...O) = |
1 |
|
|
|
|
в РОН |
|
Rd(7...4), |
|
|
|
|
|
|
Rd(7...4) = |
|
|
|
|
|
|
Rd(3...O) |
|
|
|
|
Группа команд арифметических операций |
|
||||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
||
|
|
|
|
|
|
|
ADD Rd.Rr |
Сложение двух |
Rd = Rd + Rr |
1 |
|
Z,C,N,V,H |
|
|
РОН |
|
|
|
|
|
DC Rd.Rr |
Сложение двух |
Rd = Rd + Rr + |
1 |
|
Z,C,N,V,H |
|
|
РОН с переносом |
C |
|
|
|
|
|
|
|
|
|
|
|
81
Продолжение прил. 4
ADIW |
Сложение |
Rdh:RdI = |
2 |
Z,C,N,V,S |
Rd,K |
регистровой пары |
Rdh:Rdl + К |
|
|
|
с константой |
|
|
|
SUB Rd,Rr |
Вычитание двух |
Rd = Rd-Rr |
1 |
Z,C,N,V,H |
|
РОН |
|
|
|
SUBI Rd,K |
Вычитание |
Rd = Rd-K |
1 |
Z,C,N,V,H |
|
константы из РОН |
|
|
|
SBC Rd,Rr |
Вычитание двух |
Rd=Rd-Rr-C |
1 |
Z,C,N,V,H |
|
РОН с заемом |
|
|
|
SBCI Rd,K |
Вычитание |
Rd = Rd-K-C |
1 |
Z,C,N,V,H |
|
константы из РОН |
|
|
|
|
с заемом |
|
|
|
SBIW Rd,K |
Вычитание |
Rdh:Rdl = |
2 |
Z,C,N,V,S |
|
константы из |
Rdh:Rdt-K |
|
|
|
регистровой пары |
|
|
|
DEC Rd |
Декремент РОН |
Rd = Rd - l |
1 |
Z,N,V |
|
|
|
|
|
INC Rd |
Инкремент РОН |
Rd = Rd + 1 |
1 |
Z,N,V |
|
|
|
|
|
ASR Rd |
Арифметический |
Rd(n) = Rd(n+ |
1 |
Z,C,N,V |
|
сдвиг вправо |
1), n = 0...6 |
|
|
LSL Rd |
Логический сдвиг |
Rd(n+l) = Rd(n), |
1 |
Z,C,N,V |
|
влево |
Rd(0) = 0 |
|
|
LSR Rd |
Логический сдвиг |
Rd(n) = |
1 |
Z,C,N,V |
|
вправо |
Rd(n+l),Rd(7) = |
|
|
|
|
0 |
|
|
ROL Rd |
Сдвиг влево через |
Rd(0) = C, |
1 |
Z,C,N,V |
|
перенос |
Rd(n+l) = Rd(n), |
|
|
|
|
С = Rd(7) |
|
|
ROR Rd |
Сдвиг вправо через |
Rd(7) = C, Rd(n) |
1 |
Z,C,N,V |
|
перенос |
= Rd(n+l), С = |
|
|
|
|
Rd(0) |
|
|
MUL Rd,Rr |
Умножение без |
Rl:RO = RdXRr |
2 |
Z,C |
|
знаковых чисел |
|
|
|
MULS |
Умножение чисел |
Rl:RO = RdXRr |
2 |
Z,C |
Rd,Rr |
со знаком |
|
|
|
|
|
|
|
|
82
Продолжение прил. 4
MULSU |
Умножение без |
Rl:RO = RdXRr |
2 |
Z,C |
|
Rd,Rr |
знакового числа на |
|
|
|
|
|
число со знаком |
|
|
|
|
FMDL |
Умножение |
Rl:RO = |
2 |
Z,C |
|
Rd,Rr |
дробных без |
(RdXRr)«l |
|
|
|
|
знаковых чисел |
|
|
|
|
FMULS |
Умножение |
Rl:RO = |
2 |
Z,C |
|
Rd,Rr |
дробных чисел со |
(RdXRr)«l |
|
|
|
|
знаком |
|
|
|
|
FMULSU |
Умножение |
Rl:RO = |
2 |
Z,C |
|
Rd,Rr |
дробного без |
(RdXRr)«1 |
|
|
|
|
знакового числа и |
|
|
|
|
|
дробного числа со |
|
|
|
|
|
знаком |
|
|
|
|
|
Группа команд операций с битами |
|
|
||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
CBR Rd,K |
Сброс разряда(ов) |
Rd = Rd»($FF- |
1 |
Z,N,V |
|
|
РОН |
K) |
|
|
|
SBR Rd,K |
Установка |
Rd=RdvK |
1 |
Z, N,V |
|
|
разрада(ов) РОН |
|
|
|
|
CBI A,b |
Сброс разряда РВВ |
A.b = 0 |
2 |
|
|
|
|
|
|
|
|
SBI A,b |
Установка разряда |
A.b=l |
2 |
|
|
|
РВВ |
|
|
|
|
BCLR s |
Зброс флага |
SREG.S - 0 |
1 |
SREG.S |
|
BSET s |
Установка флага |
SREG.S=l |
1 |
SREG.S |
|
BLD Rd,b |
Загрузка разряда |
Rd.b = T |
1 |
|
|
|
РОН из флага Т |
|
|
|
|
|
(SREG) |
|
|
|
|
BST Rr,b |
Запись разряда |
T = Rr.b |
1 |
T |
|
|
РОН в флаг Т |
|
|
|
|
|
(SREG) |
|
|
|
|
CLC |
Сброс флага |
С = 0 |
1 |
С |
|
|
переноса |
|
|
|
|
SEC |
Установка флага |
C=l |
1 |
C |
|
|
переноса |
|
|
|
|
|
|
|
|
|
|
83
Продолжение прил. 4
CLN |
Сброс флага |
N = 0 |
1 |
N |
|
отрицательного |
|
|
|
|
числа |
|
|
|
SEN |
Установка флага |
N = 1 |
1 |
N |
|
отрицательного |
|
|
|
|
числа |
|
|
|
CLZ |
Сброс флага нуля |
Z = 0 |
1 |
Z |
SEZ |
Установка флага |
Z = l |
1 |
Z |
|
нуля |
|
|
|
CLI |
Общее запрещение |
1 = 0 |
1 |
I |
|
прерываний |
|
|
|
SEI |
Общее разрешение |
1 = 1 |
1 |
I |
|
прерываний |
|
|
|
CLS |
Сброс флага знака |
S = 0 |
1 |
S |
SES |
Установка флага |
S = l |
1 |
S |
|
знака |
|
|
|
CLV |
Сброс флага |
V = 0 |
1 |
V |
|
переполнения доп. |
|
|
|
|
кода |
|
|
|
SEV |
Установка флага |
V = l |
1 |
V |
|
переполнения доп. |
|
|
|
|
кода |
|
|
|
CLT |
Сброс флага Т |
T = 0 |
1 |
T |
SET |
Установка флага Т |
T = l |
1 |
T |
CLH |
Сброс флага |
H = 0 |
1 |
H |
|
половинного |
|
|
|
|
переноса |
|
|
|
SEH |
Установка флага |
H = l |
1 |
H |
|
половинного |
|
|
|
|
переноса |
|
|
|
Группа команд пересылки данных
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
MOV Rd,Rr |
Пересылка между |
Rd = Rr |
1 |
|
|
РОН |
|
|
|
MOVW |
Пересылка |
Rd + l:Rd = |
1 |
|
Rd, Rr |
двухбайтовых |
Rr+l:Rr |
|
|
|
значений |
|
|
|
84
|
|
Продолжение прил. 4 |
||
LDI Rd, K |
Загрузка |
Rd = K |
1 |
|
|
константы в РОН |
|
|
|
LD Rd,X |
Косвенное чтение |
Rd=[X] |
2 |
|
LD Rd,X+ |
Косвенное чтение |
Rd = [X],X = |
2 |
|
|
с постинкрементом |
X+I |
|
|
LD Rd,-X |
Косвенное чтение |
X = X-l,Rd = [X] |
2 |
|
|
с преддекрементом |
|
|
|
LD Rd,Y |
Косвенное чтение |
Rd=[Y] |
2 |
|
LD Rd,Y+ |
Косвенное чтение |
Rd = [Y],Y = |
2 |
|
|
с постинкрементом |
Y+l |
|
|
LD Rd,-Y |
Косвенное чтение |
Y=Y-l,Rd=[Y] |
2 |
|
|
с преддекрементом |
|
|
|
LDD |
Косвенное |
Rd = [Y+q] |
2 |
|
Rd,Y+q |
относительное |
|
|
|
|
чтение |
|
|
|
LD Rd,Z |
Косвенное чтение |
Rd = [Z] |
2 |
|
LD Rd,Z+ |
Косвенное чтение |
Rd = [Z],Z = Z+l |
2 |
|
|
с постинкрементом |
|
|
|
LD Rd,-Z |
Косвенное чтение |
Z = Z - 1, Rd = |
2 |
|
|
с преддекрементом |
[Z] |
|
|
LDD |
Косвенное |
Rd = [Z + q] |
2 |
|
Rd,Z+q |
относительное |
|
|
|
|
чтение |
|
|
|
LDS Rd,k |
Непосредственное |
Rd = [k] |
2 |
|
|
чтение из ОЗУ |
|
|
|
ST X,Rr |
Косвенная запись |
[X] = Rr |
2 |
|
ST X+,Rr |
Косвенная запись с |
[X] = Rr, X=X+1 |
2 |
|
|
постинкрементом |
|
|
|
ST -X,Rr |
Косвенная запись с |
X = X-l, [X] = Rr |
2 |
|
|
преддекрементом |
|
|
|
ST Y,Rr |
Косвенная запись |
[Y] = Rr |
2 |
|
ST Y+,Rr |
Косвенная запись с |
[Y] = Rr, Y=Y+1 |
2 |
|
|
постинкрементом |
|
|
|
ST –Y, Rr |
Косвенная запись с |
Y=Y-l, [X] = Rr |
2 |
|
|
преддекрементом |
|
|
|
|
|
|
|
|
85
Продолжение прил. 4
STD |
Косвенная |
[Y+q] = Rr |
2 |
|
Y+q,Rr |
относительная |
|
|
|
|
запись |
|
|
|
ST Z,Rr |
Косвенная запись |
[Z] = Rr |
2 |
|
ST Z+,Rr |
Косвенная запись с |
[Z] = Rr,Z = Z+l |
2 |
|
|
постинкрементом |
|
|
|
ST –Z,Rr |
Косвенная запись с |
Z = Z-l, [Z] = Rr |
2 |
|
|
преддекрементом |
|
|
|
STD |
Косвенная запись |
[Z + q] = Rr |
2 |
|
Z+q,Rr |
|
|
|
|
STS k,Rr |
Непосредственная |
[k] = Rr |
2 |
|
|
запись в ОЗУ |
|
|
|
LPM |
Загрузка данных из |
R0 = {Z} |
3 |
|
|
памяти программ |
|
|
|
LPM Rd,Z |
Загрузка данных из |
RB={Z} |
3 |
|
|
памяти программ |
|
|
|
LPM Rd,Z+ |
Загрузка данных из |
RB = {Z},Z = |
3 |
|
|
памяти программ с |
Z+1 |
|
|
|
постинкрементном |
|
|
|
ELPM |
Расширенная |
RO = |
3 |
|
|
загрузка данных из |
{RAMPZ:Z} |
|
|
|
памяти программ |
|
|
|
ELPM Rd,Z |
Расширенная |
RB={RAMPZ:Z} |
3 |
|
|
загрузка данных из |
|
|
|
|
памяти программ |
|
|
|
ELPM |
Расширенная |
RB = |
3 |
|
Rd,Z+ |
загрузка данных из |
{RAMPZ:Z}, |
|
|
|
памяти программ с |
RAMPZ:Z = |
|
|
|
постинкрементном |
RAMPZ:Z+1 |
|
|
SPM |
Запись в память |
{Z} = RI:R0 |
|
|
|
программ |
|
|
|
IN Rd,A |
Пересылка из РВВ |
Rd = A |
1 |
|
|
в РОН |
|
|
|
OUT A,Rr |
Пересылка из РОН |
A=Rr |
1 |
|
|
в РВВ |
|
|
|
PUSH Rr |
Сохранение байта |
STACK - Rr |
2 |
|
|
в стеке |
|
|
|
86
|
|
Продолжение прил. 4 |
|||
POP Rd |
Извлечение байта |
Rd = STACK |
2 |
|
|
|
из стека |
|
|
|
|
Группа команд передачи управления |
|
|
|
||
Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
|
RJMP k |
Относительный |
РС =РС + к+1 |
2 |
|
|
|
безусловный |
|
|
|
|
|
переход |
|
|
|
|
IJMP |
Косвенный |
РС =Z |
2 |
|
|
|
безусловный |
|
|
|
|
|
переход |
|
|
|
|
JMP к |
Переход |
РС = к |
3 |
|
|
RCALL к |
Относительный |
PC = PC + к + 1 |
3 |
|
|
|
вызов |
|
|
|
|
|
подпрограммы |
|
|
|
|
ICALL |
Косвенный вызов |
PC = Z |
3 |
|
|
|
подпрограммы |
|
|
|
|
CALL к |
Абсолютный |
РС = к |
4 |
|
|
|
вызов |
|
|
|
|
|
подпрограммы |
|
|
|
|
RET |
Возврат из |
PC = STACK |
4 |
|
|
|
подпрограммы |
|
|
|
|
RETI |
Возврат из |
PC = STACK |
4 |
|
|
|
подпрограммы |
|
|
|
|
|
обработки |
|
|
|
|
|
прерывания |
|
|
|
|
СР Rd,Rr |
Сравнение РОН |
Rd-Rr |
1 |
Z,N,V,C,H |
|
СРС Rd, Rr |
Сравнение РОН с |
Rd-Rr-C |
1 |
Z,N,V,C,H |
|
|
учетом переноса |
|
|
|
|
CPI Rd,K |
Сравнение РОН с |
Rd-K |
1 |
Z,N,V,C,H |
|
|
константой |
|
|
|
|
CPSE |
Сравнение и |
Если Rd = Rr, то |
1/2/3 |
|
|
Rd,Rr |
пропуск |
PC = PC + 2 (3) |
|
|
|
|
следующей |
|
|
|
|
|
команды при |
|
|
|
|
|
равенстве |
|
|
|
|
|
|
|
|
|
|
87
|
|
Продолжение прил. 4 |
||
SBRC Rr,b |
Пропуск |
Если Rr.b = 0, |
1/2/3 |
|
|
следующей |
то PC = PC + 2 |
|
|
|
команды, если |
(3) |
|
|
|
разряд РОН |
|
|
|
|
сброшен |
|
|
|
SBRS Rr,b |
Пропуск |
Если Rr.b=l, то |
1/2/3 |
|
|
следующей |
PC = PC + 2 (3) |
|
|
|
команды, если |
|
|
|
|
разряд РОН |
|
|
|
|
установлен |
|
|
|
SBIC A,b |
Пропуск |
Если A.b = 0, то |
1/2/3 |
|
|
следующей |
PC = PC + 2 (3) |
|
|
|
команды, если |
|
|
|
|
РВВ сброшен |
|
|
|
SBIS A,b |
Пропуск |
Если А.Ь= 1, то |
1/2/3 |
|
|
следующей |
PC = PC + 2 (3) |
|
|
|
команды, если |
|
|
|
|
разряд РВВ |
|
|
|
|
установлен |
|
|
|
BRBC s,k |
Переход, если флаг |
Если SREG.s = |
1/2 |
|
|
s регистра SREG |
0, то РС = РС + |
|
|
|
сброшен |
к+1 |
|
|
BRBS s,k |
Переход, если флаг |
Если SREG.s |
1/2 |
|
|
s регистра SREG |
=1, то РС = РС |
|
|
|
установлен |
+ к+1 |
|
|
BRCS к |
Переход по |
Если С =1, то |
1/2 |
|
|
переносу |
РС = РС + к+1 |
|
|
BRCC к |
Переход, если нет |
Если С = 0, то |
1/2 |
|
|
переноса |
РС = РС + к+1 |
|
|
BREQ к |
Переход по |
Если Z = l, то |
1/2 |
|
|
«равно» |
РС = РС + к+1 |
|
|
BRNE к |
Переход по «не |
Если Z = 0, то |
1/2 |
|
|
равно» |
РС = РС + к+1 |
|
|
BRSH к |
Переход по «выше |
Если С = 0, то |
1/2 |
|
|
или равно» |
РС = РС + к+1 |
|
|
BRLO к |
Переход по |
Если С =1, то |
1/2 |
|
|
«меньше» |
РС = РС + к+1 |
|
|
88
|
|
Продолжение прил. 4 |
||
BRMI . |
Переход по |
ЕслиN = 1, то |
1/2 |
|
|
«отрицательное |
РС = РС + к +1 |
|
|
|
значение» |
|
|
|
BRPL |
Переход по |
Если N = 0, то |
1/2 |
|
|
«положительное |
РС = РС + к+1 |
|
|
|
значение» |
|
|
|
BRGE |
Переход по |
Если (N®V) = 0, |
1/2 |
|
|
«больше или |
то PC = PC + к + |
|
|
|
равно» (числа со |
1 |
|
|
|
знаком) |
|
|
|
|
|
|
|
|
BRLT |
Переход по |
Если (N®V)=l, |
1/2 |
|
|
«меньше нуля» |
то PC = PC + к + |
|
|
|
(числа со знаком) |
1 |
|
|
BRHS |
Переход по |
Если Н = 1, то |
1/2 |
|
|
половинному |
PC = PC + к + 1 |
|
|
|
переносу |
|
|
|
BRHC |
Переход, если нет |
Если Н = 0, то |
1/2 |
|
|
половинного |
PC = PC + к + 1 |
|
|
|
переноса |
|
|
|
BRTS |
Переход, если флаг |
Если Т= 1, то |
1/2 |
|
|
Т установлен |
РС = РС + к+1 |
|
|
BRTC |
Переход, если флаг |
ЕслиТ = 0, тоРС |
1/2 |
|
|
Т сброшен |
= РС + к+1 |
|
|
BRVS |
Переход по |
ЕслиУ=1, тоРС |
1/2 |
|
|
переполнению доп. |
= РС + к+1 |
|
|
|
кода |
|
|
|
BRVC |
Переход, если нет |
ЕслиУ = 0, тоРС |
1/2 |
|
|
переполнения доп. |
= РС + к+1 |
|
|
|
кода |
|
|
|
BRID |
Переход, если |
Если I = 0, тоРС |
1/2 |
|
|
прерывания |
= РС + к+1 |
|
|
|
запрещены |
|
|
|
BRIE |
Переход, если |
Если1 = 1, тоРС |
1/2 |
|
|
прерывания |
= РС + к+1 |
|
|
|
разрешены |
|
|
|
89
|
|
|
Окончание прил. 4 |
||
|
Группа команд управления системой |
||||
Мнемоника |
Описание |
Операция |
|
Циклы |
Флаги |
NOP |
Нет операции |
пустая команда |
|
1 |
|
|
|
перевод |
|
|
|
|
Переход в |
микроконтроллера в |
|
|
|
|
«спящий» |
режим пониженного |
|
|
|
SLEEP |
режим |
энергопотребления |
|
3 |
|
|
Сброс |
|
|
|
|
|
сторожевого |
сброс сторожевого |
|
|
|
WDR |
таймера |
таймера |
|
1 |
|
90