home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 13 / AACD13.ISO / AACD / Programming / Atmel / Asm / src / machine.c < prev    next >
C/C++ Source or Header  |  2000-08-22  |  8KB  |  131 lines

  1. #include <stdio.h>
  2. #include "struct.h"
  3.  
  4. struct ACode InternCodes[] = {
  5. { "ADD"   ,"Rd,Rr"    ,"000011rdddddrrrr",                 "N"},
  6. { "ADC"   ,"Rd,Rr"    ,"000111rdddddrrrr",                 "N"},
  7. { "ADIW"  ,"Rdl,K"    ,"10010110KKddKKKK",                 "U"},
  8. { "SUB"   ,"Rd,Rr"    ,"000110rdddddrrrr",                 "N"},
  9. { "SUBI"  ,"Rd,K"     ,"0101KKKKddddKKKK",                 "S"},
  10. { "SBIW"  ,"Rdl,K"    ,"10010111KKddKKKK",                 "U"},
  11. { "SBC"   ,"Rd,Rr"    ,"000010rdddddrrrr",                 "N"},
  12. { "SBCI"  ,"Rd,K"     ,"0100KKKKddddKKKK",                 "S"},
  13. { "AND"   ,"Rd,Rr"    ,"001000rdddddrrrr",                 "N"},
  14. { "ANDI"  ,"Rd,K"     ,"0111KKKKddddKKKK",                 "S"},
  15. { "OR"    ,"Rd,Rr"    ,"001010rdddddrrrr",                 "N"},
  16. { "ORI"   ,"Rd,K"     ,"0110KKKKddddKKKK",                 "S"},
  17. { "EOR"   ,"Rd,Rr"    ,"001001rdddddrrrr",                 "N"},
  18. { "COM"   ,"Rd"       ,"1001010ddddd0000",                 "N"},
  19. { "NEG"   ,"Rd"       ,"1001010ddddd0001",                 "N"},
  20. { "SBR"   ,"Rd,K"     ,"0110KKKKddddKKKK",                 "S"},
  21. { "CBR"   ,"Rd,K"     ,"0111!K!K!K!Kdddd!K!K!K!K",         "S"},
  22. { "INC"   ,"Rd"       ,"1001010ddddd0011",                 "N"},
  23. { "DEC"   ,"Rd"       ,"1001010ddddd1010",                 "N"},
  24. { "TST"   ,"Rd"       ,"0000000000000000",                 "AAND"},
  25. { "CLR"   ,"Rd"       ,"0000000000000000",                 "AEOR"},
  26. { "SER"   ,"Rd"       ,"11101111dddd1111",                 "S"},
  27. { "RJMP"  ,"k"        ,"1100kkkkkkkkkkkk",                 "L"},
  28. { "IJMP"  ,"-"        ,"10010100XXXX1001",                 "N"},
  29. { "RCALL" ,"k"        ,"1101kkkkkkkkkkkk",                 "L"},
  30. { "ICALL" ,"-"        ,"10010101XXXX1001",                 "N"},
  31. { "RET"   ,"-"        ,"100101010XX01000",                 "N"},
  32. { "RETI"  ,"-"        ,"100101010XX11000",                 "N"},
  33. { "CPSE"  ,"Rd,Rr"    ,"000100rdddddrrrr",                 "N"},
  34. { "CP"    ,"Rd,Rr"    ,"000101rdddddrrrr",                 "N"},
  35. { "CPC"   ,"Rd,Rr"    ,"000001rdddddrrrr",                 "N"},
  36. { "CPI"   ,"Rd,K"     ,"0011KKKKddddKKKK",                 "S"},
  37. { "SBRC"  ,"Rr,b"     ,"1111110rrrrrXbbb",                 "N"},
  38. { "SBRS"  ,"Rr,b"     ,"1111111rrrrrXbbb",                 "N"},
  39. { "SBIC"  ,"P,b"      ,"10011001PPPPPbbb",                 "N"},
  40. { "SBIS"  ,"P,b"      ,"10011011PPPPPbbb",                 "N"},
  41. { "BRBS"  ,"s,k"      ,"111100kkkkkkksss",                 "R"},
  42. { "BRBC"  ,"s,k"      ,"111101kkkkkkksss",                 "R"},
  43. { "BREQ"  ,"k"        ,"111100kkkkkkk001",                 "R"},
  44. { "BRNE"  ,"k"        ,"111101kkkkkkk001",                 "R"},
  45. { "BRCS"  ,"k"        ,"111100kkkkkkk000",                 "R"},
  46. { "BRCC"  ,"k"        ,"111101kkkkkkk000",                 "R"},
  47. { "BRSH"  ,"k"        ,"111101kkkkkkk000",                 "R"},
  48. { "BRLO"  ,"k"        ,"111100kkkkkkk000",                 "R"},
  49. { "BRMI"  ,"k"        ,"111100kkkkkkk010",                 "R"},
  50. { "BRPL"  ,"k"        ,"111101kkkkkkk010",                 "R"},
  51. { "BRGE"  ,"k"        ,"111101kkkkkkk100",                 "R"},
  52. { "BRLT"  ,"k"        ,"111100kkkkkkk100",                 "R"},
  53. { "BRHS"  ,"k"        ,"111100kkkkkkk101",                 "R"},
  54. { "BRHC"  ,"k"        ,"111101kkkkkkk101",                 "R"},
  55. { "BRTS"  ,"k"        ,"111100kkkkkkk110",                 "R"},
  56. { "BRTC"  ,"k"        ,"111101kkkkkkk110",                 "R"},
  57. { "BRVS"  ,"k"        ,"111100kkkkkkk011",                 "R"},
  58. { "BRVC"  ,"k"        ,"111101kkkkkkk011",                 "R"},
  59. { "BRIE"  ,"k"        ,"111100kkkkkkk111",                 "R"},
  60. { "BRID"  ,"k"        ,"111101kkkkkkk111",                 "R"},
  61. { "MOV"   ,"Rd,Rr"    ,"001011rdddddrrrr",                 "N"},
  62. { "LDI"   ,"Rd,K"     ,"1110KKKKddddKKKK",                 "S"},
  63. { "LD"    ,"Rd,X"     ,"1001000ddddd1100",                 "N"},
  64. { "LD"    ,"Rd,X+"    ,"1001000ddddd1101",                 "N"},
  65. { "LD"    ,"Rd,-X"    ,"1001000ddddd1110",                 "N"},
  66. { "LD"    ,"Rd,Y"     ,"1000000ddddd1000",                 "N"},
  67. { "LD"    ,"Rd,Y+"    ,"1001000ddddd1001",                 "N"},
  68. { "LD"    ,"Rd,-Y"    ,"1001000ddddd1010",                 "N"},
  69. { "LDD"   ,"Rd,Y+q"   ,"10q0qq0ddddd1qqq",                 "N"},
  70. { "LD"    ,"Rd,Z"     ,"1000000ddddd0000",                 "N"},
  71. { "LD"    ,"Rd,Z+"    ,"1001000ddddd0001",                 "N"},
  72. { "LD"    ,"Rd,-Z"    ,"1001000ddddd0010",                 "N"},
  73. { "LDD"   ,"Rd,Z+q"   ,"10q0qq0ddddd0qqq",                 "N"},
  74. { "LDS"   ,"Rd,k"     ,"1001000ddddd0000kkkkkkkkkkkkkkkk", "N"},
  75. { "ST"    ,"X,Rr"     ,"1001001rrrrr1100",                 "N"},
  76. { "ST"    ,"X+,Rr"    ,"1001001rrrrr1101",                 "N"},
  77. { "ST"    ,"-X,Rr"    ,"1001001rrrrr1110",                 "N"},
  78. { "ST"    ,"Y,Rr"     ,"1000001rrrrr1000",                 "N"},
  79. { "ST"    ,"Y+,Rr"    ,"1001001rrrrr1001",                 "N"},
  80. { "ST"    ,"-Y,Rr"    ,"1001001rrrrr1010",                 "N"},
  81. { "STD"   ,"Y+q,Rr"   ,"10q0qq1rrrrr1qqq",                 "N"},
  82. { "ST"    ,"Z,Rr"     ,"1000001rrrrr0000",                 "N"},
  83. { "ST"    ,"Z+,Rr"    ,"1001001rrrrr0001",                 "N"},
  84. { "ST"    ,"-Z,Rr"    ,"1001001rrrrr0010",                 "N"},
  85. { "STD"   ,"Z+q,Rr"   ,"10q0qq1rrrrr0qqq",                 "N"},
  86. { "STS"   ,"k,Rr"     ,"1001001rrrrr0000kkkkkkkkkkkkkkkk", "N"},
  87. { "LPM"   ,"-"        ,"10010101110X1000",                 "N"},
  88. { "IN"    ,"Rd,P"     ,"10110PPdddddPPPP",                 "N"},
  89. { "OUT"   ,"P,Rr"     ,"10111PPrrrrrPPPP",                 "N"},
  90. { "PUSH"  ,"Rr"       ,"1001001rrrrr1111",                 "N"},
  91. { "POP"   ,"Rd"       ,"1001000ddddd1111",                 "N"},
  92. { "SBI"   ,"P,b"      ,"10011010PPPPPbbb",                 "N"},
  93. { "CBI"   ,"P,b"      ,"10011000PPPPPbbb",                 "N"},
  94. { "LSL"   ,"Rd"       ,"0000000000000000",                 "AADD"},
  95. { "LSR"   ,"Rd"       ,"1001010ddddd0110",                 "N"},
  96. { "ROL"   ,"Rd"       ,"0000000000000000",                 "AADC"},
  97. { "ROR"   ,"Rd"       ,"1001010ddddd0111",                 "N"},
  98. { "ASR"   ,"Rd"       ,"1001010ddddd0101",                 "N"},
  99. { "SWAP"  ,"Rd"       ,"1001010ddddd0010",                 "N"},
  100. { "BSET"  ,"s"        ,"100101000sss1000",                 "N"},
  101. { "BCLR"  ,"s"        ,"100101001sss1000",                 "N"},
  102. { "BST"   ,"Rr,b"     ,"1111101rrrrrXbbb",                 "N"},
  103. { "BLD"   ,"Rd,b"     ,"1111100ddddd0bbb",                 "N"},
  104. { "SEC"   ,"-"        ,"1001010000001000",                 "N"},
  105. { "CLC"   ,"-"        ,"1001010010001000",                 "N"},
  106. { "SEN"   ,"-"        ,"1001010000101000",                 "N"},
  107. { "CLN"   ,"-"        ,"1001010010101000",                 "N"},
  108. { "SEZ"   ,"-"        ,"1001010000011000",                 "N"},
  109. { "CLZ"   ,"-"        ,"1001010010011000",                 "N"},
  110. { "SEI"   ,"-"        ,"1001010001111000",                 "N"},
  111. { "CLI"   ,"-"        ,"1001010011111000",                 "N"},
  112. { "SES"   ,"-"        ,"1001010001001000",                 "N"},
  113. { "CLS"   ,"-"        ,"1001010011001000",                 "N"},
  114. { "SEV"   ,"-"        ,"1001010000111000",                 "N"},
  115. { "CLV"   ,"-"        ,"1001010010111000",                 "N"},
  116. { "SET"   ,"-"        ,"1001010001101000",                 "N"},
  117. { "CLT"   ,"-"        ,"1001010011101000",                 "N"},
  118. { "SEH"   ,"-"        ,"1001010001011000",                 "N"},
  119. { "CLH"   ,"-"        ,"1001010011011000",                 "N"},
  120. { "NOP"   ,"-"        ,"0000000000000000",                 "N"},
  121. { "SLEEP" ,"-"        ,"10010101100X1000",                 "N"},
  122. { "WDR"   ,"-"        ,"10010101101X1000",                 "N"},
  123. { NULL, NULL, NULL, NULL }
  124. /*
  125. **{ "CALL"  ,"K"        ,"1001010KKKKK111KKKKKKKKKKKKKKKKK", "N"},
  126. **{ "JMP"   ,"K"        ,"1001010KKKKK110KKKKKKKKKKKKKKKKK", "N"},
  127. **{ "MUL"   ,"Rd,Rr"    ,"100111rdddddrrrr",                 "N"},
  128. */
  129. };
  130.  
  131.