Набор команд
|   Мнемоника  |    Операнды  |    Описание  |    Действие  |    Флаги  |    Цкл  |  
|   Арифметические команды  |  |||||
|   ADD  |    Rd, Rr  |    Сложить два регистра  |    Rd<Rd+Rr  |    Z,C,N,V,H  |    1  |  
|   ADC  |    Rd, Rr  |    Сложить с переносом  |    Rd<Rd+Rr+C  |    Z,C,N,V,H  |    1  |  
|   ADIW  |    Rdl,K  |    Сложить слово с константой  |    Rdh,l<Rdh,l+K  |    Z,C,N,V,S  |    2  |  
|   SUB  |    Rd, Rr  |    Вычесть два регистра  |    Rd<Rd-Rr  |  ||
|   SUBI  |    Rd, K  |    Вычесть константу  |    Rd<Rd-K  |  ||
|   SBIW  |    Rdl,K  |    Вычесть слово с константой  |    Rdh,l<Rdh,l-K  |  ||
|   SBC  |    Rd, Rr  |    Вычесть с переносом  |    Rd<Rd-Rr-C  |  ||
|   SBCI  |    Rd, K  |    Вычесть с переносом  |    Rd<Rd-K-C  |  ||
|   AND  |    Rd, Rr  |    Логическое И  |    Rd<Rd AND Rr  |  ||
|   ANDI  |    Rd, K  |    Логическое И  |    Rd<Rd AND K  |  ||
|   OR  |    Rd, Rr  |    Логическое ИЛИ  |    Rd<Rd OR Rr  |  ||
|   ORI  |    Rd, K  |    Логическое ИЛИ  |    Rd<Rd OR K  |    Z,N,V  |    1  |  
|   EOR  |    Rd, Rr  |    Исключающее ИЛИ  |    Rd<Rd XOR Rr  |    Z,N,V  |    1  |  
|   COM  |    Rd  |    Дополнение до 1  |    Rd<$FF - Rd  |    Z,C,N,V  |    1  |  
|   NEG  |    Rd  |    Дополнение до 2  |    Rd<$00 - Rd  |    Z,C,N,V,H  |    1  |  
|   SBR  |    Rd,K  |    Установ. бита в регистре  |    Rd<Rd OR K  |    Z,N,V  |    1  |  
|   CBR  |    Rd,K  |    Сброс. бита в регистре  |    Rd<RdAND(FFh-K)  |    Z,N,V  |    1  |  
|   INC  |    Rd  |    Увеличить на 1  |    Rd<Rd+1  |    Z,N,V  |    1  |  
|   DEC  |    Rd  |    Уменьшить на 1  |    Rd<Rd-1  |    Z,N,V  |    1  |  
|   TST  |    Rd  |    Проверить на 0 или 1  |    Rd<Rd AND Rd  |    Z,N,V  |    1  |  
|   CLR  |    Rd  |    Очистить регистр  |    Rd<Rd XOR Rd  |    Z,N,V  |    1  |  
|   SER  |    Rd  |    Установить регистр  |    Rd<$FF  |    None  |    1  |  
|   КОМАНДЫ ВЕТВЛЕНИЯ  |  |||||
|   RJMP  |    k  |    Относительный переход  |    PC<PC+k+1  |    None  |    2  |  
|   LJMP  |    Переход по адресу (Z)  |    PC<Z  |    None  |    2  |  |
|   RCALL  |    k  |    Относительный вызов подпрогрограммы  |    PC<PC+k+1  |    None  |    3  |  
|   ICALL  |    Вызов подпр по адресу (Z)  |    PC<Z  |    None  |    3  |  |
|   RET  |    Выход из подпрограммы  |    PC<STACK  |    None  |    4  |  |
|   RETI  |    Выход из прерывания  |    PC<STACK  |    I  |    4  |  |
|   CPSE  |    Rd,Rr  |    Сравнить , пропуск если Rd=Rr  |    if(Rd=Rr) PC<PC+2 или 3  |    None  |    1/2  |  
|   CP  |    Rd,Rr  |    Сравнить  |    Rd-Rr  |    Z,N,V,C,H  |    1  |  
|   CPC  |    Rd,Rr  |    Сравнить с переносом  |    Rd-Rr-C  |    Z,N,V,C,H  |    1  |  
|   CPI  |    Rd,K  |    Сравнить с константой  |    Rd-K  |  ||
|   SBRC  |    Rr,b  |    Пропуск если бит в регистре сброшен  |    if(Rr(b)=0)  |    None  |    1/2  |  
|   SBRS  |    Rr,b  |    Пропуск если бит в регистре установлен  |    if(Rr(b)=1)  |    None  |    1/2  |  
|   SBIC  |    P, b  |    Пропуск если бит в регистре I\O сброшен  |    if(P(b)=0)  |    None  |    1/2  |  
|   SBIS  |    P, b  |    Пропуск если бит в регистре I\O установлен  |    if(P(b)=1)  |    None  |    1/2  |  
|   BRBS  |    s, k  |    Переход если установл флаг s  |    if(SREG(s)=1)  |    None  |    1/2  |  
|   BRBC  |    s, k  |    Переход если сброшен флаг s  |    if(SREG(s)=0)  |    None  |    1/2  |  
|   BREQ  |    k  |    Переход если равно Z=1  |    if(Z=1)  |    None  |    1/2  |  
|   BRNE  |    k  |    Переход если неравно if(Z=0)  |    if(Z=0)  |    None  |    1/2  |  
|   BRCS  |    k  |    Переход если установл перенос  |    if(C=1)  |    None  |    1/2  |  
|   BRCC  |    k  |    Переход если сброшен перенос  |    if(C=0)  |    None  |    1/2  |  
|   BRSH  |    k  |    Переход если равно или больше  |    if(C=0)  |    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  |    Переход если плюс  |    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  |    Переход если установл флаг H  |    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  |    Переход если установл флаг T  |    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=1) PC<PC+k+1  |    None  |    1/2  |  
|   КОМАНДЫ ПЕРЕСЫЛКИ  |  |||||
|   MOV  |    Rd,Rr  |    Пересылка между рег.  |    Rd<Rr  |    None  |    1  |  
|   LDI  |    Rd,K  |    Загрузить константу  |    Rd<K  |    None  |    1  |  
|   LD  |    Rd,X  |    Загрузить регистр непосредственно  |    Rd<(X)  |    None  |    2  |  
|   LD  |    Rd,X+  |    Загрузить регистр непосредст. c постинкрем  |    Rd<(X),X<X+1  |    None  |    2  |  
|   LD  |    Rd,-X  |    Загрузить регистр непоср. с предв.декрем  |    X<X-1,Rd<(X)  |    None  |    2  |  
|   LD  |    Rd,Y  |    Загрузить регистр непосредственно  |    Rd<(Y)  |    None  |    2  |  
|   LD  |    Rd,Y+  |    Загрузить регистр непоср. c пост инкрем  |    Rd<(Y),Y<Y+1  |    None  |    2  |  
|   LD  |    Rd,-Y  |    Загрузить регистр непоср. с предв.декрем  |    Y<Y-1,Rd<(Y)  |    None  |    2  |  
|   LDD  |    Rd,Y+q  |    Загрузить регистр непоср. со смещением  |    Rd<(Y+q)  |    None  |    2  |  
|   LD  |    Rd,Z  |    Загрузить регистр непосредственно  |    Rd<(Z)  |    None  |    2  |  
|   LD  |    Rd,Z+  |    Загрузить регистр непоср. c пост инкрем  |    Rd<(Z),Z<Z+1  |    None  |    2  |  
|   LD  |    Rd,-Z  |    Загрузить регистр непоср. с предв.декрем  |    Z<Z-1,Rd<(Z)  |    None  |    2  |  
|   LDD  |    Rd,Z+q  |    Загрузить регистр непоср. со смещением  |    Rd<(Z+q)  |    None  |    2  |  
|   LDS  |    Rd,k  |    Загрузить из ОЗУ  |    Rd<(k)  |    None  |    3  |  
|   ST  |    X,Rr  |    Записать регистр непосредственно  |    (X)<Rr  |    None  |    2  |  
|   ST  |    -X,Rr  |    Записать регистр непоср.c пред.декрем.  |    X<X-1,(X)<Rr  |  ||
|   ST  |    Y,Rr  |    Записать регистр непосредственно  |    (Y)<Rr  |  ||
|   ST  |    Y+,Rr  |    Записать регистр непоср.c пост инкр  |    (X)<Rr,X<X+1  |  ||
|   ST  |    -Y,Rr  |    Записать регистр непоср.c пред.декрем  |    Y<Y-1,(Y)<Rr  |    None  |    2  |  
|   STD  |    Y+q,Rr  |    Запис.рег.непоср.сосмещением  |    (Y+q)<Rr  |    None  |    2  |  
|   ST  |    Z,Rr  |    Записать регистр непосредственно  |    (Y)<Rr  |    None  |    2  |  
|   ST  |    Z+,Rr  |    Записать регистр непоср.c пост инкр  |    (Y)<Rr,Y<Y+1  |    None  |    2  |  
|   ST  |    -Z,Rr  |    Записать регистр непоср.c пред.декрем  |    Z<Z-1,(Z)<Rr  |    None  |    2  |  
|   STD  |    Y+q,Rr  |    Запис.рег.непоср.сосмещением  |    (Y+q)<Rr  |    None  |    2  |  
|   STS  |    k,Rr  |    Записать в ОЗУ  |    (k)<Rr  |    None  |    3  |  
|   LPM  |    Загр.из памяти программ  |    R0<(Z)  |    None  |    3  |  |
|   IN  |    Rd, P  |    Ввод из порта  |    Rd<P  |    None  |    1  |  
|   OUT  |    P, Rr  |    Вывод в порт  |    P<Rr  |    None  |    1  |  
|   PUSH  |    Rr  |    Записать в стек  |    STACK<Rr  |    None  |    2  |  
|   POP  |    Rr  |    Прочитать из стека  |    Rr<STACK  |    None  |    2  |  
|   КОМАНДЫ РАБОТЫ С БИТАМИ  |  |||||
|   SBI  |    P,b  |    Установить бит в регистре ввода/вывода  |    I/O(P,b)<1  |    None  |    2  |  
|   CBI  |    P,b  |    Сбросить бит в регистре ввода/вывода  |    I/O(P,b)<0  |    None  |    2  |  
|   LSL  |    Rd  |    Логический сдвиг влево  |    Rd(n+1)<Rd(n), Rd(0)<0  |    Z,C,N,V  |    1  |  
|   LSR  |    Rd  |    Логичский сдвиг вправо  |    Rd(n)<Rd(n+1), Rd(7)<0  |    Z,C,N,V  |    1  |  
|   ROL  |    Rd  |    сдвиг влево через C  |    Rd(0)<C,Rd(n+1)<Rd(n), C<Rd(7)  |    Z,C,N,V  |    1  |  
|   ROR  |    Rd  |    сдвиг вправо через C  |    Rd(7)<C,Rd(n)<Rd(n+1), C<Rd(0)  |    Z,C,N,V  |    1  |  
|   ASR  |    Rd  |    Арифметический сдвиг вправо  |    Rd(n)<Rd(n+1), n=0..6  |    Z,C,N,V  |    1  |  
|   SWAP  |    Rd  |    Обмен тетрад  |    Rd(3-0)<Rd(7-4) Rd(7-4)<Rd(3-0)  |    None  |    1  |  
|   BSET  |    s  |    Установить флаг  |    SREG(s)<1  |    SREG(s)  |    1  |  
|   BCLR  |    s  |    Сбросить флаг  |    SREG(s)<0  |    SREG(s)  |    1  |  
|   BST  |    Rr,b  |    Запомнить бит в T  |    T<Rr(b)  |    T  |    1  |  
|   BLD  |    Rd, b  |    Прочитать бит из T  |    Rd(b)<T  |    None  |    1  |  
|   SEC  |    Установить перенос  |    C<1  |    C  |    1  |  |
|   CLC  |    Сбросить перенос  |    C<0  |    C  |    1  |  |
|   SEN  |    Установить флаг N  |    N<1  |    N  |    1  |  |
|   CLN  |    Сбросить флаг N  |    N<0  |    N  |    1  |  |
|   SEZ  |    Установить флаг Z  |    Z<1  |    Z  |    1  |  |
|   CLZ  |    Сбросить флаг Z  |    Z<0  |    Z  |    1  |  |
|   SEI  |    Разрешить прерывания  |    I<1  |    I  |    1  |  |
|   CLI  |    Запретить прерывания  |    I<0  |    I  |    1  |  |
|   SES  |    Установить флаг S  |    S<1  |    S  |    1  |  |
|   CLS  |    Сбросить флаг S  |    S<0  |    S  |    1  |  |
|   SEV  |    Установить флаг V  |    V<1  |    V  |    1  |  |
|   CLV  |    Сбросить флаг V  |    V<0  |    V  |    1  |  |
|   SET  |    Установить флаг T  |    T<1  |    T  |    1  |  |
|   CLT  |    Сбросить флаг T  |    T<0  |    T  |    1  |  |
|   SEH  |    Установить флаг H  |    H<1  |    H  |    1  |  |
|   CLH  |    Сбросить флаг H  |    H<0  |    H  |    1  |  |
|   NOP  |    Нет операции  |    None  |    1  |  ||
|   SLEEP  |    Останов  |    None  |    3  |  ||
|   WDR  |    Сброс сторожевого таймера  |    None  |    1  |  ||
Подготовил Матвеев Дмитрий