Цитата(Serhiy_UA @ Apr 3 2009, 20:36)

Советую выбрать 20 команд из системы команд AVR. Хоть там их больше сотни, но для некоторых простых алгоритмов хватит и 20 команд...
Реально у АВР как раз около 20 команд, это маркетологи раздули число мнемоник
Ниже таблица всех(вроде) команд AT90S1200 - для моего первого ассемблера. Для своих первых софт-процессоров я просто менял эту таблицу - без переделки программы.
Код
;AT90S1200
0001 11sd dddd ssss : ADC Rddddd,Rsssss;
0000 11sd dddd ssss : ADD Rddddd,Rsssss;
0010 00sd dddd ssss : AND Rddddd,Rsssss;
0111 kkkk dddd kkkk : AND R1dddd,kkkkkkkk;
1001 010d dddd 0101 : ASR Rddddd;
0001 01sd dddd ssss : CMP Rddddd,Rsssss;
0011 kkkk dddd kkkk : CMP R1dddd,kkkkkkkk;
1001 010d dddd 0000 : COM Rddddd;
0000 01sd dddd ssss : CPC Rddddd,Rsssss;
1001 010d dddd 1010 : DEC Rddddd;
1001 010d dddd 0011 : INC Rddddd;
1100 kkkk kkkk kkkk : JMP @kkkkkkkkkkkk;
1111 01kk kkkk ksss : JMP(Fsss=0)@kkkkkkk;
1111 00kk kkkk ksss : JMP(Fsss=1)@kkkkkkk;
1101 kkkk kkkk kkkk : JSR @kkkkkkkkkkkk;
1001 010d dddd 0110 : LSR Rddddd;
1001 0100 1ddd 1000 : MOV Fddd,0;
1001 0100 0ddd 1000 : MOV Fddd,1;
1000 001d dddd 0000 : MOV @R11110,Rddddd;
1000 000d dddd 0000 : MOV Rddddd,@R11110;
0010 11sd dddd ssss : MOV Rddddd,Rsssss;
1001 1000 dddd dsss : MOV P0ddddd.sss,0;
1001 1010 dddd dsss : MOV P0ddddd.sss,1;
1011 1ssd dddd ssss : MOV Pssssss,Rddddd;
1011 0ssd dddd ssss : MOV Rddddd,Pssssss;
1111 101d dddd xsss : MOV F110,Rddddd.sss;
1111 100d dddd 0sss : MOV Rddddd.sss,F110;
1110 kkkk dddd kkkk : MOV R1dddd,kkkkkkkk;
1001 010d dddd 0001 : NEG Rddddd;
0000 0000 0000 0000 : NOP;
0010 10sd dddd ssss : OR Rddddd,Rsssss;
0110 kkkk dddd kkkk : OR R1dddd,kkkkkkkk;
1001 010d dddd 0111 : ROR Rddddd;
1001 0101 0xx1 1000 : RTI;
1001 0101 0xx0 1000 : RTS;
0000 10sd dddd ssss : SBC Rddddd,Rsssss;
0100 kkkk dddd kkkk : SBC R1dddd,kkkkkkkk;
1001 1001 dddd dsss : SKP(P0ddddd.sss=0);
1001 1011 dddd dsss : SKP(P0ddddd.sss=1);
1111 110d dddd xsss : SKP(Rddddd.sss=0);
1111 111d dddd xsss : SKP(Rddddd.sss=1);
0001 00sd dddd ssss : SKP(Rddddd=Rsssss);
1001 0101 100x 1000 : SLP;
0001 10sd dddd ssss : SUB Rddddd,Rsssss;
0101 kkkk dddd kkkk : SUB R1dddd,kkkkkkkk;
1001 010d dddd 0010 : SWP Rddddd;
1001 0101 101x 1000 : WDR;
0010 01sd dddd ssss : XOR Rddddd,Rsssss;
;
Сообщение отредактировал Leka - Apr 3 2009, 18:12