[Main]
Device=Atmega8, Atmega16
[CMD]
000001rdddddrrrr;CPC Rd,Rr;Сравнить с учетом переноса
10010111KKddKKKK;SBIW Rdl,K;Вычесть непосредственное значение из слова
1001000ddddd0000zzzzzzzzzzzzzzzz;LDS Rd,z;Загрузить непосредственно из СОЗУ;d=d+16
1001010kkkkk111kkkkkkkkkkkkkkkkk;CALL k;Выполнить длинный вызов подпрограммы;k=addr
1001010kkkkk110kkkkkkkkkkkkkkkkk;JMP k 	Перейти k=addr
1001001rrrrr0000zzzzzzzzzzzzzzzz;STS z,Rr;Загрузить непосредственно в СОЗУ;r=r+16
000111rdddddrrrr;ADC Rd,Rr;Сложить с переносом
000011rdddddrrrr;ADD Rd,Rr;Сложить без переноса
10010110KKddKKKK;ADIW Rd,K;Сложить непосредственное значение со словом;d=24,26,28,30
001000rdddddrrrr;AND Rd,Rr;Выполнить логическое AND
0111KKKKddddKKKK;ANDI Rd,K;Выполнить логическое AND c непосредственным значением;d=d+16
1001010ddddd0101;ASR Rd;Арифметически сдвинуть вправо
100101001sss1000;BCLR s;Очистить флаг
1111100ddddd0bbb;BLD Rd,b;Загрузить T флаг в бит регистра
111101kkkkkkksss;BRBC s,k;Перейти если бит в регистре статуса очищен;k=+-addr
111100kkkkkkksss;BRBS s,k;Перейти если бит в регистре статуса установлен;k=+-addr
111101kkkkkkk000;BRСС k;Перейти если флаг переноса очищен
111100kkkkkkk000;BRCS k;Перейти если флаг переноса установлен
111100kkkkkkk001;BREQ k;Перейти если равно
111101kkkkkkk100;BRGE k;Перейти если больше или равно (с учетом знака)
111101kkkkkkk101;BRHC k;Перейти если флаг полупереноса очищен
111100kkkkkkk101;BRHS k;Перейти если флаг полупереноса установлен
111101kkkkkkk111;BRID k;Перейти если глобальное прерывание запрещено
111100kkkkkkk111;BRIE k;Перейти если глобальное прерывание разрешено
111100kkkkkkk000;BRLO k;Перейти если меньше (без знака)
111100kkkkkkk100;BRLT k;Перейти если меньше чем (со знаком)
111100kkkkkkk010;BRMI k;Перейти если минус
111101kkkkkkk001;BRNE k;Перейти если не равно
111101kkkkkkk010;BRPL k;Перейти если плюс
111101kkkkkkk000;BRSH k;Перейти если равно или больше (без знака)
111101kkkkkkk110;BRTC k;Перейти если флаг T очищен
111100kkkkkkk110;BRTS k;Перейти если флаг T установлен
111101kkkkkkk011;BRVC k;Перейти если переполнение очищено
111100kkkkkkk011;BRVS k;Перейти если переполнение установлено
100101000sss1000;BSET s;Установить флаг
1111101ddddd0bbb;BST Rd,b;Переписать бит из регистра во флаг T
10011000pppppbbb;CBI P,b;Очистить бит в регистре I/O
1001010010001000;CLC;Очистить флаг переноса
1001010011011000;CLH;Очистить флаг полупереноса
1001010011111000;CLI;Очистить флаг глобального прерывания
1001010010101000;CLN;Очистить флаг отрицательного значения
001001rdddddrrrr;EOR Rd,Rr;Выполнить исключающее OR
1001010011001000;CLS;Очистить флаг знака
1001010011101000;CLT;Очистить флаг T
1001010010111000;CLV;Очистить флаг переполнения
1001010010011000;CLZ;Очистить флаг нулевого значения
1001010ddddd0000;COM Rd;Выполнить дополнение до единицы
000101rdddddrrrr;Cp Rd,Rr;Сравнить
0011KKKKddddKKKK;CPI Rd,K;Сравнить c константой;d=d+16
000100rdddddrrrr;CPSE Rd,Rr;Сравнить и пропустить если равно
1100kkkkkkkkkkkk;RJMP k;Перейти относительно;k=+-addr
1001010ddddd1010;DEC Rd;Декрементировать
1001010100001001;ICALL;Вызвать подпрограмму косвенно
1001010000001001;IJMP;Перейти косвенно
10110AAdddddAAAA;IN Rd,P;Загрузить данные из порта I/O в регистр
1001010ddddd0011;INC Rd;Инкрементировать
000000110ddd1rrr;FMUL Rd,Rr;Дробное незнаковое умножение
000000111ddd0rrr;FMULS Rd,Rr;Дробное умножение со знаком
000000111ddd1rrr;FMULSU Rd,Rr;Дробное умножение знакового с незнаковым
1001000ddddd1100;LD Rd,X;Загрузить косвенно через X
1001000ddddd1101;LD Rd,X+;Загрузить косвенно через X
1001000ddddd1110;LD Rd,-X;Загрузить косвенно через X
1000000ddddd1000;LD Rd,Y;Загрузить косвенно через Y
1001000ddddd1001;LD Rd,Y+;Загрузить косвенно через Y
1001000ddddd1010;LD Rd,-Y;Загрузить косвенно через Y
10q0qq0ddddd1qqq;LD Rd,Y+q;Загрузить косвенно через Y
1000000ddddd0000;LD Rd,Z;Загрузить косвенно через Y
1001000ddddd0001;LD Rd,Z+;Загрузить косвенно через Y
1001000ddddd0010;LD Rd,-Z;Загрузить косвенно через Y
10q0qq0ddddd0qqq;LD Rd,Z+q;Загрузить косвенно через Y
1110KKKKddddKKKK;LDI Rd,K;Загрузить непосредственное значение;d=d+16
1001010111001000;LPM;Загрузить байт памяти программ
1001000ddddd0100;LPM Rd,Z;Загрузить байт памяти программ
1001000ddddd0101;LPM Rd,Z+;Загрузить байт памяти программ
000011dddddddddd;LSL Rd;Логически сдвинуть влево
1001010ddddd0110;LSR Rd;Логически сдвинуть вправо
001011rdddddrrrr;MOV Rd,Rr;Копировать регистр
00000010ddddrrrr;MULS Rd,Rr;Перемножить;d=d+16,r=r+16
100111rdddddrrrr;MUL Rd,Rr;Перемножить
1001010ddddd0001;NEG Rd;Выполнить дополнение до двух
0000000000000000;NOP;Выполнить холостую команду
001010rdddddrrrr;OR Rd,Rr;Выполнить логическое OR
0110KKKKddddKKKK;ORI Rd,K;Выполнить логическое OR с непосредственным значением;d=d+16
10111AArrrrrAAAA;OUT A,Rr;Записать данные из регистра в порт I/O
1001000ddddd1111;POP Rd;Загрузить регистр из стека
1001001ddddd1111;PUSH Rd;Поместить регистр в стек
1101kkkkkkkkkkkk;RCALL k;Вызвать подпрограмму относительно;k=+-addr
1001010100001000;RET;Вернуться из подпрограммы;dbstop
1001010100011000;RETI;Вернуться из прерывания;dbstop
1100kkkkkkkkkkkk;RJMP k;Перейти относительно;k=+-addr
000111dddddddddd;ROL Rd;Сдвинуть влево через перенос
1001010ddddd0111;ROR Rd;Сдвинуть вправо через перенос
000010rdddddrrrr;SBC Rd,Rr;Вычесть с переносом
0100KKKKddddKKKK;SBCI Rd,K;Вычесть непосредственное значение с переносом;d=d+16
10011010pppppbbb;SBI P,b;Установить бит в регистр I/O
10011001pppppbbb;SBIC P,b;Пропустить если бит в регистре I/O очищен
10011011pppppbbb;SBIS P,b;Пропустить если бит в регистре I/O установлен
0110KKKKddddKKKK;SBR Rd,K;Установить биты в регистре;d=d+16
1111110rrrrr0bbb;SBRC Rr,b;Пропустить если бит в регистре очищен
1111111rrrrr0bbb;SBRS Rr,b;Пропустить если бит в регистре установлен
1001010000001000;SEC;Установить флаг переноса
1001010001011000;SEH;Установить флаг полупереноса
1001010001111000;SEI;Установить флаг глобального прерывания
1001010000101000;SEN;Установить флаг отрицательного значения
11101111dddd1111;SER Rd;Установить все биты регистра;d=d+16
0101KKKKddddKKKK;SUBI Rd,K; Вычесть константу;d=d+16
1001010001001000;SES;Установить флаг знака
1001010001101000;SET;Установить флаг T
1001010000111000;SEV;Установить флаг переполнения
1001010000011000;SEZ;Установить флаг нулевого значения
1001010110001000;SLEEP;Установить режим SLEEP
1001001rrrrr1100;ST X,Rr;Записать косвенно через X
1001001rrrrr1101;ST X+,Rr;Записать косвенно через X
1001001rrrrr1110;ST -X,Rr;Записать косвенно через X
1000001rrrrr1000;ST Y,Rr;Записать косвенно через Y
1001001rrrrr1001;ST Y+,Rr;Записать косвенно через Y
1001001rrrrr1010;ST -Y,Rr;Записать косвенно через Y
10q0qq1rrrrr1qqq;ST Y+q,Rr;Записать косвенно через Y
1000001rrrrr0000;ST Y,Rr;Записать косвенно через Z
1001001rrrrr0001;ST Y+,Rr;Записать косвенно через Z
1001001rrrrr0010;ST -Y,Rr;Записать косвенно через Z
10q0qq1rrrrr0qqq;ST Y+q,Rr;Записать косвенно через Z
000110rdddddrrrr;SUB Rd,Rr;Вычесть без переноса
0101KKKKddddKKKK;SUB Rd,K;Вычесть непосредственное значение
1001010ddddd0010;SWAP Rd;Поменять нибблы местами
001000dddddddddd;TST Rd;Проверить на ноль или минус
1001010110101000;WDR;Сбросить сторожевой таймер
00000001ddddrrrr;MOVW Rd,Rr; Копировать слово 

