home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / PARASOL / DISAM86.ARK / DIS86LBL.TBL < prev    next >
Text File  |  1986-10-07  |  8KB  |  236 lines

  1. {-------------------------------------------------------------
  2. {    lookup tables for instructions
  3. {
  4. {    format:
  5. {        byte    value to mask input-byte with;
  6. {        byte    value to compare against after masking
  7. {        byte    op-code type
  8. {        string    op-code mnemonic
  9. {-------------------------------------------------------------
  10.  
  11. set        v    =    value;
  12. set        s    =    string;
  13. set        b    =    byte;
  14.  
  15. record    lookup.tbl;
  16. b v ^hff; b v ^h06; b v 01; s 11 v 'push~09~es';
  17. b v ^hff; b v ^h07; b v 01; s 11 v 'pop~09~es';
  18. b v ^hff; b v ^h0e; b v 01; s 11 v 'push~09~cs';
  19. b v ^hff; b v ^h16; b v 01; s 11 v 'push~09~ss';
  20. b v ^hff; b v ^h17; b v 01; s 11 v 'pop~09~ss';
  21. b v ^hff; b v ^h1e; b v 01; s 11 v 'push~09~ds';
  22. b v ^hff; b v ^h1f; b v 01; s 11 v 'pop~09~ds';
  23. b v ^hff; b v ^h26; b v 02; s 11 v 'es';
  24. b v ^hff; b v ^h27; b v 01; s 11 v 'daa';
  25. b v ^hff; b v ^h2e; b v 02; s 11 v 'cs';
  26. b v ^hff; b v ^h2f; b v 01; s 11 v 'das';
  27. b v ^hff; b v ^h36; b v 02; s 11 v 'ss';
  28. b v ^hff; b v ^h37; b v 01; s 11 v 'aaa';
  29. b v ^hff; b v ^h3e; b v 02; s 11 v 'ds';
  30. b v ^hff; b v ^h3f; b v 01; s 11 v 'aas';
  31. b v ^hff; b v ^h40; b v 01; s 11 v 'inc~09~ax';
  32. b v ^hff; b v ^h41; b v 01; s 11 v 'inc~09~cx';
  33. b v ^hff; b v ^h42; b v 01; s 11 v 'inc~09~dx';
  34. b v ^hff; b v ^h43; b v 01; s 11 v 'inc~09~bx';
  35. b v ^hff; b v ^h44; b v 01; s 11 v 'inc~09~sp';
  36. b v ^hff; b v ^h45; b v 01; s 11 v 'inc~09~bp';
  37. b v ^hff; b v ^h46; b v 01; s 11 v 'inc~09~si';
  38. b v ^hff; b v ^h47; b v 01; s 11 v 'inc~09~di';
  39. b v ^hff; b v ^h48; b v 01; s 11 v 'dec~09~ax';
  40. b v ^hff; b v ^h49; b v 01; s 11 v 'dec~09~cx';
  41. b v ^hff; b v ^h4a; b v 01; s 11 v 'dec~09~dx';
  42. b v ^hff; b v ^h4b; b v 01; s 11 v 'dec~09~bx';
  43. b v ^hff; b v ^h4c; b v 01; s 11 v 'dec~09~sp';
  44. b v ^hff; b v ^h4d; b v 01; s 11 v 'dec~09~bp';
  45. b v ^hff; b v ^h4e; b v 01; s 11 v 'dec~09~si';
  46. b v ^hff; b v ^h4f; b v 01; s 11 v 'dec~09~di';
  47. b v ^hff; b v ^h50; b v 01; s 11 v 'push~09~ax';
  48. b v ^hff; b v ^h51; b v 01; s 11 v 'push~09~cx';
  49. b v ^hff; b v ^h52; b v 01; s 11 v 'push~09~dx';
  50. b v ^hff; b v ^h53; b v 01; s 11 v 'push~09~bx';
  51. b v ^hff; b v ^h54; b v 01; s 11 v 'push~09~sp';
  52. b v ^hff; b v ^h55; b v 01; s 11 v 'push~09~bp';
  53. b v ^hff; b v ^h56; b v 01; s 11 v 'push~09~si';
  54. b v ^hff; b v ^h57; b v 01; s 11 v 'push~09~di';
  55. b v ^hff; b v ^h58; b v 01; s 11 v 'pop~09~ax';
  56. b v ^hff; b v ^h59; b v 01; s 11 v 'pop~09~cx';
  57. b v ^hff; b v ^h5a; b v 01; s 11 v 'pop~09~dx';
  58. b v ^hff; b v ^h5b; b v 01; s 11 v 'pop~09~bx';
  59. b v ^hff; b v ^h5c; b v 01; s 11 v 'pop~09~sp';
  60. b v ^hff; b v ^h5d; b v 01; s 11 v 'pop~09~bp';
  61. b v ^hff; b v ^h5e; b v 01; s 11 v 'pop~09~si';
  62. b v ^hff; b v ^h5f; b v 01; s 11 v 'pop~09~di';
  63. b v ^hff; b v ^h70; b v 03; s 11 v 'jo';
  64. b v ^hff; b v ^h71; b v 03; s 11 v 'jno';
  65. b v ^hff; b v ^h72; b v 03; s 11 v 'jc';
  66. b v ^hff; b v ^h73; b v 03; s 11 v 'jnc';
  67. b v ^hff; b v ^h74; b v 03; s 11 v 'jz';
  68. b v ^hff; b v ^h75; b v 03; s 11 v 'jnz';
  69. b v ^hff; b v ^h76; b v 03; s 11 v 'jna';
  70. b v ^hff; b v ^h77; b v 03; s 11 v 'ja';
  71. b v ^hff; b v ^h78; b v 03; s 11 v 'js';
  72. b v ^hff; b v ^h79; b v 03; s 11 v 'jns';
  73. b v ^hff; b v ^h7a; b v 03; s 11 v 'jpe';
  74. b v ^hff; b v ^h7b; b v 03; s 11 v 'jpo';
  75. b v ^hff; b v ^h7c; b v 03; s 11 v 'jl';
  76. b v ^hff; b v ^h7d; b v 03; s 11 v 'jnl';
  77. b v ^hff; b v ^h7e; b v 03; s 11 v 'jng';
  78. b v ^hff; b v ^h7f; b v 03; s 11 v 'jg';
  79. b v ^hff; b v ^h90; b v 01; s 11 v 'nop';
  80. b v ^hff; b v ^h91; b v 01; s 11 v 'xchg~09~ax,cx';
  81. b v ^hff; b v ^h92; b v 01; s 11 v 'xchg~09~ax,dx';
  82. b v ^hff; b v ^h93; b v 01; s 11 v 'xchg~09~ax,bx';
  83. b v ^hff; b v ^h94; b v 01; s 11 v 'xchg~09~ax,sp';
  84. b v ^hff; b v ^h95; b v 01; s 11 v 'xchg~09~ax,bp';
  85. b v ^hff; b v ^h96; b v 01; s 11 v 'xchg~09~ax,si';
  86. b v ^hff; b v ^h97; b v 01; s 11 v 'xchg~09~ax,di';
  87. b v ^hff; b v ^h98; b v 01; s 11 v 'cbw';
  88. b v ^hff; b v ^h99; b v 01; s 11 v 'cwd';
  89. b v ^hff; b v ^h9b; b v 01; s 11 v 'wait';
  90. b v ^hff; b v ^h9c; b v 01; s 11 v 'pushf';
  91. b v ^hff; b v ^h9d; b v 01; s 11 v 'popf';
  92. b v ^hff; b v ^h9e; b v 01; s 11 v 'sahf';
  93. b v ^hff; b v ^h9f; b v 01; s 11 v 'lahf';
  94. b v ^hff; b v ^hc3; b v 01; s 11 v 'ret';
  95. b v ^hff; b v ^hcb; b v 01; s 11 v 'ret~09~far';
  96. b v ^hff; b v ^hcc; b v 01; s 11 v 'int3';
  97. b v ^hff; b v ^hce; b v 01; s 11 v 'into';
  98. b v ^hff; b v ^hcf; b v 01; s 11 v 'iret';
  99. b v ^hff; b v ^hd7; b v 01; s 11 v 'xlat~09~bx';
  100. b v ^hff; b v ^hec; b v 01; s 11 v 'in~09~al,dx';
  101. b v ^hff; b v ^hed; b v 01; s 11 v 'in~09~ax,dx';
  102. b v ^hff; b v ^hee; b v 01; s 11 v 'out~09~dx,al';
  103. b v ^hff; b v ^hef; b v 01; s 11 v 'out~09~dx,ax';
  104. b v ^hff; b v ^hf1; b v 28; s 11 v 'lock';
  105. b v ^hff; b v ^hf2; b v 28; s 11 v 'repnz';
  106. b v ^hff; b v ^hf3; b v 28; s 11 v 'repz';
  107. b v ^hff; b v ^hf4; b v 01; s 11 v 'hlt';
  108. b v ^hff; b v ^hf5; b v 01; s 11 v 'cmc';
  109. b v ^hff; b v ^hf8; b v 01; s 11 v 'clc';
  110. b v ^hff; b v ^hf9; b v 01; s 11 v 'stc';
  111. b v ^hff; b v ^hfa; b v 01; s 11 v 'cli';
  112. b v ^hff; b v ^hfb; b v 01; s 11 v 'sti';
  113. b v ^hff; b v ^hfc; b v 01; s 11 v 'cld';
  114. b v ^hff; b v ^hfd; b v 01; s 11 v 'std';
  115. b v ^hc4; b v ^h00; b v 05; s 11 v 'basic-op';
  116. b v ^hc6; b v ^h04; b v 06; s 11 v 'basic-op';
  117. b v ^hfc; b v ^h80; b v 07; s 11 v 'basic-op';
  118. b v ^hfe; b v ^h84; b v 09; s 11 v 'test';
  119. b v ^hfe; b v ^h86; b v 09; s 11 v 'xchg';
  120. b v ^hfc; b v ^h88; b v 10; s 11 v 'mov';
  121. b v ^hff; b v ^h8c; b v 12; s 11 v 'mov';
  122. b v ^hff; b v ^h8d; b v 11; s 11 v 'lea';
  123. b v ^hff; b v ^h8e; b v 12; s 11 v 'mov';
  124. b v ^hff; b v ^h8f; b v 13; s 11 v 'pop';
  125. b v ^hff; b v ^h9a; b v 14; s 11 v 'call~09~far';
  126. b v ^hfc; b v ^ha0; b v 15; s 11 v 'mov';
  127. b v ^hfe; b v ^ha4; b v 16; s 11 v 'movs';
  128. b v ^hfe; b v ^ha6; b v 16; s 11 v 'cmps';
  129. b v ^hfe; b v ^ha8; b v 17; s 11 v 'test';
  130. b v ^hfe; b v ^haa; b v 16; s 11 v 'stos';
  131. b v ^hfe; b v ^hac; b v 16; s 11 v 'lods';
  132. b v ^hfe; b v ^hae; b v 16; s 11 v 'scas';
  133. b v ^hf0; b v ^hb0; b v 18; s 11 v 'mov';
  134. b v ^hff; b v ^hc2; b v 19; s 11 v 'ret';
  135. b v ^hff; b v ^hc4; b v 29; s 11 v 'les';
  136. b v ^hff; b v ^hc5; b v 29; s 11 v 'lds';
  137. b v ^hfe; b v ^hc6; b v 20; s 11 v 'mov';
  138. b v ^hff; b v ^hca; b v 19; s 11 v 'ret~09~far';
  139. b v ^hff; b v ^hcd; b v 21; s 11 v 'int';
  140. b v ^hfc; b v ^hd0; b v 22; s 11 v 'shift-op';
  141. b v ^hff; b v ^hd4; b v 23; s 11 v 'aam';
  142. b v ^hff; b v ^hd5; b v 23; s 11 v 'aad';
  143. b v ^hf8; b v ^hd8; b v 24; s 11 v 'esc';
  144. b v ^hff; b v ^he0; b v 03; s 11 v 'loopnz';
  145. b v ^hff; b v ^he1; b v 03; s 11 v 'loopz';
  146. b v ^hff; b v ^he2; b v 03; s 11 v 'loop';
  147. b v ^hff; b v ^he3; b v 03; s 11 v 'jcxz';
  148. b v ^hfe; b v ^he4; b v 17; s 11 v 'in';
  149. b v ^hfe; b v ^he6; b v 17; s 11 v 'out';
  150. b v ^hff; b v ^he8; b v 25; s 11 v 'call';
  151. b v ^hff; b v ^he9; b v 25; s 11 v 'jmp';
  152. b v ^hff; b v ^hea; b v 14; s 11 v 'jmp~09~far';
  153. b v ^hff; b v ^heb; b v 03; s 11 v 'jmp~09~short';
  154. b v ^hfe; b v ^hf6; b v 26; s 11 v 'ext-op';
  155. b v ^hfe; b v ^hfe; b v 27; s 11 v 'misc-op';
  156. endrec;
  157.  
  158. byte    lookup.end;
  159.  
  160.  
  161.  
  162. record    basic.op.tbl;
  163.     s    basic.op.entry    4    value    'add';
  164.     s                    4    value    'or';
  165.     s                    4    value    'adc';
  166.     s                    4    value    'sbb';
  167.     s                    4    value    'and';
  168.     s                    4    value    'sub';
  169.     s                    4    value    'xor';
  170.     s                    4    value    'cmp';
  171.     endrec;
  172.  
  173. record    f6.f7.op.tbl;
  174.     s    f6.f7.op.entry    5    value    'test';
  175.     s                    5    value    '***';
  176.     s                    5    value    'not';
  177.     s                    5    value    'neg';
  178.     s                    5    value    'mul';
  179.     s                    5    value    'imul';
  180.     s                    5    value    'div';
  181.     s                    5    value    'idiv';
  182.     endrec;
  183.  
  184.  
  185. record    shift.ops;
  186.     s    shift.op.entry    4    value    'rol';
  187.     s                    4    value    'ror';
  188.     s                    4    value    'rcl';
  189.     s                    4    value    'rcr';
  190.     s                    4    value    'shl';
  191.     s                    4    value    'shr';
  192.     s                    4    value    '***';    {--sal = shl--}
  193.     s                    4    value    'sar';
  194.     endrec;
  195.  
  196.  
  197. record    reg.name.tbl;
  198.     s    reg.name.entry    3    value    'al';
  199.     s                    3    value    'cl';
  200.     s                    3    value    'dl';
  201.     s                    3    value    'bl';
  202.     s                    3    value    'ah';
  203.     s                    3    value    'ch';
  204.     s                    3    value    'dh';
  205.     s                    3    value    'bh';
  206.     s                    3    value    'ax';
  207.     s                    3    value    'cx';
  208.     s                    3    value    'dx';
  209.     s                    3    value    'bx';
  210.     s                    3    value    'sp';
  211.     s                    3    value    'bp';
  212.     s                    3    value    'si';
  213.     s                    3    value    'di';
  214.     endrec;
  215.  
  216.  
  217. record    seg.reg.tbl;
  218.     s    seg.reg.entry    3    value    'es';
  219.     s                    3    value    'cs';
  220.     s                    3    value    'ss';
  221.     s                    3    value    'ds';
  222.     endrec;
  223.  
  224.  
  225. record    mod.r.m.txt.tbl;
  226.     s    mod.r.m.txt.entry    9    value    '[bx+si]';
  227.     s                        9    value    '[bx+di]';
  228.     s                        9    value    '[bp+si]';
  229.     s                        9    value    '[bp+di]';
  230.     s                        9    value    '[si]';
  231.     s                        9    value    '[di]';
  232.     s                        9    value    '[bp]';
  233.     s                        9    value    '[bx]';
  234.     endrec;
  235.  
  236.