| Rd |
Один из регистров общего назначения (РОН). Если в операции
учавствуют сразу два разных РОН, то второй обозначают как Rr.
В реальной программе d и r заменяются
соответствующим индексом: 0 <= d <= 31, 0 <= r
<= 31 |
| K |
Цифровая константа. В реальной программе заменяется на любое число записанное
как десятичном формате так и в любм другом. |
| b |
Номер бита. В реальной программе заменяется числом, означающим номер бита
(0 <= b <= 7) |
| A |
Смещение адреса перехода. В реальной программе вместо A
ставится метка для условного или безусловного перехода. Например RJMP
M1 (переход к метке M1) |
| P |
Регистр ввода-вывода (РВВ). В реальной программе заменяется номером РВВ
(0 <= P <= 63) или именем регистра (например PORTB,
TCCR1B и т.п.). |
| [ ] |
(квадратные скобки) Применяются для обозначения косвенной адресации ячейки
ОЗУ. Например, выражение [X] означает ячейку ОЗУ, адрес
которой размещен в регистровой паре X. Как известно X
соответствует паре регистров R26, R27;
Y соответствует R28, R29;
а Z соответствует R30, R31. |
| { } |
(фигурные скобки) Применяются для обозначения косвенной адресации ячейки
программной памяти (при чтении данных из программной памяти). Например,
обозначение {Z} означает ячейку программной памяти, адрес
которой находится в паре регистров Z (то есть в регистрах
R30, R31). |
| Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
| CBR Rd, K |
Сброс разряда(ов) РОН |
Rd
Rd and (0FFH – K) |
1 |
Z,N,V |
| SBR Rd, K |
Установка разряда(ов) РОН |
Rd
Rd or K |
1 |
Z,N,V |
| CBI P, b |
Сброс разряда РВВ |
P.b
0 |
2 |
— |
| SBI P, b |
Установка разряда РВВ |
P.b
1 |
2 |
— |
| BCLR s |
Сброс флага |
SREG.s
0 |
1 |
SREG.s |
| BSET s |
Установка флага |
SREG.s
1 |
1 |
SREG.s |
| BLD Rd, b |
Загрузка разряда РОН из флага T (SREG) |
Rd.b
T |
1 |
— |
| BST Rr, b |
Запись разряда РОН в флаг T (SREG) |
T
Rd.b |
1 |
T |
| CLC |
Сброс флага переноса |
C
0 |
1 |
C |
| SEC |
Установка флага переноса |
C
1 |
1 |
C |
| CLN |
Сброс флага отрицательного числа |
N
0 |
1 |
N |
| SEN |
Установка флага отрицательного числа |
N
1 |
1 |
N |
| CLZ |
Сброс флага нуля |
Z
0 |
1 |
Z |
| SEZ |
Установка флага нуля |
Z
1 |
1 |
Z |
| CLI |
Общий запрет прерываний |
I
0 |
1 |
I |
| SEI |
Общее разрешение прерываний |
I
1 |
1 |
I |
| CLS |
Сброс флага знака |
S
0 |
1 |
S |
| SES |
Установка флага знака |
S
1 |
1 |
S |
| CLV |
Сброс флага переполнения дополнительного кода |
V
0 |
1 |
V |
| SEV |
Установка флага переполнения дополнительн. кода |
V
1 |
1 |
V |
| CLT |
Сброс пользовательского флага T |
T
0 |
1 |
T |
| SET |
Установка пользовательского флага T |
T
1 |
1 |
T |
| CLH |
Сброс флага половинного переноса |
H
0 |
1 |
H |
| SEH |
Установка флага половинного переноса |
H
1 |
1 |
H |
| Мнемоника |
Описание |
Операция |
Циклы |
Флаги |
| MOV Rd, Rr |
Пересылка
между РОН |
Rd Rr |
1 |
— |
| MOVW Rd, Rr |
Пересылка между парами регистров |
R(d +1):Rd
R(r+1):Rr |
1 |
— |
| LDI Rd, K |
Загрузка константы в РОН |
Rd
K |
1 |
— |
| LD
Rd, X |
Косвенное чтение |
Rd
[X] |
2 |
— |
| LD Rd, X+ |
Косвенное чтение с постикрементом |
Rd
[X], X X+1 |
2 |
— |
| LD Rd, -X |
Косвенное чтение с преддекрементом |
X
X-1, Rd [X] |
2 |
— |
| LD Rd, Y |
Косвенное чтение |
Rd
[Y] |
2 |
— |
| LD Rd, Y+ |
Косвенное чтение с постикрементом |
Rd
[Y], Y Y+1 |
2 |
— |
| LD Rd, -Y |
Косвенное чтение с преддекрементом |
Y
Y-1, Rd [Y] |
2 |
— |
| LD Rd, Y+q |
Косвенное относительное чтение |
Rd
[Y+q] |
2 |
— |
| LD Rd, Z |
Косвенное чтение |
Rd
[Z] |
2 |
— |
| LD Rd, Z+ |
Косвенное чтение с постикрементом |
Rd
[Z], Z Z+1 |
2 |
— |
| LD Rd, - Z |
Косвенное чтение с преддекрементом |
Z
Z-1, Rd [Z] |
2 |
— |
| LD Rd, Z+q |
Косвенное относительное чтение |
Rd
[Z+q] |
2 |
— |
| LDS Rd, A |
Непосредственное чтение из ОЗУ |
Rd
[A] |
2 |
— |
| ST X, Rr |
Косвенная запись |
[X]
Rr |
2 |
— |
| ST X+, Rr |
Косвенная запись с постикрементом |
[X] Rr,
X X+1 |
2 |
— |
| ST
-X, Rr |
Косвенная запись с преддекрементом |
X
X-1, [X] Rr |
2 |
— |
| ST Y,
Rr |
Косвенная запись |
[Y]
Rr |
2 |
— |
| ST
Y+, Rr |
Косвенная запись с постикрементом |
[Y]
Rr, Y Y+1 |
2 |
— |
| ST -Y, Rr |
Косвенная запись с преддекрементом |
Y Y-1,
[Y] Rr |
2 |
— |
| ST
Y+q, Rr |
Косвенная относительная запись |
[Y+q]
Rr |
2 |
— |
| ST Z, Rr |
Косвенная запись |
[Z]
Rr |
2 |
— |
| ST Z+, Rr |
Косвенная запись с постикрементом |
[Z]
Rr, Z Z+1 |
2 |
— |
| ST -Z, Rr |
Косвенная запись с преддекрементом |
Z
Z-1, [Z] Rr |
2 |
— |
| ST Z+q, Rr |
Косвенная относительная запись |
[Z+q]
Rr |
2 |
— |
| STS A, Rr |
Непосредственная запись в ОЗУ |
[A]
Rr |
2 |
— |
| LPM |
Загрузка данных из памяти программ |
R0
{Z} |
3 |
— |
| LPM Rd, Z |
Загрузка данных из памяти программ |
Rd
{Z} |
3 |
— |
| LPM Rd, Z+ |
Загрузка данных из памяти программ и постдекремент Z |
Rd
{Z}, Z Z+1 |
3 |
— |
| SPM |
Запись
в программную память |
{Z}
R1:R0 |
- |
— |
| IN Rd, P |
Пересылка из РВВ в РОН |
Rd
P |
1 |
— |
| OUT P, Rr |
Пересылка из РОН в РВВ |
P
Rr |
1 |
— |
| PUSH Rr |
Сохранение байта в стеке |
STACK
Rr |
2 |
— |
| POP Rd |
Извлечение байта из стека |
Rd
STACK |
2 |
— |
| Мнемоника |
Описание |
Условие |
Циклы |
Флаги |
| BRBC s, A |
Переход, если флаг s регистра SREG сброшен |
Если SREG.s = 0 |
1/2 |
— |
| BRBS s, A |
Переход, если флаг s регистра SREG установлен |
Если SREG.s = 1 |
1/2 |
— |
| BRCS A |
Переход по переносу |
Если C = 1 |
1/2 |
— |
| BRCC A |
Переход, если нет переноса |
Если C = 0 |
1/2 |
— |
| BREQ A |
Переход по условию «равно» |
Если Z = 1 |
1/2 |
— |
| BRNE A |
Переход по условию «неравно» |
Если Z = 0 |
1/2 |
— |
| BRSH A |
Переход по условию «больше или равно» |
Если C = 0 |
1/2 |
— |
| BRLO A |
Переход по условию «меньше» |
Если C = 1 |
1/2 |
— |
| BRMI A |
Переход по условию «отрицательное значение» |
Если N = 1 |
1/2 |
— |
| BRPL A |
Переход по условию «положительное значение» |
Если N = 0 |
1/2 |
— |
| BRGE A |
Переход по условию «больше или равно» (со знаком) |
Если (N и V) = 0 |
1/2 |
— |
| BRLT A |
Переход по условию «меньше» (со знаком) |
Если (N или V) = 1 |
1/2 |
— |
| BRHS A |
Переход по половинному переносу |
Если H = 1 |
1/2 |
— |
| BRHC A |
Переход, если нет половинного переноса |
Если H = 0 |
1/2 |
— |
| BRTS A |
Переход, если флаг T установлен |
Если T = 1 |
1/2 |
— |
| BRTC A |
Переход, если флаг T сброшен |
Если T = 0 |
1/2 |
— |
| BRVS A |
Переход по переполнению дополнительного кода |
Если V = 1 |
1/2 |
— |
| BRVC A |
Переход, если нет переполнения дополнительного кода |
Если V = 0 |
1/2 |
— |
| BRID A |
Переход, если прерывания запрещены |
Если I = 0 |
1/2 |
— |
| BRIE A |
Переход, если прерывания разрешены |
Если I = 1 |
1/2 |
— |