home *** CD-ROM | disk | FTP | other *** search
/ messroms.de / 2007-01-13_www.messroms.de.zip / CPU / 8086 < prev    next >
Text File  |  2007-01-13  |  16KB  |  241 lines

  1. ----------------------------------------------------------------
  2. |                                                              |
  3. |                                                              |
  4. |                            Intel                             |
  5. |                                                              |
  6. |             88888      000      88888      666               |
  7. |            8     8    0   0    8     8    6                  |
  8. |            8     8   0   0 0   8     8   6                   |
  9. |             88888    0  0  0    88888    666666              |
  10. |            8     8   0 0   0   8     8   6     6             |
  11. |            8     8    0   0    8     8   6     6             |
  12. |             88888      000      88888     66666              |
  13. |                                                              |
  14. |         8086 MICROPROCESSOR Instruction Set Summary          |
  15. |                                                              |
  16. |                                                              |
  17. |                                                              |
  18. |                                                              |
  19. |                                                              |
  20. |                    _________    _________                    |
  21. |                  _|         \__/         |_                  |
  22. |             GND |_|1                   40|_| Vcc             |
  23. |                  _|                      |_                  |
  24. |       <--> AD14 |_|2                   39|_| AD15 <-->       |
  25. |                  _|                      |_                  |
  26. |       <--> AD13 |_|3                   38|_| A16/S3 -->      |
  27. |                  _|                      |_                  |
  28. |       <--> AD12 |_|4                   37|_| A17/S4 -->      |
  29. |                  _|                      |_                  |
  30. |       <--> AD11 |_|5                   36|_| A18/S5 -->      |
  31. |                  _|                      |_                  |
  32. |       <--> AD10 |_|6                   35|_| A19/S6 -->      |
  33. |                  _|                      |_  ___             |
  34. |        <--> AD9 |_|7                   34|_| BHE/S7 -->      |
  35. |                  _|                      |_     __           |
  36. |        <--> AD8 |_|8                   33|_| MN/MX <--       |
  37. |                  _|                      |_                  |
  38. |        <--> AD7 |_|9                   32|_| RD -->          |
  39. |                  _|                      |_  __ ___          |
  40. |        <--> AD6 |_|10       8086       31|_| RQ/GT0,HOLD <-->|
  41. |                  _|                      |_  __ ___          |
  42. |        <--> AD5 |_|11                  30|_| RQ/GT1,HOLD <-->|
  43. |                  _|                      |_  ____ __         |
  44. |        <--> AD4 |_|12                  29|_| LOCK,WR -->     |
  45. |                  _|                      |_  __   __         |
  46. |        <--> AD3 |_|13                  28|_| S2,M/IO -->     |
  47. |                  _|                      |_  __    _         |
  48. |        <--> AD2 |_|14                  27|_| S1,DT/R -->     |
  49. |                  _|                      |_  __ ___          |
  50. |        <--> AD1 |_|15                  26|_| S0,DEN  -->     |
  51. |                  _|                      |_                  |
  52. |        <--> AD0 |_|16                  25|_| QS0,ALE -->     |
  53. |                  _|                      |_      ____        |
  54. |         --> NMI |_|17                  24|_| QS1,INTA -->    |
  55. |                  _|                      |_  ____            |
  56. |        --> INTR |_|18                  23|_| TEST <--        |
  57. |                  _|                      |_                  |
  58. |         --> CLK |_|19                  22|_| READY <--       |
  59. |                  _|                      |_                  |
  60. |             GND |_|20                  21|_| RESET <--       |
  61. |                   |______________________|                   |
  62. |                                                              |
  63. |                                                              |
  64. |                                                              |
  65. |                                                              |
  66. |                                                              |
  67. |                                                              |
  68. |Written by     Jonathan Bowen                                 |
  69. |               Programming Research Group                     |
  70. |               Oxford University Computing Laboratory         |
  71. |               8-11 Keble Road                                |
  72. |               Oxford OX1 3QD                                 |
  73. |               England                                        |
  74. |                                                              |
  75. |               Tel +44-865-273840                             |
  76. |                                                              |
  77. |Created        October 1982                                   |
  78. |Updated        April 1985                                     |
  79. |Issue          1.3                Copyright (C) J.P.Bowen 1985|
  80. ----------------------------------------------------------------
  81. ----------------------------------------------------------------
  82. |Mnemonic          |ODITSZAPC|Description                      |
  83. |------------------+---------+---------------------------------|
  84. |AAA               |?---??*?*|ASCII Adjust for Add in AX       |
  85. |AAD               |?---**?*?|ASCII Adjust for Divide in AX    |
  86. |AAM               |?---**?*?|ASCII Adjust for Multiply in AX  |
  87. |AAS               |?---??*?*|ASCII Adjust for Subtract in AX  |
  88. |ADC d,s           |*---*****|Add with Carry                   |
  89. |ADD d,s           |*---*****|Add                              |
  90. |AND d,s           |*---**?**|Logical AND                      |
  91. |CALL a            |---------|Call                             |
  92. |CBW               |---------|Convert Byte to Word in AX       |
  93. |CLC               |--------0|Clear Carry                      |
  94. |CLD               |-0-------|Clear Direction                  |
  95. |CLI               |--0------|Clear Interrupt                  |
  96. |CMC               |--------*|Complement Carry                 |
  97. |CMP d,s           |*---*****|Compare                          |
  98. |CMPS              |*---*****|Compare memory at SI and DI      |
  99. |CWD               |---------|Convert Word to Double in AX,DX  |
  100. |DAA               |?---*****|Decimal Adjust for Add in AX     |
  101. |DAS               |?---*****|Decimal Adjust for Subtract in AX|
  102. |DEC d             |*---****-|Decrement                        |
  103. |DIV s             |?---?????|Divide (unsigned) in AX(,DX)     |
  104. |ESC s             |---------|Escape (to external device)      |
  105. |HLT               |---------|Halt                             |
  106. |IDIV s            |?---?????|Divide (signed) in AX(,DX)       |
  107. |IMUL s            |*---????*|Multiply (signed) in AX(,DX)     |
  108. |IN d,p            |---------|Input                            |
  109. |INC d             |*---****-|Increment                        |
  110. |INT               |--00-----|Interrupt                        |
  111. |INTO              |--**-----|Interrupt on Overflow            |
  112. |IRET              |*********|Interrupt Return                 |
  113. |JB/JNAE a         |---------|Jump on Below/Not Above or Equal |
  114. |JBE/JNA a         |---------|Jump on Below or Equal/Not Above |
  115. |JCXZ a            |---------|Jump on CX Zero                  |
  116. |JE/JZ a           |---------|Jump on Equal/Zero               |
  117. |JL/JNGE a         |---------|Jump on Less/Not Greater or Equal|
  118. |JLE/JNG a         |---------|Jump on Less or Equal/Not Greater|
  119. |JMP a             |---------|Unconditional Jump               |
  120. |JNB/JAE a         |---------|Jump on Not Below/Above or Equal |
  121. |JNBE/JA a         |---------|Jump on Not Below or Equal/Above |
  122. |JNE/JNZ a         |---------|Jump on Not Equal/Not Zero       |
  123. |JNL/JGE a         |---------|Jump on Not Less/Greater or Equal|
  124. |JNLE/JG a         |---------|Jump on Not Less or Equal/Greater|
  125. |JNO a             |---------|Jump on Not Overflow             |
  126. |JNP/JPO a         |---------|Jump on Not Parity/Parity Odd    |
  127. |JNS a             |---------|Jump on Not Sign                 |
  128. |JO a              |---------|Jump on Overflow                 |
  129. |JP/JPE a          |---------|Jump on Parity/Parity Even       |
  130. |JS a              |---------|Jump on Sign                     |
  131. |LAHF              |---------|Load AH with 8080 Flags          |
  132. |LDS r,s           |---------|Load pointer to DS               |
  133. |LEA r,s           |---------|Load EA to register              |
  134. |LES r,s           |---------|Load pointer to ES               |
  135. |LOCK              |---------|Bus Lock prefix                  |
  136. |LODS              |---------|Load memory at SI into AX        |
  137. |LOOP a            |---------|Loop CX times                    |
  138. |LOOPNZ/LOOPNE a   |---------|Loop while Not Zero/Not Equal    |
  139. |LOOPZ/LOOPE a     |---------|Loop while Zero/Equal            |
  140. |MOV d,s           |---------|Move                             |
  141. |MOVS              |---------|Move memory at SI to DI          |
  142. |MUL s             |*---????*|Multiply (unsigned) in AX(,DX)   |
  143. |NEG d             |*---*****|Negate                           |
  144. |NOP               |---------|No Operation (= XCHG AX,AX)      |
  145. |NOT d             |---------|Logical NOT                      |
  146. |OR d,s            |*---**?**|Logical inclusive OR             |
  147. |OUT p,s           |---------|Output                           |
  148. |POP d             |---------|Pop                              |
  149. |POPF              |*********|Pop Flags                        |
  150. |PUSH s            |---------|Push                             |
  151. |PUSHF             |---------|Push Flags                       |
  152. |RCL d,c           |*-------*|Rotate through Carry Left        |
  153. |RCR d,c           |*-------*|Rotate through Carry Right       |
  154. |REP/REPNE/REPNZ   |---------|Repeat/Repeat Not Equal/Not Zero |
  155. |REPE/REPZ         |---------|Repeat Equal/Zero                |
  156. |RET (s)           |---------|Return from call                 |
  157. |ROL d,c           |-------- |Rotate Left                      |
  158. |ROR d,c           |*-------*|Rotate Right                     |
  159. |SAHF              |----*****|Store AH into 8080 Flags         |
  160. ----------------------------------------------------------------
  161. ----------------------------------------------------------------
  162. |Mnemonic          |ODITSZAPC|Description                      |
  163. |------------------+---------+---------------------------------|
  164. |SAR d,c           |*---**?**|Shift Arithmetic Right           |
  165. |SBB d,s           |*---*****|Subtract with Borrow             |
  166. |SCAS              |*---*****|Scan memory at DI compared to AX |
  167. |SEG r             |---------|Segment register                 |
  168. |SHL/SAL d,c       |*---**?**|Shift logical/Arithmetic Left    |
  169. |SHR d,c           |*---**?**|Shift logical Right              |
  170. |STC               |--------1|Set Carry                        |
  171. |STD               |-0-------|Set Direction                    |
  172. |STI               |--0------|Set Interrupt                    |
  173. |STOS              |---------|Store AX into memory at DI       |
  174. |SUB d,s           |*---*****|Subtract                         |
  175. |TEST d,s          |*---**?**|AND function to flags            |
  176. |WAIT              |---------|Wait                             |
  177. |XCHG r(,d)        |---------|Exchange                         |
  178. |XLAT              |---------|Translate byte to AL             |
  179. |XOR d,s           |*---**?**|Logical Exclusive OR             |
  180. |------------------+---------+---------------------------------|
  181. |                  |-*01?    |Unaff/affected/reset/set/unknown |
  182. | OF               |O        |Overflow Flag (Bit 11)           |
  183. | DF               | D       |Direction Flag (Bit 10)          |
  184. | IF               |  I      |Interrupt enable Flag (Bit 9)    |
  185. | TF               |   T     |Trap Flag (Bit 8)                |
  186. | SF               |    S    |Sign Flag (Bit 7)                |
  187. | ZF               |     Z   |Zero Flag (Bit 6)                |
  188. | AF               |      A  |Auxilary carry Flag (Bit 4)      |
  189. | PF               |       P |Parity Flag (Bit 2)              |
  190. | CF               |        C|Carry Flag (Bit 0)               |
  191. |------------------+-------------------------------------------|
  192. |ALIGN             |Align to word boundary                     |
  193. |ASSUME sr:sy(,...)|Assume segment register name(s)            |
  194. |ASSUME NOTHING    |Remove all former assumptions              |
  195. |DB     e(,...)    |Define Byte(s)                             |
  196. |DBS    e          |Define Byte Storage                        |
  197. |DD     e(,...)    |Define Double Word(s)                      |
  198. |DDS    e          |Define Double Word Storage                 |
  199. |DW     e(,...)    |Define Word(s)                             |
  200. |DWS    e          |Define Word Storage                        |
  201. |EXT    (sr:)sy(t) |External(s)(t=ABS/BYTE/DWORD/FAR/NEAR/WORD)|
  202. |LABEL  t          |Label          (t=BYTE/DWORD/FAR/NEAR/WORD)|
  203. |PROC   t          |Procedure        (t=FAR/NEAR, default NEAR)|
  204. |------------------+-------------------------------------------|
  205. | ABS              |Absolute value of operand                  |
  206. | BYTE             |Byte type operation                        |
  207. | DWORD            |Double Word operation                      |
  208. | FAR              |IP and CS registers altered                |
  209. | HIGH             |High-order 8 bits of 16-bit value          |
  210. | LENGTH           |Number of basic units                      |
  211. | LOW              |Low-order 8 bit of 16-bit value            |
  212. | NEAR             |Only IP register need be altered           |
  213. | OFFSET           |Offset portion of an address               |
  214. | PTR              |Create a variable or label                 |
  215. | SEG              |Segment of address                         |
  216. | SHORT            |One byte for a JMP operation               |
  217. | SIZE             |Number of bytes defined by statement       |
  218. | THIS             |Create a variable/label of specified type  |
  219. | TYPE             |Number of bytes in the unit defined        |
  220. | WORD             |Word operation                             |
  221. |------------------+-------------------------------------------|
  222. | AX BX CX DX      |Accumulator/Base/Count/Data registers      |
  223. | AL BL CL DL      |Low byte of general registers              |
  224. | AH BH CH DH      |High byte of general registers             |
  225. | SP BP            |Stack/Base Pointer registers               |
  226. | SI DI            |Source/Destination Index registers         |
  227. | CS DS SS ES      |Code/Data/Stack/Extra Segment registers    |
  228. | IP               |Instruction Pointer register               |
  229. |------------------+-------------------------------------------|
  230. | a                |Address                                    |
  231. | c                |Count                                      |
  232. | d                |Destination                                |
  233. | e                |Expression or string                       |
  234. | p                |I/O port                                   |
  235. | r                |Register                                   |
  236. | s                |Source                                     |
  237. | sr               |Segment register (CS,DS,SS,ES)             |
  238. | sy               |Symbol                                     |
  239. | t                |Type of symbol                             |
  240. ----------------------------------------------------------------
  241.