home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
AmigActive 13
/
AACD13.ISO
/
AACD
/
Programming
/
Atmel
/
Asm
/
src
/
machine.c
< prev
next >
Wrap
C/C++ Source or Header
|
2000-08-22
|
8KB
|
131 lines
#include <stdio.h>
#include "struct.h"
struct ACode InternCodes[] = {
{ "ADD" ,"Rd,Rr" ,"000011rdddddrrrr", "N"},
{ "ADC" ,"Rd,Rr" ,"000111rdddddrrrr", "N"},
{ "ADIW" ,"Rdl,K" ,"10010110KKddKKKK", "U"},
{ "SUB" ,"Rd,Rr" ,"000110rdddddrrrr", "N"},
{ "SUBI" ,"Rd,K" ,"0101KKKKddddKKKK", "S"},
{ "SBIW" ,"Rdl,K" ,"10010111KKddKKKK", "U"},
{ "SBC" ,"Rd,Rr" ,"000010rdddddrrrr", "N"},
{ "SBCI" ,"Rd,K" ,"0100KKKKddddKKKK", "S"},
{ "AND" ,"Rd,Rr" ,"001000rdddddrrrr", "N"},
{ "ANDI" ,"Rd,K" ,"0111KKKKddddKKKK", "S"},
{ "OR" ,"Rd,Rr" ,"001010rdddddrrrr", "N"},
{ "ORI" ,"Rd,K" ,"0110KKKKddddKKKK", "S"},
{ "EOR" ,"Rd,Rr" ,"001001rdddddrrrr", "N"},
{ "COM" ,"Rd" ,"1001010ddddd0000", "N"},
{ "NEG" ,"Rd" ,"1001010ddddd0001", "N"},
{ "SBR" ,"Rd,K" ,"0110KKKKddddKKKK", "S"},
{ "CBR" ,"Rd,K" ,"0111!K!K!K!Kdddd!K!K!K!K", "S"},
{ "INC" ,"Rd" ,"1001010ddddd0011", "N"},
{ "DEC" ,"Rd" ,"1001010ddddd1010", "N"},
{ "TST" ,"Rd" ,"0000000000000000", "AAND"},
{ "CLR" ,"Rd" ,"0000000000000000", "AEOR"},
{ "SER" ,"Rd" ,"11101111dddd1111", "S"},
{ "RJMP" ,"k" ,"1100kkkkkkkkkkkk", "L"},
{ "IJMP" ,"-" ,"10010100XXXX1001", "N"},
{ "RCALL" ,"k" ,"1101kkkkkkkkkkkk", "L"},
{ "ICALL" ,"-" ,"10010101XXXX1001", "N"},
{ "RET" ,"-" ,"100101010XX01000", "N"},
{ "RETI" ,"-" ,"100101010XX11000", "N"},
{ "CPSE" ,"Rd,Rr" ,"000100rdddddrrrr", "N"},
{ "CP" ,"Rd,Rr" ,"000101rdddddrrrr", "N"},
{ "CPC" ,"Rd,Rr" ,"000001rdddddrrrr", "N"},
{ "CPI" ,"Rd,K" ,"0011KKKKddddKKKK", "S"},
{ "SBRC" ,"Rr,b" ,"1111110rrrrrXbbb", "N"},
{ "SBRS" ,"Rr,b" ,"1111111rrrrrXbbb", "N"},
{ "SBIC" ,"P,b" ,"10011001PPPPPbbb", "N"},
{ "SBIS" ,"P,b" ,"10011011PPPPPbbb", "N"},
{ "BRBS" ,"s,k" ,"111100kkkkkkksss", "R"},
{ "BRBC" ,"s,k" ,"111101kkkkkkksss", "R"},
{ "BREQ" ,"k" ,"111100kkkkkkk001", "R"},
{ "BRNE" ,"k" ,"111101kkkkkkk001", "R"},
{ "BRCS" ,"k" ,"111100kkkkkkk000", "R"},
{ "BRCC" ,"k" ,"111101kkkkkkk000", "R"},
{ "BRSH" ,"k" ,"111101kkkkkkk000", "R"},
{ "BRLO" ,"k" ,"111100kkkkkkk000", "R"},
{ "BRMI" ,"k" ,"111100kkkkkkk010", "R"},
{ "BRPL" ,"k" ,"111101kkkkkkk010", "R"},
{ "BRGE" ,"k" ,"111101kkkkkkk100", "R"},
{ "BRLT" ,"k" ,"111100kkkkkkk100", "R"},
{ "BRHS" ,"k" ,"111100kkkkkkk101", "R"},
{ "BRHC" ,"k" ,"111101kkkkkkk101", "R"},
{ "BRTS" ,"k" ,"111100kkkkkkk110", "R"},
{ "BRTC" ,"k" ,"111101kkkkkkk110", "R"},
{ "BRVS" ,"k" ,"111100kkkkkkk011", "R"},
{ "BRVC" ,"k" ,"111101kkkkkkk011", "R"},
{ "BRIE" ,"k" ,"111100kkkkkkk111", "R"},
{ "BRID" ,"k" ,"111101kkkkkkk111", "R"},
{ "MOV" ,"Rd,Rr" ,"001011rdddddrrrr", "N"},
{ "LDI" ,"Rd,K" ,"1110KKKKddddKKKK", "S"},
{ "LD" ,"Rd,X" ,"1001000ddddd1100", "N"},
{ "LD" ,"Rd,X+" ,"1001000ddddd1101", "N"},
{ "LD" ,"Rd,-X" ,"1001000ddddd1110", "N"},
{ "LD" ,"Rd,Y" ,"1000000ddddd1000", "N"},
{ "LD" ,"Rd,Y+" ,"1001000ddddd1001", "N"},
{ "LD" ,"Rd,-Y" ,"1001000ddddd1010", "N"},
{ "LDD" ,"Rd,Y+q" ,"10q0qq0ddddd1qqq", "N"},
{ "LD" ,"Rd,Z" ,"1000000ddddd0000", "N"},
{ "LD" ,"Rd,Z+" ,"1001000ddddd0001", "N"},
{ "LD" ,"Rd,-Z" ,"1001000ddddd0010", "N"},
{ "LDD" ,"Rd,Z+q" ,"10q0qq0ddddd0qqq", "N"},
{ "LDS" ,"Rd,k" ,"1001000ddddd0000kkkkkkkkkkkkkkkk", "N"},
{ "ST" ,"X,Rr" ,"1001001rrrrr1100", "N"},
{ "ST" ,"X+,Rr" ,"1001001rrrrr1101", "N"},
{ "ST" ,"-X,Rr" ,"1001001rrrrr1110", "N"},
{ "ST" ,"Y,Rr" ,"1000001rrrrr1000", "N"},
{ "ST" ,"Y+,Rr" ,"1001001rrrrr1001", "N"},
{ "ST" ,"-Y,Rr" ,"1001001rrrrr1010", "N"},
{ "STD" ,"Y+q,Rr" ,"10q0qq1rrrrr1qqq", "N"},
{ "ST" ,"Z,Rr" ,"1000001rrrrr0000", "N"},
{ "ST" ,"Z+,Rr" ,"1001001rrrrr0001", "N"},
{ "ST" ,"-Z,Rr" ,"1001001rrrrr0010", "N"},
{ "STD" ,"Z+q,Rr" ,"10q0qq1rrrrr0qqq", "N"},
{ "STS" ,"k,Rr" ,"1001001rrrrr0000kkkkkkkkkkkkkkkk", "N"},
{ "LPM" ,"-" ,"10010101110X1000", "N"},
{ "IN" ,"Rd,P" ,"10110PPdddddPPPP", "N"},
{ "OUT" ,"P,Rr" ,"10111PPrrrrrPPPP", "N"},
{ "PUSH" ,"Rr" ,"1001001rrrrr1111", "N"},
{ "POP" ,"Rd" ,"1001000ddddd1111", "N"},
{ "SBI" ,"P,b" ,"10011010PPPPPbbb", "N"},
{ "CBI" ,"P,b" ,"10011000PPPPPbbb", "N"},
{ "LSL" ,"Rd" ,"0000000000000000", "AADD"},
{ "LSR" ,"Rd" ,"1001010ddddd0110", "N"},
{ "ROL" ,"Rd" ,"0000000000000000", "AADC"},
{ "ROR" ,"Rd" ,"1001010ddddd0111", "N"},
{ "ASR" ,"Rd" ,"1001010ddddd0101", "N"},
{ "SWAP" ,"Rd" ,"1001010ddddd0010", "N"},
{ "BSET" ,"s" ,"100101000sss1000", "N"},
{ "BCLR" ,"s" ,"100101001sss1000", "N"},
{ "BST" ,"Rr,b" ,"1111101rrrrrXbbb", "N"},
{ "BLD" ,"Rd,b" ,"1111100ddddd0bbb", "N"},
{ "SEC" ,"-" ,"1001010000001000", "N"},
{ "CLC" ,"-" ,"1001010010001000", "N"},
{ "SEN" ,"-" ,"1001010000101000", "N"},
{ "CLN" ,"-" ,"1001010010101000", "N"},
{ "SEZ" ,"-" ,"1001010000011000", "N"},
{ "CLZ" ,"-" ,"1001010010011000", "N"},
{ "SEI" ,"-" ,"1001010001111000", "N"},
{ "CLI" ,"-" ,"1001010011111000", "N"},
{ "SES" ,"-" ,"1001010001001000", "N"},
{ "CLS" ,"-" ,"1001010011001000", "N"},
{ "SEV" ,"-" ,"1001010000111000", "N"},
{ "CLV" ,"-" ,"1001010010111000", "N"},
{ "SET" ,"-" ,"1001010001101000", "N"},
{ "CLT" ,"-" ,"1001010011101000", "N"},
{ "SEH" ,"-" ,"1001010001011000", "N"},
{ "CLH" ,"-" ,"1001010011011000", "N"},
{ "NOP" ,"-" ,"0000000000000000", "N"},
{ "SLEEP" ,"-" ,"10010101100X1000", "N"},
{ "WDR" ,"-" ,"10010101101X1000", "N"},
{ NULL, NULL, NULL, NULL }
/*
**{ "CALL" ,"K" ,"1001010KKKKK111KKKKKKKKKKKKKKKKK", "N"},
**{ "JMP" ,"K" ,"1001010KKKKK110KKKKKKKKKKKKKKKKK", "N"},
**{ "MUL" ,"Rd,Rr" ,"100111rdddddrrrr", "N"},
*/
};