home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Software / Vyzkuste / Hackman / _SETUP.1 / opcodes.dat < prev    next >
Text File  |  2000-09-30  |  55KB  |  877 lines

  1. 00     / r ADD r/m8'r8 Add r8 to r/m8
  2. 01     / r ADD r/m16'r16 Add r16 to r/m16
  3. 01     / r ADD r/m32'r32 Add r32 to r/m32
  4. 02     / r ADD r8'r/m8 Add r/m8 to r8
  5. 03     / r ADD r16'r/m16 Add r/m16 to r16
  6. 03     / r ADD r32'r/m32 Add r/m32 to r32
  7. 04     ib ADD AL' imm8 Add imm8 to AL
  8. 05     iw ADD AX' imm16 Add imm16 to AX
  9. 05     id ADD EAX' imm32 Add imm32 to EAX
  10. 06     PUSH ES Push ES
  11. 07     "POP ES Pop top of stack into ES; increment stack pointer"
  12. 08     / r OR r/m8'r8 r/m8 OR r8
  13. 09     / r OR r/m16'r16 r/m16 OR r16
  14. 09     / r OR r/m32'r32 r/m32 OR r32
  15. 0A     / r OR r8'r/m8 r8 OR r/m8
  16. 0B     / r OR r16'r/m16 r16 OR r/m16
  17. 0B     / r OR r32'r/m32 r32 OR r/m32
  18. 0C     ib OR AL' imm8 AL OR imm8
  19. 0D     iw OR AX' imm16 AX OR imm16
  20. 0D     id OR EAX' imm32 EAX OR imm32
  21. 0E     PUSH CS Push CS
  22. 0F00     /2 LLDT r/m16 Load segment selector r/m16 into LDTR
  23. 0F00     /3 LTR r/m16 Load r/m16 into task register
  24. 0F00     /0 SLDT r/m16 Stores segment selector from LDTR in r/m16
  25. 0F00     /0 SLDT r/m32 Store segment selector from LDTR in low-order 16 bits of r/m32
  26. 0F00     /1 STR r/m16 Stores segment selector from TR in r/m16
  27. 0F00     /4 VERR r/m16 Set ZF=1 if segment specified with r/m16 can be read
  28. 0F00     /5 VERW r/m16 Set ZF=1 if segment specified with r/m16 can be written
  29. 0F01    /7 INVLPG m Invalidate TLB Entry for page that contains m
  30. 0F01     /2 LGDT m16&32 Load m into GDTR
  31. 0F01     /3 LIDT m16&32 Load m into IDTR
  32. 0F01     /6 LMSW r/m16 Loads r/m16 in machine status word of CR0
  33. 0F01     /0 SGDT m Store GDTR to m
  34. 0F01     /1 SIDT m Store IDTR to m
  35. 0F01     /4 SMSW r/m16 Store machine status word to r/m16
  36. 0F01     "/4 SMSW r32/m16 Store machine status word in low-order 16 bits of r32/m16; high-order 16 bits of r32 are undefined"
  37. 0F02     / r LAR r16'r/m16 r16 ¼ r/m16 masked by FF00H
  38. 0F02     / r LAR r32'r/m32 r32 ¼ r/m32 masked by 00FxFF00H
  39. 0F03     / r LSL r16'r/m16 Load: r16 ¼ segment limit' selector r/m16
  40. 0F03     / r LSL r32'r/m32 Load: r32 ¼ segment limit' selector r/m32)
  41. 0F06    CLTS Clears TS flag in CR0
  42. 0F08     "INVD Flush internal caches; initiate flushing of external caches."
  43. 0F09     "WBINVD Write back and flush Internal caches; initiate writing-back and flushing of external caches."
  44. 0F0B     UD2 Raise invalid opcode exception
  45. 0F30     WRMSR Write the value in EDX:EAX to MSR specified by ECX
  46. 0F31     RDTSC Read time-stamp counter into EDX:EAX
  47. 0F32     RDMSR Load MSR specified by ECX into EDX:EAX
  48. 0F33     RDPMC Read performance-monitoring counter specified by ECX into EDX:EAX
  49. 0F40     /r CMOVO r16' r/m16 Move if overflow (OF=0)
  50. 0F40     /r CMOVO r32' r/m32 Move if overflow (OF=0)
  51. 0F41     /r CMOVNO r16' r/m16 Move if not overflow (OF=0)
  52. 0F41     /r CMOVNO r32' r/m32 Move if not overflow (OF=0)
  53. 0F42     /r CMOVB r16' r/m16 Move if below (CF=1)
  54. 0F42     /r CMOVB r32' r/m32 Move if below (CF=1)
  55. 0F42     /r CMOVC r16' r/m16 Move if carry (CF=1)
  56. 0F42     /r CMOVC r32' r/m32 Move if carry (CF=1)
  57. 0F42     /r CMOVNAE r16' r/m16 Move if not above or equal (CF=1)
  58. 0F42     /r CMOVNAE r32' r/m32 Move if not above or equal (CF=1)
  59. 0F43     /r CMOVAE r16' r/m16 Move if above or equal (CF=0)
  60. 0F43     /r CMOVAE r32' r/m32 Move if above or equal (CF=0)
  61. 0F43     /r CMOVNB r16' r/m16 Move if not below (CF=0)
  62. 0F43     /r CMOVNB r32' r/m32 Move if not below (CF=0)
  63. 0F43     /r CMOVNC r16' r/m16 Move if not carry (CF=0)
  64. 0F43     /r CMOVNC r32' r/m32 Move if not carry (CF=0)
  65. 0F44     /r CMOVE r16' r/m16 Move if equal (ZF=1)
  66. 0F44     /r CMOVE r32' r/m32 Move if equal (ZF=1)
  67. 0F44     /r CMOVZ r16' r/m16 Move if zero (ZF=1)
  68. 0F44     /r CMOVZ r32' r/m32 Move if zero (ZF=1)
  69. 0F45     /r CMOVNE r16' r/m16 Move if not equal (ZF=0)
  70. 0F45     /r CMOVNE r32' r/m32 Move if not equal (ZF=0)
  71. 0F45     /r CMOVNZ r16' r/m16 Move if not zero (ZF=0)
  72. 0F45     /r CMOVNZ r32' r/m32 Move if not zero (ZF=0)
  73. 0F46     /r CMOVBE r16' r/m16 Move if below or equal (CF=1 or ZF=1)
  74. 0F46     /r CMOVBE r32' r/m32 Move if below or equal (CF=1 or ZF=1)
  75. 0F46     /r CMOVNA r16' r/m16 Move if not above (CF=1 or ZF=1)
  76. 0F46     /r CMOVNA r32' r/m32 Move if not above (CF=1 or ZF=1)
  77. 0F47     /r CMOVA r16' r/m16 Move if above (CF=0 and ZF=0)
  78. 0F47     /r CMOVA r32' r/m32 Move if above (CF=0 and ZF=0)
  79. 0F47     /r CMOVNBE r16' r/m16 Move if not below or equal (CF=0 and ZF=0)
  80. 0F47     /r CMOVNBE r32' r/m32 Move if not below or equal (CF=0 and ZF=0)
  81. 0F48     /r CMOVS r16' r/m16 Move if sign (SF=1)
  82. 0F48     /r CMOVS r32' r/m32 Move if sign (SF=1)
  83. 0F49     /r CMOVNS r16' r/m16 Move if not sign (SF=0)
  84. 0F49     /r CMOVNS r32' r/m32 Move if not sign (SF=0)
  85. 0F4A     /r CMOVP r16' r/m16 Move if parity (PF=1)
  86. 0F4A     /r CMOVP r32' r/m32 Move if parity (PF=1)
  87. 0F4A     /r CMOVPE r16' r/m16 Move if parity even (PF=1)
  88. 0F4A     /r CMOVPE r32' r/m32 Move if parity even (PF=1)
  89. 0F4B     /r CMOVNP r16' r/m16 Move if not parity (PF=0)
  90. 0F4B     /r CMOVNP r32' r/m32 Move if not parity (PF=0)
  91. 0F4B     /r CMOVPO r16' r/m16 Move if parity odd (PF=0)
  92. 0F4B     /r CMOVPO r32' r/m32 Move if parity odd (PF=0)
  93. 0F4C     /r CMOVL r16' r/m16 Move if less (SF<>OF)
  94. 0F4C     /r CMOVL r32' r/m32 Move if less (SF<>OF)
  95. 0F4C     /r CMOVNGE r16' r/m16 Move if not greater or equal (SF<>OF)
  96. 0F4C     /r CMOVNGE r32' r/m32 Move if not greater or equal (SF<>OF)
  97. 0F4D     /r CMOVGE r16' r/m16 Move if greater or equal (SF=OF)
  98. 0F4D     /r CMOVGE r32' r/m32 Move if greater or equal (SF=OF)
  99. 0F4D     /r CMOVNL r16' r/m16 Move if not less (SF=OF)
  100. 0F4D     /r CMOVNL r32' r/m32 Move if not less (SF=OF)
  101. 0F4E     /r CMOVLE r16' r/m16 Move if less or equal (ZF=1 or SF<>OF)
  102. 0F4E     /r CMOVLE r32' r/m32 Move if less or equal (ZF=1 or SF<>OF)
  103. 0F4E     /r CMOVNG r16' r/m16 Move if not greater (ZF=1 or SF<>OF)
  104. 0F4E     /r CMOVNG r32' r/m32 Move if not greater (ZF=1 or SF<>OF)
  105. 0F4F     /r CMOVG r16' r/m16 Move if greater (ZF=0 and SF=OF)
  106. 0F4F     /r CMOVG r32' r/m32 Move if greater (ZF=0 and SF=OF)
  107. 0F4F     /r CMOVNLE r16' r/m16 Move if not less or equal (ZF=0 and SF=OF)
  108. 0F4F     /r CMOVNLE r32' r/m32 Move if not less or equal (ZF=0 and SF=OF)
  109. 0F60     /r PUNPCKLBW mm' mm/m32 Interleave low-order bytes from mm and mm/m64 into mm.
  110. 0F61     /r PUNPCKLWD mm' mm/m32 Interleave low-order words from mm and mm/m64 into mm.
  111. 0F62     /r PUNPCKLDQ mm' mm/m32 Interleave low-order doublewords from mm and mm/m64 into mm.
  112. 0F63     /r PACKSSWB mm'mm/m64 Packs and saturate pack 4 signed words from mm and 4 signed words from mm/m64 into 8 signed bytes in mm.
  113. 0F64     /r PCMPGTB mm' mm/m64 Compare packed bytes in mm with packed bytes in mm/m64 for greater value.
  114. 0F65     /r PCMPGTW mm' mm/m64 Compare packed words in mm with packed words in mm/m64 for greater value.
  115. 0F66     /r PCMPGTD mm' mm/m64 Compare packed doublewords in mm with packed doublewords in mm/m64 for greater value.
  116. 0F67     /r PACKUSWB mm' mm/m64 Pack and saturate 4 signed words from mm and 4 signed words from mm/m64 into 8 unsigned bytes in mm.
  117. 0F68     /r PUNPCKHBW mm' mm/m64 Interleave high-order bytes from mm and mm/m64 into mm.
  118. 0F69     /r PUNPCKHWD mm' mm/m64 Interleave high-order words from mm and mm/m64 into mm.
  119. 0F6A     /r PUNPCKHDQ mm' mm/m64 Interleave high-order doublewords from mm and mm/m64 into mm.
  120. 0F6B     /r PACKSSDW mm'mm/m64 Pack and saturate 2 signed doublewords from mm and 2 signed doublewords from mm/m64 into 4 signed words in mm.
  121. 0F6E     /r MOVD mm' r/m32 Move doubleword from r/m32 to mm.
  122. 0F6F     /r MOVQ mm' mm/m64 Move quadword from mm/m64 to mm.
  123. 0F71    /6' ib PSLLW mm' imm8 Shift words in mm left by imm8' while shifting in zeros.
  124. 0F71     /4 ib PSRAW mm' imm8 Shift words in mm right by imm8 while shifting in sign bits
  125. 0F71     /2 ib PSRLW mm' imm8 Shift words in mm right by imm8.
  126. 0F72     /6 ib PSLLD mm' imm8 Shift doublewords in mm by imm8' while shifting in zeros.
  127. 0F72     /4 ib PSRAD mm' imm8 Shift doublewords in mm right by imm8 while shifting in sign bits.
  128. 0F72     /2 ib PSRLD mm' imm8 Shift doublewords in mm right by imm8.
  129. 0F73     /6 ib PSLLQ mm' imm8 Shift mm left by Imm8' while shifting in zeros.
  130. 0F73     /2 ib PSRLQ mm' imm8 Shift mm right by imm8 while shifting in zeros.
  131. 0F77     EMMS Set the FP tag word to empty.
  132. 0F7E     /r MOVD r/m32' mm Move doubleword from mm to r/m32.
  133. 0F7F     /r MOVQ mm/m64' mm Move quadword from mm to mm/m64.
  134. 0F80     cw/cd JO rel16/32 Jump near if overflow (OF=1)
  135. 0F81     cw/cd JNO rel16/32 Jump near if not overflow (OF=0)
  136. 0F82     cw/cd JB rel16/32 Jump near if below (CF=1)
  137. 0F82     cw/cd JC rel16/32 Jump near if carry (CF=1)
  138. 0F82     cw/cd JNAE rel16/32 Jump near if not above or equal (CF=1)
  139. 0F83     cw/cd JAE rel16/32 Jump near if above or equal (CF=0)
  140. 0F83     cw/cd JNB rel16/32 Jump near if not below (CF=0)
  141. 0F83     cw/cd JNC rel16/32 Jump near if not carry (CF=0)
  142. 0F84     cw/cd JE rel16/32 Jump near if equal (ZF=1)
  143. 0F84     cw/cd JZ rel16/32 Jump near if 0 (ZF=1)
  144. 0F84     cw/cd JZ rel16/32 Jump near if 0 (ZF=1)
  145. 0F85     cw/cd JNE rel16/32 Jump near if not equal (ZF=0)
  146. 0F85     cw/cd JNZ rel16/32 Jump near if not zero (ZF=0)
  147. 0F86     cw/cd JBE rel16/32 Jump near if below or equal (CF=1 or ZF=1)
  148. 0F86     cw/cd JNA rel16/32 Jump near if not above (CF=1 or ZF=1)
  149. 0F87     cw/cd JA rel16/32 Jump near if above (CF=0 and ZF=0)
  150. 0F87     cw/cd JNBE rel16/32 Jump near if not below or equal (CF=0 and ZF=0)
  151. 0F88     cw/cd JS rel16/32 Jump near if sign (SF=1)
  152. 0F89     cw/cd JNS rel16/32 Jump near if not sign (SF=0)
  153. 0F8A     cw/cd JP rel16/32 Jump near if parity (PF=1)
  154. 0F8A     cw/cd JPE rel16/32 Jump near if parity even (PF=1)
  155. 0F8B     cw/cd JNP rel16/32 Jump near if not parity (PF=0)
  156. 0F8B     cw/cd JPO rel16/32 Jump near if parity odd (PF=0)
  157. 0F8C     cw/cd JL rel16/32 Jump near if less (SF<>OF)
  158. 0F8C     cw/cd JNGE rel16/32 Jump near if not greater or equal (SF<>OF)
  159. 0F8D     cw/cd JGE rel16/32 Jump near if greater or equal (SF=OF)
  160. 0F8D     cw/cd JNL rel16/32 Jump near if not less (SF=OF)
  161. 0F8E     cw/cd JLE rel16/32 Jump near if less or equal (ZF=1 or SF<>OF)
  162. 0F8E     cw/cd JNG rel16/32 Jump near if not greater (ZF=1 or SF<>OF)
  163. 0F8F     cw/cd JG rel16/32 Jump near if greater (ZF=0 and SF=OF)
  164. 0F8F     cw/cd JNLE rel16/32 Jump near if not less or equal (ZF=0 and SF=OF)
  165. 0F90     SETO r/m8 Set byte if overflow (OF=1)
  166. 0F91     SETNO r/m8 Set byte if not overflow (OF=0)
  167. 0F92     SETB r/m8 Set byte if below (CF=1)
  168. 0F92     SETC r/m8 Set if carry (CF=1)
  169. 0F92     SETNAE r/m8 Set byte if not above or equal (CF=1)
  170. 0F93     SETAE r/m8 Set byte if above or equal (CF=0)
  171. 0F93     SETNB r/m8 Set byte if not below (CF=0)
  172. 0F93     SETNC r/m8 Set byte if not carry (CF=0)
  173. 0F94     SETE r/m8 Set byte if equal (ZF=1)
  174. 0F94     SETZ r/m8 Set byte if zero (ZF=1)
  175. 0F95     SETNE r/m8 Set byte if not equal (ZF=0)
  176. 0F95     SETNZ r/m8 Set byte if not zero (ZF=0)
  177. 0F96     SETBE r/m8 Set byte if below or equal (CF=1 or ZF=1)
  178. 0F96     SETNA r/m8 Set byte if not above (CF=1 or ZF=1)
  179. 0F97     SETA r/m8 Set byte if above (CF=0 and ZF=0)
  180. 0F97     SETNBE r/m8 Set byte if not below or equal (CF=0 and ZF=0)
  181. 0F98     SETS r/m8 Set byte if sign (SF=1)
  182. 0F99     SETNS r/m8 Set byte if not sign (SF=0)
  183. 0F9A     SETP r/m8 Set byte if parity (PF=1)
  184. 0F9A     SETPE r/m8 Set byte if parity even (PF=1)
  185. 0F9B     SETNP r/m8 Set byte if not parity (PF=0)
  186. 0F9B     SETPO r/m8 Set byte if parity odd (PF=0)
  187. 0F9C     SETL r/m8 Set byte if less (SF<>OF)
  188. 0F9C     SETNGE r/m8 Set if not greater or equal (SF<>OF)
  189. 0F9D     SETGE r/m8 Set byte if greater or equal (SF=OF)
  190. 0F9D     SETNL r/m8 Set byte if not less (SF=OF)
  191. 0F9E     SETLE r/m8 Set byte if less or equal (ZF=1 or SF<>OF)
  192. 0F9E     SETNG r/m8 Set byte if not greater (ZF=1 or SF<>OF)
  193. 0F9F     SETG r/m8 Set byte if greater (ZF=0 and SF=OF)
  194. 0F9F     SETNLE r/m8 Set byte if not less or equal (ZF=0 and SF=OF)
  195. 0FA0     PUSH FS Push FS
  196. 0FA1     "POP FS Pop top of stack into FS; increment stack pointer"
  197. 0FA2     CPUID
  198. 0FA3     BT r/m16'r16 Store selected bit in CF flag
  199. 0FA3     BT r/m32'r32 Store selected bit in CF flag
  200. 0FA4     SHLD r/m16'r16'imm8 Shift r/m16 to left imm8 places while shifting bits from r16 in from the right
  201. 0FA4     SHLD r/m32'r32'imm8 Shift r/m32 to left imm8 places while shifting bits from r32 in from the right
  202. 0FA5     SHLD r/m16'r16'CL Shift r/m16 to left CL places while shifting bits from r16 in from the right
  203. 0FA5     SHLD r/m32'r32'CL Shift r/m32 to left CL places while shifting bits from r32 in from the right
  204. 0FA8     PUSH GS Push GS
  205. 0FA9     "POP GS Pop top of stack into GS; increment stack pointer"
  206. 0FAA     RSM Resume operation of interrupted program
  207. 0FAB     BTS r/m16'r16 Store selected bit in CF flag and set
  208. 0FAB     BTS r/m32'r32 Store selected bit in CF flag and set
  209. 0FAC     SHRD r/m16'r16'imm8 Shift r/m16 to right imm8 places while shifting bits from r16 in from the left
  210. 0FAC     SHRD r/m32'r32'imm8 Shift r/m32 to right imm8 places while shifting bits from r32 in from the left
  211. 0FAD     SHRD r/m16'r16'CL Shift r/m16 to right CL places while shifting bits from r16 in from the left
  212. 0FAD     SHRD r/m32'r32'CL Shift r/m32 to right CL places while shifting bits from r32 in from the left
  213. 0FAF     / r IMUL r16'r/m16 word register ¼ word register * r/m word
  214. 0FAF     / r IMUL r32'r/m32 doubleword register ¼ doubleword register * r/m doubleword
  215. 0FB0    / r CMPXCHG r/m8'r8 Compare AL with r/m8. If equal' ZF is set and r8 is loaded into r/m8. Else' clear ZF and load r/m8 into AL.
  216. 0FB1    / r CMPXCHG r/m16'r16 Compare AX with r/m16. If equal' ZF is set and r16 is loaded into r/m16. Else' clear ZF and load r/m16 into AL.
  217. 0FB1    / r CMPXCHG r/m32'r32 Compare EAX with r/m32. If equal' ZF is set and r32 is loaded into r/m32. Else' clear ZF and load r/m32 into AL.
  218. 0FB2     / r LSS r16'm16:16 Load SS: r16 with far pointer from memory
  219. 0FB2     / r LSS r32'm16:32 Load SS: r32 with far pointer from memory
  220. 0FB3     BTR r/m16'r16 Store selected bit in CF flag and clear
  221. 0FB3     BTR r/m32'r32 Store selected bit in CF flag and clear
  222. 0FB4     / r LFS r16'm16:16 Load FS: r16 with far pointer from memory
  223. 0FB4     / r LFS r32'm16:32 Load FS: r32 with far pointer from memory
  224. 0FB5     / r LGS r16'm16:16 Load GS: r16 with far pointer from memory
  225. 0FB5     / r LGS r32'm16:32 Load GS: r32 with far pointer from memory
  226. 0FB6    / r MOVZX r32'r/m8 Move byte to doubleword' zero-extension
  227. 0FB6     / r MOVZX r16'r/m8 Move byte to word with zero-extension
  228. 0FB7     / r MOVZX r32'r/m16 Move word to doubleword' zero-extension
  229. 0FBA     /4 ib BT r/m16'imm8 Store selected bit in CF flag
  230. 0FBA     /4 ib BT r/m32'imm8 Store selected bit in CF flag
  231. 0FBA     /7 ib BTC r/m16'imm8 Store selected bit in CF flag and complement
  232. 0FBA     /7 ib BTC r/m32'imm8 Store selected bit in CF flag and complement
  233. 0FBA     /6 ib BTR r/m16'imm8 Store selected bit in CF flag and clear
  234. 0FBA     /6 ib BTR r/m32'imm8 Store selected bit in CF flag and clear
  235. 0FBA     /5 ib BTS r/m16'imm8 Store selected bit in CF flag and set
  236. 0FBA     /5 ib BTS r/m32'imm8 Store selected bit in CF flag and set
  237. 0FBB     BTC r/m16'r16 Store selected bit in CF flag and complement
  238. 0FBB     BTC r/m32'r32 Store selected bit in CF flag and complement
  239. 0FBC     BSF r16'r/m16 Bit scan forward on r/m16
  240. 0FBC     BSF r32'r/m32 Bit scan forward on r/m32
  241. 0FBD     BSR r16'r/m16 Bit scan reverse on r/m16
  242. 0FBD     BSR r32'r/m32 Bit scan reverse on r/m32
  243. 0FBE     / r MOVSX r16'r/m8 Move byte to word with sign-extension
  244. 0FBE     / r MOVSX r32'r/m8 Move byte to doubleword' sign-extension
  245. 0FBF     / r MOVSX r32'r/m16 Move word to doubleword' sign-extension
  246. 0FC0    "/r XADD r/m8'r8 Exchange r8 and r/m8; load sum into r/m8."
  247. 0FC1    "/r XADD r/m16'r16 Exchange r16 and r/m16; load sum into r/m16."
  248. 0FC1    "/r XADD r/m32'r32 Exchange r32 and r/m32; load sum into r/m32."
  249. 0FC7     /1 m64 CMPXCHG8B m64 Compare EDX:EAX with m64. If equal' set ZF and load ECX:EBX into m64. Else' clear ZF and load m64 into EDX:EAX.
  250. 0FC8    rd BSWAP r32 Reverses the byte order of a 32-bit register.
  251. 0FD1     /r PSRLW mm' mm/m64 Shift words in mm right by amount specified in mm/m64 while shifting in zeros.
  252. 0FD2     /r PSRLD mm' mm/m64 Shift doublewords in mm right by amount specified in mm/m64 while shifting in zeros.
  253. 0FD3     /r PSRLQ mm' mm/m64 Shift mm right by amount specified in mm/m64 while shifting in zeros.
  254. 0FD5     /r PMULLW mm' mm/m64 Multiply the packed words in mm with the packed words in mm/m64' then store the low-order word of each doubleword result in mm.
  255. 0FD8     /r PSUBUSB mm' mm/m64 Subtract unsigned packed bytes in mm/m64 from unsigned packed bytes in mm and saturate.
  256. 0FD9     /r PSUBUSW mm' mm/m64 Subtract unsigned packed words in mm/m64 from unsigned packed words in mm and saturate.
  257. 0FDB     /r PAND mm' mm/m64 AND quadword from mm/m64 to quadword in mm.
  258. 0FDC     /r PADDUSB mm' mm/m64 Add unsigned packed bytes from mm/m64 to unsigned packed bytes in mm and saturate.
  259. 0FDD     /r PADDUSW mm' mm/m64 Add unsigned packed words from mm/m64 to unsigned packed words in mm and saturate.
  260. 0FDF     /r PANDN mm' mm/m64 AND quadword from mm/m64 to NOT quadword in mm.
  261. 0FE1     /r PSRAW mm' mm/m64 Shift words in mm right by amount specified in mm/m64 while shifting in sign bits.
  262. 0FE2     /r PSRAD mm' mm/m64 Shift doublewords in mm right by amount specified in mm/m64 while shifting in sign bits.
  263. 0FE5     /r PMULHW mm' mm/m64 Multiply the signed packed words in mm by the signed packed words in mm/m64' then store the high-order word of each doubleword result in mm.
  264. 0FE8     /r PSUBSB mm' mm/m64 Subtract signed packed bytes in mm/m64 from signed packed bytes in mm and saturate.
  265. 0FE9     /r PSUBSW mm' mm/m64 Subtract signed packed words in mm/m64 from signed packed words in mm and saturate.
  266. 0FEB     /r POR mm' mm/m64 OR quadword from mm/m64 to quadword in mm.
  267. 0FEC     /r PADDSB mm' mm/m64 Add signed packed bytes from mm/m64 to signed packed bytes in mm and saturate.
  268. 0FED     /r PADDSW mm' mm/m64 Add signed packed words from mm/m64 to signed packed words in mm and saturate.
  269. 0FEF     /r PXOR mm' mm/m64 XOR quadword from mm/m64 to quadword in mm.
  270. 0FF1     /r PSLLW mm' mm/m64 Shift words in mm left by amount specified in mm/m64' while shifting in zeros.
  271. 0FF2     /r PSLLD mm' mm/m64 Shift doublewords in mm left by amount specified in mm/m64' while shifting in zeros.
  272. 0FF3     /r PSLLQ mm' mm/m64 Shift mm left by amount specified in mm/m64' while shifting in zeros.
  273. 0FF5     /r PMADDWD mm' mm/m64 Multiply the packed words in mm by the packed words in mm/m64. Add the 32-bit pairs of results and store in mm as doubleword
  274. 0FF8     /r PSUBB mm' mm/m64 Subtract packed bytes in mm/m64 from packed bytes in mm.
  275. 0FF9     /r PSUBW mm' mm/m64 Subtract packed words in mm/m64 from packed words in mm.
  276. 0FFA     /r PSUBD mm' mm/m64 Subtract packed doublewords in mm/m64 from packed doublewords in mm.
  277. 0FFC     /r PADDB mm' mm/m64 Add packed bytes from mm/m64 to packed bytes in mm.
  278. 0FFD     /r PADDW mm' mm/m64 Add packed words from mm/m64 to packed words in mm.
  279. 0FFE     /r PADDD mm' mm/m64 Add packed doublewords from mm/m64 to packed doublewords in mm.
  280. 10     / r ADC r/m8'r8 Add with carry byte register to r/m8
  281. 11     / r ADC r/m16'r16 Add with carry r16 to r/m16
  282. 11     / r ADC r/m32'r32 Add with CF r32 to r/m32
  283. 12     / r ADC r8'r/m8 Add with carry r/m8 to byte register
  284. 13     / r ADC r16'r/m16 Add with carry r/m16 to r16
  285. 13     / r ADC r32'r/m32 Add with CF r/m32 to r32
  286. 14     ib ADC AL' imm8 Add with carry imm8 to AL
  287. 15     iw ADC AX' imm16 Add with carry imm16 to AX
  288. 15     id ADC EAX' imm32 Add with carry imm32 to EAX
  289. 16     PUSH SS Push SS
  290. 17     "POP SS Pop top of stack into SS; increment stack pointer"
  291. 18     / r SBB r/m8'r8 Subtract with borrow r8 from r/m8
  292. 19     / r SBB r/m16'r16 Subtract with borrow r16 from r/m16
  293. 19     / r SBB r/m32'r32 Subtract with borrow r32 from r/m32
  294. 1A     / r SBB r8'r/m8 Subtract with borrow r/m8 from r8
  295. 1B     / r SBB r16'r/m16 Subtract with borrow r/m16 from r16
  296. 1B     / r SBB r32'r/m32 Subtract with borrow r/m32 from r32
  297. 1C     ib SBB AL' imm8 Subtract with borrow imm8 from AL
  298. 1D     iw SBB AX' imm16 Subtract with borrow imm16 from AX
  299. 1D     id SBB EAX' imm32 Subtract with borrow imm32 from EAX
  300. 1E     PUSH DS Push DS
  301. 1F     "POP DS Pop top of stack into DS; increment stack pointer"
  302. 20     /r AND r/m8'r8 r/m8 AND r8
  303. 21     / r AND r/m16'r16 r/m16 AND r16
  304. 21     / r AND r/m32'r32 r/m32 AND r32
  305. 22     / r AND r8'r/m8 r8 AND r/m8
  306. 23     / r AND r16'r/m16 r16 AND r/m16
  307. 23     / r AND r32'r/m32 r32 AND r/m32
  308. 24     ib AND AL' imm8 AL AND imm8
  309. 25     iw AND AX' imm16 AX AND i mm16
  310. 25     id AND EAX' imm32 EAX AND imm32
  311. 27     DAA Decimal adjust AL after addition
  312. 28     / r SUB r/m8'r8 Subtract r8 from r/m8
  313. 29     / r SUB r/m16'r16 Subtract r16 from r/m16
  314. 29     / r SUB r/m32'r32 Subtract r32 from r/m32
  315. 2A     / r SUB r8'r/m8 Subtract r/m8 from r8
  316. 2B     / r SUB r16'r/m16 Subtract r/m16 from r16
  317. 2B     / r SUB r32'r/m32 Subtract r/m32 from r32
  318. 2C     ib SUB AL' imm8 Subtract imm8 from AL
  319. 2D     iw SUB AX' imm16 Subtract imm16 from AX
  320. 2D     id SUB EAX' imm32 Subtract imm32 from EAX
  321. 2F     DAS Decimal adjust AL after subtraction
  322. 30     / r XOR r/m8'r8 r/m8 XOR r8
  323. 31     / r XOR r/m16'r16 r/m16 XOR r16
  324. 31     / r XOR r/m32'r32 r/m32 XOR r32
  325. 32     / r XOR r8'r/m8 r8 XOR r/m8
  326. 33     / r XOR r16'r/m16 r8 XOR r/m8
  327. 33     / r XOR r32'r/m32 r8 XOR r/m8
  328. 34     ib XOR AL' imm8 AL XOR imm8
  329. 35     iw XOR AX' imm16 AX XOR imm16
  330. 35     id XOR EAX' imm32 EAX XOR imm32
  331. 37    AAA ASCII adjust AL after addition
  332. 38     / r CMP r/m8'r8 Compare r8 with r/m8
  333. 39     / r CMP r/m16'r16 Compare r16 with r/m16
  334. 39     / r CMP r/m32'r32 Compare r32 with r/m32
  335. 3A     / r CMP r8'r/m8 Compare r/m8 with r8
  336. 3B     / r CMP r16'r/m16 Compare r/m16 with r16
  337. 3B     / r CMP r32'r/m32 Compare r/m32 with r32
  338. 3C     ib CMP AL' imm8 Compare imm8 with AL
  339. 3D     iw CMP AX' imm16 Compare imm16 with AX
  340. 3D     id CMP EAX' imm32 Compare imm32 with EAX
  341. 3F     AAS ASCII adjust AL after subtraction
  342. 40    + rw INC r16 Increment word register by 1
  343. 40    + rd INC r32 Increment doubleword register by 1
  344. 48    +rw DEC r16 Decrement r16 by 1
  345. 48    +rd DEC r32 Decrement r32 by 1
  346. 50    + rw PUSH r16 Push r16
  347. 50    + rd PUSH r32 Push r32
  348. 58    "+ rw POP r16 Pop top of stack into r16; increment stack pointer"
  349. 58    "+ rd POP r32 Pop top of stack into r32; increment stack pointer"
  350. 60     PUSHA Push AX' CX' DX' BX' original SP' BP' SI' and DI
  351. 60     PUSHAD Push EAX' ECX' EDX' EBX' original ESP' EBP' ESI' and EDI
  352. 61     POPA Pop DI' SI' BP' BX' DX' CX' and AX
  353. 61     POPAD Pop EDI' ESI' EBP' EBX' EDX' ECX' and EAX
  354. 62     / r BOUND r16'm16&16 Check if r16 (array index) is within bounds specified by m16&16
  355. 62     / r BOUND r32'm32&32 Check if r32 (array index) is within bounds specified by m16&16
  356. 63     / r ARPL r/m16'r16 Adjust RPL of r/m16 to not less than RPL of r16
  357. 68     PUSH imm16 Push imm16
  358. 68     PUSH imm32 Push imm32
  359. 69     / r iw IMUL r16'r/m16'imm16 word register ¼ r/m16 * immediate word
  360. 69     / r id IMUL r32'r/m32'imm32 doubleword register ¼ r/m32 * immediate doubleword
  361. 69     / r iw IMUL r16'imm16 word register ¼ r/m16 * immediate word
  362. 69     / r id IMUL r32'imm32 doubleword register ¼ r/m32 * immediate doubleword
  363. 6A     PUSH imm8 Push imm8
  364. 6B     / r ib IMUL r16'r/m16'imm8 word register ¼ r/m16 * sign-extended immediate byte
  365. 6B     / r ib IMUL r32'r/m32'imm8 doubleword register ¼ r/m32 * sign-extended immediate byte
  366. 6B     / r ib IMUL r16'imm8 word register ¼ word register * sign-extended immediate byte
  367. 6B     / r ib IMUL r32'imm8 doubleword register ¼ doubleword register * sign-extended immediate byte
  368. 6C     INS m8' DX Input byte from I/O port specified in DX into memory location specified in ES:(E)DI
  369. 6C     INSB Input byte from I/O port specified in DX into memory location specified with ES:(E)DI
  370. 6D     INS m16' DX Input word from I/O port specified in DX into memory location specified in ES:(E)DI
  371. 6D     INS m32' DX Input doubleword from I/O port specified in DX into memory location specified in ES:(E)DI
  372. 6D     INSW Input word from I/O port specified in DX into memory location specified in ES:(E)DI
  373. 6D     INSD Input doubleword from I/O port specified in DX into memory location specified in ES:(E)DI
  374. 6E     OUTS DX' m8 Output byte from memory location specified in DS:(E)SI to I/O port specified in DX
  375. 6E     OUTSB Output byte from memory location specified in DS:(E)SI to I/O port specified in DX
  376. 6F     OUTS DX' m16 Output word from memory location specified in DS:(E)SI to I/O port specified in DX
  377. 6F     OUTS DX' m32 Output doubleword from memory location specified in DS:(E)SI to I/O port specified in DX
  378. 6F     OUTSW Output word from memory location specified in DS:(E)SI to I/O port specified in DX
  379. 6F     OUTSD Output doubleword from memory location specified in DS:(E)SI to I/O port specified in DX
  380. 70     cb JO rel8 Jump short if overflow (OF=1)
  381. 71     cb JNO rel8 Jump short if not overflow (OF=0)
  382. 72     cb JB rel8 Jump short if below (CF=1)
  383. 72     cb JC rel8 Jump short if carry (CF=1)
  384. 72     cb JNAE rel8 Jump short if not above or equal (CF=1)
  385. 73     cb JAE rel8 Jump short if above or equal (CF=0)
  386. 73     cb JNB rel8 Jump short if not below (CF=0)
  387. 73     cb JNC rel8 Jump short if not carry (CF=0)
  388. 74     cb JE rel8 Jump short if equal (ZF=1)
  389. 74     cb JZ rel8 Jump short if zero (ZF = 1)
  390. 75     cb JNE rel8 Jump short if not equal (ZF=0)
  391. 75     cb JNZ rel8 Jump short if not zero (ZF=0)
  392. 76     cb JBE rel8 Jump short if below or equal (CF=1 or ZF=1)
  393. 76     cb JNA rel8 Jump short if not above (CF=1 or ZF=1)
  394. 77     cb JA rel8 Jump short if above (CF=0 and ZF=0)
  395. 77     cb JNBE rel8 Jump short if not below or equal (CF=0 and ZF=0)
  396. 78     cb JS rel8 Jump short if sign (SF=1)
  397. 79     cb JNS rel8 Jump short if not sign (SF=0)
  398. 7A     cb JP rel8 Jump short if parity (PF=1)
  399. 7A     cb JPE rel8 Jump short if parity even (PF=1)
  400. 7B     cb JNP rel8 Jump short if not parity (PF=0)
  401. 7B     cb JPO rel8 Jump short if parity odd (PF=0)
  402. 7C     cb JL rel8 Jump short if less (SF<>OF)
  403. 7C     cb JNGE rel8 Jump short if not greater or equal (SF<>OF)
  404. 7D     cb JGE rel8 Jump short if greater or equal (SF=OF)
  405. 7D     cb JNL rel8 Jump short if not less (SF=OF)
  406. 7E     cb JLE rel8 Jump short if less or equal (ZF=1 or SF<>OF)
  407. 7E     cb JNG rel8 Jump short if not greater (ZF=1 or SF<>OF)
  408. 7F     cb JG rel8 Jump short if greater (ZF=0 and SF=OF)
  409. 7F     cb JNLE rel8 Jump short if not less or equal (ZF=0 and SF=OF)
  410. 80     /2 ib ADC r/m8' imm8 Add with carry imm8 to r/m8
  411. 80     /0 ib ADD r/m8'imm8 Add imm8 to r/m8
  412. 80     /4 ib AND r/m8'imm8 r/m8 AND imm8
  413. 80     /7 ib CMP r/m8' imm8 Compare imm8 with r/m8
  414. 80     /1 ib OR r/m8'imm8 r/m8 OR imm8
  415. 80     /3 ib SBB r/m8'imm8 Subtract with borrow imm8 from r/m8
  416. 80     /5 ib SUB r/m8'imm8 Subtract imm8 from r/m8
  417. 80     /6 ib XOR r/m8'imm8 r/m8 XOR imm8
  418. 81    /7 iw CMP r/m16' imm16 Compare imm16 with r/m16
  419. 81     /2 iw ADC r/m16'imm16 Add with carry imm16 to r/m16
  420. 81     /2 id ADC r/m32'imm32 Add with CF imm32 to r/m32
  421. 81     /0 iw ADD r/m16'imm16 Add imm16 to r/m16
  422. 81     /0 id ADD r/m32'imm32 Add imm32 to r/m32
  423. 81     /4 iw AND r/m16'imm16 r/m16 AND imm16
  424. 81     /4 id AND r/m32'imm32 r/m32 AND imm32
  425. 81     /7 id CMP r/m32'imm32 Compare imm32 with r/m32
  426. 81     /1 iw OR r/m16'imm16 r/m16 OR imm16
  427. 81     /1 id OR r/m32'imm32 r/m32 OR imm32
  428. 81     /3 iw SBB r/m16'imm16 Subtract with borrow imm16 from r/m16
  429. 81     /3 id SBB r/m32'imm32 Subtract with borrow imm32 from r/m32
  430. 81     /5 iw SUB r/m16'imm16 Subtract imm16 from r/m16
  431. 81     /5 id SUB r/m32'imm32 Subtract imm32 from r/m32
  432. 81     /6 iw XOR r/m16'imm16 r/m16 XOR imm16
  433. 81     /6 id XOR r/m32'imm32 r/m32 XOR imm32
  434. 83     /2 ib ADC r/m16'imm8 Add with CF sign-extended imm8 to r/m16
  435. 83     /2 ib ADC r/m32'imm8 Add with CF sign-extended imm8 into r/m32
  436. 83     /0 ib ADD r/m16'imm8 Add sign-extended imm8 to r/m16
  437. 83     /0 ib ADD r/m32'imm8 Add sign-extended imm8 to r/m32
  438. 83     /4 ib AND r/m16'imm8 r/m16 AND imm8 (sign-extended)
  439. 83     /4 ib AND r/m32'imm8 r/m32 AND imm8 (sign-extended)
  440. 83     /7 ib CMP r/m16'imm8 Compare imm8 with r/m16
  441. 83     /7 ib CMP r/m32'imm8 Compare imm8 with r/m32
  442. 83     /1 ib OR r/m16'imm8 r/m16 OR imm8 (sign-extended)
  443. 83     /1 ib OR r/m32'imm8 r/m32 OR imm8 (sign-extended)
  444. 83     /3 ib SBB r/m16'imm8 Subtract with borrow sign-extended imm8 from r/m16
  445. 83     /3 ib SBB r/m32'imm8 Subtract with borrow sign-extended imm8 from r/m32
  446. 83     /5 ib SUB r/m16'imm8 Subtract sign-extended imm8 from r/m16
  447. 83     /5 ib SUB r/m32'imm8 Subtract sign-extended imm8 from r/m32
  448. 83     /6 ib XOR r/m16'imm8 r/m16 XOR imm8 (sign-extended)
  449. 83     /6 ib XOR r/m32'imm8 r/m32 XOR imm8 (sign-extended)
  450. 84     "/ r TEST r/m8'r8 AND r8 with r/m8; set SF' ZF' PF according to result"
  451. 85     "/ r TEST r/m16'r16 AND r16 with r/m16; set SF' ZF' PF according to result"
  452. 85     "/ r TEST r/m32'r32 AND r32 with r/m32; set SF' ZF' PF according to result"
  453. 86     / r XCHG r/m8'r8 Exchange r8 (byte register) with byte from r/m8
  454. 86     / r XCHG r8'r/m8 Exchange byte from r/m8 with r8 (byte register)
  455. 87     / r XCHG r/m16'r16 Exchange r16 with word from r/m16
  456. 87     / r XCHG r16'r/m16 Exchange word from r/m16 with r16
  457. 87     / r XCHG r/m32'r32 Exchange r32 with doubleword from r/m32
  458. 87     / r XCHG r32'r/m32 Exchange doubleword from r/m32 with r32
  459. 88     / r MOV r/m8'r8 Move r8 to r/m8
  460. 89     / r MOV r/m16'r16 Move r16 to r/m16
  461. 89     / r MOV r/m32'r32 Move r32 to r/m32
  462. 8A     / r MOV r8'r/m8 Move r/m8 to r8
  463. 8B     / r MOV r16'r/m16 Move r/m16 to r16
  464. 8B     / r MOV r32'r/m32 Move r/m32 to r32
  465. 8C     / r MOV r/m16'Sreg** Move segment register to r/m16
  466. 8D    / r LEA r16'm Store effective address for m in register r16
  467. 8D     / r LEA r32'm Store effective address for m in register r32
  468. 8E     / r MOV Sreg'r/m16** Move r/m16 to segment register
  469. 8F     "/0 POP m16 Pop top of stack into m16; increment stack pointer"
  470. 8F     "/0 POP m32 Pop top of stack into m32; increment stack pointer"
  471. 90    + rw XCHG AX' r16 Exchange r16 with AX
  472. 90    + rw XCHG r16'AX Exchange AX with r16
  473. 90    + rd XCHG EAX' r32 Exchange r32 with EAX
  474. 90    + rd XCHG r32'EAX Exchange EAX with r32
  475. 90     NOP No operation
  476. 98     CBW AX ¼ sign-extend of AL
  477. 98     CWDE EAX ¼ sign-extend of AX
  478. 99     CWD DX:AX ¼ sign-extend of AX
  479. 99     CDQ EDX:EAX ¼ sign-extend of EAX
  480. 9A     cd CALL ptr16:16 Call far' absolute' address given in operand
  481. 9A     cp CALL ptr16:32 Call far' absolute' address given in operand
  482. 9B     FWAIT Check pending unmasked floating-point exceptions.
  483. 9B     WAIT Check pending unmasked floating-point exceptions.
  484. 9BD9     /7 FSTCW m2byte Store FPU control word to m2byte after checking for pending unmasked floating-point exceptions.
  485. 9BD9     /6 FSTENV m14/28byte Store FPU environment to m14byte or m28byte after checking for pending unmasked floating-point exceptions. Then mask all floating-point exceptions.
  486. 9BDBE2    FCLEX Clear floating-point exception flags after checking for pending unmasked floating-point exceptions.
  487. 9BDBE3     FINIT Initialize FPU after checking for pending unmasked floating-point exceptions.
  488. 9BDD     /6 FSAVE m94/108byte Store FPU state to m94byte or m108byte after checking for pending unmasked floating-point exceptions. Then re-initialize the FPU.
  489. 9BDD     /7 FSTSW m2byte Store FPU status word at m2byte after checking for pending unmasked floating-point exceptions.
  490. 9BDFE0     FSTSW AX Store FPU status word in AX register after checking for pending unmasked floating-point exceptions.
  491. 9C     PUSHF Push lower 16 bits of EFLAGS
  492. 9C     PUSHFD Push EFLAGS
  493. 9D     POPF Pop top of stack into lower 16 bits of EFLAGS
  494. 9D     POPFD Pop top of stack into EFLAGS
  495. 9E     SAHF 2 Loads SF' ZF' AF' PF' and CF from AH into EFLAGS register
  496. 9F     LAHF Load: AH = EFLAGS(SF:ZF:0:AF:0:PF:1:CF)
  497. A0     MOV AL' moffs8* Move byte at ( seg:offset) to AL
  498. A1     MOV AX' moffs16* Move word at ( seg:offset) to AX
  499. A1     MOV EAX' moffs32* Move doubleword at ( seg:offset) to EAX
  500. A2     MOV moffs8*'AL Move AL to ( seg:offset)
  501. A3     MOV moffs16*'AX Move AX to ( seg:offset)
  502. A3     MOV moffs32*'EAX Move EAX to ( seg:offset)
  503. A4     MOVS m8' m8 Move byte at address DS:(E)SI to address ES:(E)DI
  504. A4     MOVSB Move byte at address DS:(E)SI to address ES:(E)DI
  505. A5     MOVS m16' m16 Move word at address DS:(E)SI to address ES:(E)DI
  506. A5     MOVS m32' m32 Move doubleword at address DS:(E)SI to address ES:(E)DI
  507. A5     MOVSW Move word at address DS:(E)SI to address ES:(E)DI
  508. A5     MOVSD Move doubleword at address DS:(E)SI to address ES:(E)DI
  509. A6     CMPS m8' m8 Compares byte at address DS:(E)SI with byte at address ES:(E)DI and sets the status flags accordingly
  510. A6     CMPSB Compares byte at address DS:(E)SI with byte at address ES:(E)DI and sets the status flags accordingly
  511. A7     CMPS m16' m16 Compares word at address DS:(E)SI with word at address ES:(E)DI and sets the status flags accordingly
  512. A7     CMPS m32' m32 Compares doubleword at address DS:(E)SI with doubleword at address ES:(E)DI and sets the status flags accordingly
  513. A7     CMPSW Compares word at address DS:(E)SI with word at address ES:(E)DI and sets the status flags accordingly
  514. A7     CMPSD Compares doubleword at address DS:(E)SI with doubleword at address ES:(E)DI and sets the status flags accordingly
  515. A8     "ib TEST AL' imm8 AND imm8 with AL; set SF' ZF' PF according to result"
  516. A9     "iw TEST AX' imm16 AND imm16 with AX; set SF' ZF' PF according to result"
  517. A9     "id TEST EAX' imm32 AND imm32 with EAX; set SF' ZF' PF according to result"
  518. AA     STOS m8 Store AL at address ES:(E)DI
  519. AA     STOSB Store AL at address ES:(E)DI
  520. AB     STOS m16 Store AX at address ES:(E)DI
  521. AB     STOS m32 Store EAX at address ES:(E)DI
  522. AB     STOSW Store AX at address ES:(E)DI
  523. AB     STOSD Store EAX at address ES:(E)DI
  524. AC     LODS m8 Load byte at address DS:(E)SI into AL
  525. AC     LODSB Load byte at address DS:(E)SI into AL
  526. AD    LODS m16 Load word at address DS:(E)SI into AX
  527. AD     LODS m32 Load doubleword at address DS:(E)SI into EAX
  528. AD     LODSW Load word at address DS:(E)SI into AX
  529. AD     LODSD Load doubleword at address DS:(E)SI into EAX
  530. AE     SCAS m8 Compare AL with byte at ES:(E)DI and set status flags
  531. AE     SCASB Compare AL with byte at ES:(E)DI and set status flags
  532. AF     SCAS m16 Compare AX with word at ES:(E)DI and set status flags
  533. AF     SCAS m32 Compare EAX with doubleword at ES(E)DI and set status flags
  534. AF     SCASW Compare AX with word at ES:(E)DI and set status flags
  535. AF     SCASD Compare EAX with doubleword at ES:(E)DI and set status flags
  536. B0    + rb MOV r8'imm8 Move imm8 to r8
  537. B8    + rw MOV r16'imm16 Move imm16 to r16
  538. B8    + rd MOV r32'imm32 Move imm32 to r32
  539. C0     /2 ib RCL r/m8'imm8 Rotate 9 bits (CF' r/m8) left imm8 times
  540. C0     /3 ib RCR r/m8'imm8 Rotate 9 bits (CF' r/m8) right imm8 times
  541. C0     /0 ib ROL r/m8'imm8 Rotate 8 bits r/m8 left imm8 times
  542. C0     /1 ib ROR r/m8'imm8 Rotate 8 bits r/m16 right imm8 times
  543. C0     /4 ib SAL r/m8'imm8 Multiply r/m8 by 2' imm8 times
  544. C0     /7 ib SAR r/m8'imm8 Signed divide* r/m8 by 2' imm8 times
  545. C0     /4 ib SHL r/m8'imm8 Multiply r/m8 by 2' imm8 times
  546. C0     /5 ib SHR r/m8'imm8 Unsigned divide r/m8 by 2' imm8 times
  547. C1     /2 ib RCL r/m16'imm8 Rotate 17 bits (CF' r/m16) left imm8 times
  548. C1     /2 ib RCL r/m32'imm8 Rotate 33 bits (CF' r/m32) left imm8 times
  549. C1     /3 ib RCR r/m16'imm8 Rotate 17 bits (CF' r/m16) right imm8 times
  550. C1     /3 ib RCR r/m32'imm8 Rotate 33 bits (CF' r/m32) right imm8 times
  551. C1     /0 ib ROL r/m16'imm8 Rotate 16 bits r/m16 left imm8 times
  552. C1     /0 ib ROL r/m32'imm8 Rotate 32 bits r/m32 left imm8 times
  553. C1     /1 ib ROR r/m16'imm8 Rotate 16 bits r/m16 right imm8 times
  554. C1     /1 ib ROR r/m32'imm8 Rotate 32 bits r/m32 right imm8 times
  555. C1     /4 ib SAL r/m16'imm8 Multiply r/m16 by 2' imm8 times
  556. C1     /4 ib SAL r/m32'imm8 Multiply r/m32 by 2' imm8 times
  557. C1     /7 ib SAR r/m16'imm8 Signed divide* r/m16 by 2' imm8 times
  558. C1     /7 ib SAR r/m32'imm8 Signed divide* r/m32 by 2' imm8 times
  559. C1     /4 ib SHL r/m16'imm8 Multiply r/m16 by 2' imm8 times
  560. C1     /4 ib SHL r/m32'imm8 Multiply r/m32 by 2' imm8 times
  561. C1     /5 ib SHR r/m16'imm8 Unsigned divide r/m16 by 2' imm8 times
  562. C1     /5 ib SHR r/m32'imm8 Unsigned divide r/m32 by 2' imm8 times
  563. C2     iw RET imm16 Near return to calling procedure and pop imm16 bytes from stack
  564. C3     RET Near return to calling procedure
  565. C4     / r LES r16'm16:16 Load ES: r16 with far pointer from memory
  566. C4     / r LES r32'm16:32 Load ES: r32 with far pointer from memory
  567. C5     / r LDS r16'm16:16 Load DS: r16 with far pointer from memory
  568. C5     / r LDS r32'm16:32 Load DS: r32 with far pointer from memory
  569. C6     / 0 MOV r/m8'imm8 Move imm8 to r/m8
  570. C7     / 0 MOV r/m16'imm16 Move imm16 to r/m16
  571. C7     / 0 MOV r/m32'imm32 Move imm32 to r/m32
  572. C8     iw 00 ENTER imm16'0 Create a stack frame for a procedure
  573. C8     iw 01 ENTER imm16'1 Create a nested stack frame for a procedure
  574. C8     iw ib ENTER imm16'imm8 Create a nested stack frame for a procedure
  575. C9     LEAVE Set SP to BP' then pop BP
  576. C9     LEAVE Set ESP to EBP' then pop EBP
  577. CA     iw RET imm16 Far return to calling procedure and pop imm16 bytes from stack
  578. CB     RET Far return to calling procedure
  579. CC     INT 3 Interrupt 3ùtrap to debugger
  580. CD     ib INT imm8 Interrupt vector number specified by immediate byte
  581. CE     INTO Interrupt 4ùif overflow flag is 1
  582. CF     IRET Interrupt return (16-bit operand size)
  583. CF     IRETD Interrupt return (32-bit operand size)
  584. D0     /2 RCL r/m8'1 Rotate 9 bits (CF' r/m8) left once
  585. D0     /3 RCR r/m8'1 Rotate 9 bits (CF' r/m8) right once
  586. D0     /0 ROL r/m8'1 Rotate 8 bits r/m8 left once
  587. D0     /1 ROR r/m8'1 Rotate 8 bits r/m8 right once
  588. D0     /4 SAL r/m8'1 Multiply r/m8 by 2' once
  589. D0     /7 SAR r/m8'1 Signed divide* r/m8 by 2' once
  590. D0     /4 SHL r/m8'1 Multiply r/m8 by 2' once
  591. D0     /5 SHR r/m8'1 Unsigned divide r/m8 by 2' once
  592. D1     /2 RCL r/m16'1 Rotate 17 bits (CF' r/m16) left once
  593. D1     /2 RCL r/m32'1 Rotate 33 bits (CF' r/m32) left once
  594. D1     /3 RCR r/m16'1 Rotate 17 bits (CF' r/m16) right once
  595. D1     /3 RCR r/m32'1 Rotate 33 bits (CF' r/m32) right once
  596. D1     /0 ROL r/m16'1 Rotate 16 bits r/m16 left once
  597. D1     /0 ROL r/m32'1 Rotate 32 bits r/m32 left once
  598. D1     /1 ROR r/m16'1 Rotate 16 bits r/m16 right once
  599. D1     /1 ROR r/m32'1 Rotate 32 bits r/m32 right once
  600. D1     /4 SAL r/m16'1 Multiply r/m16 by 2' once
  601. D1     /4 SAL r/m32'1 Multiply r/m32 by 2' once
  602. D1     /7 SAR r/m16'1 Signed divide* r/m16 by 2' once
  603. D1     /7 SAR r/m32'1 Signed divide* r/m32 by 2' once
  604. D1     /4 SHL r/m16'1 Multiply r/m16 by 2' once
  605. D1     /4 SHL r/m32'1 Multiply r/m32 by 2' once
  606. D1     /5 SHR r/m16'1 Unsigned divide r/m16 by 2' once
  607. D1     /5 SHR r/m32'1 Unsigned divide r/m32 by 2' once
  608. D2     /2 RCL r/m8'CL Rotate 9 bits (CF' r/m8) left CL times
  609. D2     /3 RCR r/m8'CL Rotate 9 bits (CF' r/m8) right CL times
  610. D2     /0 ROL r/m8'CL Rotate 8 bits r/m8 left CL times
  611. D2     /1 ROR r/m8'CL Rotate 8 bits r/m8 right CL times
  612. D2     /4 SAL r/m8'CL Multiply r/m8 by 2' CL times
  613. D2     /7 SAR r/m8'CL Signed divide* r/m8 by 2' CL times
  614. D2     /4 SHL r/m8'CL Multiply r/m8 by 2' CL times
  615. D2     /5 SHR r/m8'CL Unsigned divide r/m8 by 2' CL times
  616. D3    /2 RCL r/m16'CL Rotate 17 bits (CF' r/m16) left CL times
  617. D3     /2 RCL r/m32'CL Rotate 33 bits (CF' r/m32) left CL times
  618. D3     /3 RCR r/m16'CL Rotate 17 bits (CF' r/m16) right CL times
  619. D3     /3 RCR r/m32'CL Rotate 33 bits (CF' r/m32) right CL times
  620. D3     /0 ROL r/m16'CL Rotate 16 bits r/m16 left CL times
  621. D3     /0 ROL r/m32'CL Rotate 32 bits r/m32 left CL times
  622. D3     /1 ROR r/m16'CL Rotate 16 bits r/m16 right CL times
  623. D3     /1 ROR r/m32'CL Rotate 32 bits r/m32 right CL times
  624. D3     /4 SAL r/m16'CL Multiply r/m16 by 2' CL times
  625. D3     /4 SAL r/m32'CL Multiply r/m32 by 2' CL times
  626. D3     /7 SAR r/m16'CL Signed divide* r/m16 by 2' CL times
  627. D3     /7 SAR r/m32'CL Signed divide* r/m32 by 2' CL times
  628. D3     /4 SHL r/m16'CL Multiply r/m16 by 2' CL times
  629. D3     /4 SHL r/m32'CL Multiply r/m32 by 2' CL times
  630. D3     /5 SHR r/m16'CL Unsigned divide r/m16 by 2' CL times
  631. D3     /5 SHR r/m32'CL Unsigned divide r/m32 by 2' CL times
  632. D4     ib (No mnemonic) Adjust AX after multiply to number base imm8
  633. D40A     AAM ASCII adjust AX after multiply
  634. D5     ib (No mnemonic) Adjust AX before division to number base imm8
  635. D50A     AAD ASCII adjust AX before division
  636. D7     XLAT m8 Set AL to memory byte DS:[(E)BX + unsigned AL]
  637. D7     XLATB Set AL to memory byte DS:[(E)BX + unsigned AL]
  638. D8    /1 FMUL m32real Multiply ST(0) by m32real and store result in ST(0)
  639. D8     /0 FADD m32 real Add m32real to ST(0) and store result in ST(0)
  640. D8     /2 FCOM m32real Compare ST(0) with m32real.
  641. D8     /3 FCOMP m32real Compare ST(0) with m32real and pop register stack.
  642. D8     /6 FDIV m32real Divide ST(0) by m32real and store result in ST(0)
  643. D8     /7 FDIVR m32real Divide m32real by ST(0) and store result in ST(0)
  644. D8     /5 FSUBR m32real Subtract ST(0) from m32real and store result in ST(0)
  645. D8/4     FSUB m32real Subtract m32real from ST(0) and store result in ST(0)
  646. D8C0    +i FADD ST(0)' ST(i) Add ST(0) to ST(i) and store result in ST(0)
  647. D8C8    +i FMUL ST(0)' ST(i) Multiply ST(0) by ST(i) and store result in ST(0)
  648. D8D0    +i FCOM ST(i) Compare ST(0) with ST(i).
  649. D8D1     FCOM Compare ST(0) with ST(1).
  650. D8D8    +i FCOMP ST(i) Compare ST(0) with ST(i) and pop register stack.
  651. D8D9     FCOMP Compare ST(0) with ST(1) and pop register stack.
  652. D8E0    +i FSUB ST(0)' ST(i) Subtract ST(i) from ST(0) and store result in ST(0)
  653. D8E8    +i FSUBR ST(0)' ST(i) Subtract ST(0) from ST(i) and store result in ST(0)
  654. D8F0    +i FDIV ST(0)' ST(i) Divide ST(0) by ST(i) and store result in ST(0)
  655. D8F8    +i FDIVR ST(0)' ST(i) Divide ST(i) by ST(0) and store result in ST(0)
  656. D9    /5 FLDCW m2byte Load FPU control word from m2byte.
  657. D9    /4 FLDENV m14/28byte Load FPU environment from m14byte or m28byte.
  658. D9     /0 FLD m32real Push m32real onto the FPU register stack.
  659. D9     /2 FST m32real Copy ST(0) to m32real
  660. D9     /3 FSTP m32real Copy ST(0) to m32real and pop register stack
  661. D9     /7 FNSTCW m2byte Store FPU control word to m2byte without checking for pending unmasked floating-point exceptions.
  662. D9     /6 FNSTENV m14/28byte Store FPU environment to m14byte or m28byte without checking for pending unmasked floating-point exceptions. Then mask all floating-point exceptions.
  663. D9C0    +i FLD ST(i) Push ST(i) onto the FPU register stack.
  664. D9C8    +i FXCH ST(i) Exchange the contents of ST(0) and ST(i)
  665. D9C9     FXCH Exchange the contents of ST(0) and ST(1)
  666. D9D0     FNOP No operation is performed.
  667. D9E0     FCHS Complements sign of ST(0)
  668. D9E1     FABS Replace ST with its absolute value.
  669. D9E4     FTST Compare ST(0) with 0.0.
  670. D9E5     FXAM Classify value or number in ST(0)
  671. D9E8     FLD1 Push +1.0 onto the FPU register stack.
  672. D9E9     FLDL2T Push log 2 10 onto the FPU register stack.
  673. D9EA     FLDL2E Push log 2 e onto the FPU register stack.
  674. D9EB     FLDPI Push p onto the FPU register stack.
  675. D9EC     FLDLG2 Push log 10 2 onto the FPU register stack.
  676. D9ED     FLDLN2 Push log e 2 onto the FPU register stack.
  677. D9EE     FLDZ Push +0.0 onto the FPU register stack.
  678. D9F0     F2XM1 Replace ST(0) with (2^ST(0) û 1)
  679. D9F1     FYL2X Replace ST(1) with (ST(1) * log{2}ST(0)) and pop the register stack
  680. D9F2     FPTAN 17-173 Replace ST(0) with its tangent and push 1 onto the FPU stack.
  681. D9F3     FPATAN Replace ST(1) with arctan(ST(1)/ST(0)) and pop the register stack
  682. D9F4     FXTRACT Separate value in ST(0) into exponent and significand' store exponent in ST(0)' and push the significand onto the register stack.
  683. D9F5     FPREM1 Replace ST(0) with the IEEE remainder obtained from dividing ST(0) by ST(1)
  684. D9F6     FDECSTP Decrement TOP field in FPU status word.
  685. D9F7    FINCSTP Increment the TOP field in the FPU status register
  686. D9F8     FPREM Replace ST(0) with the remainder obtained from
  687. D9F9     FYL2XP1 Replace ST(1) with ST(1) * log{2}(ST(0) + 1.0) and pop the register stack
  688. D9FA     FSQRT Calculates square root of ST(0) and stores the result in ST(0)
  689. D9FB     "FSINCOS Compute the sine and cosine of ST(0); replace ST(0) with the sine' and push the cosine onto the register stack."
  690. D9FC     FRNDINT Round ST(0) to an integer.
  691. D9FD     FSCALE Scale ST(0) by ST(1).
  692. D9FE     FSIN Replace ST(0) with its sine.
  693. D9FF     FCOS Replace ST(0) with its cosine
  694. DA    /1 FIMUL m32int Multiply ST(0) by m32int and store result in ST(0)
  695. DA     /0 FIADD m32int Add m32int to ST(0) and store result in ST(0)
  696. DA     /6 FIDIV m32int Divide ST(0) by m32int and store result in ST(0)
  697. DA     /7 FIDIVR m32int Divide m32int by ST(0) and store result in ST(0)
  698. DA     /2 FICOM m32int Compare ST(0) with m32int
  699. DA     /3 FICOMP m32int Compare ST(0) with m32int and pop stack register
  700. DA     /4 FISUB m32int Subtract m32int from ST(0) and store result in ST(0)
  701. DA     /5 FISUBR m32int Subtract ST(0) from m32int and store result in ST(0)
  702. DAC0    +i FCMOVB ST(0)' ST(i) Move if below (CF=1)
  703. DAC8    +i FCMOVE ST(0)' ST(i) Move if equal (ZF=1)
  704. DAD0    +i FCMOVBE ST(0)' ST(i) Move if below or equal (CF=1 or ZF=1)
  705. DAD8    +i FCMOVU ST(0)' ST(i) Move if unordered (PF=1)
  706. DAE9     FUCOMPP Compare ST(0) with ST(1) and pop register stack twice
  707. DB     /0 FILD m32int Push m32int onto the FPU register stack.
  708. DB     /2 FIST m32int Store ST(0) in m32int
  709. DB     /3 FISTP m32int Store ST(0) in m32int and pop register stack
  710. DB     /5 FLD m80real Push m80real onto the FPU register stack.
  711. DB     /7 FSTP m80real Copy ST(0) to m80real and pop register stack
  712. DBC0    +i FCMOVNB ST(0)' ST(i) Move if not below (CF=0)
  713. DBC8    +i FCMOVNE ST(0)' ST(i) Move if not equal (ZF=0)
  714. DBD0    +i FCMOVNBE ST(0)' ST(i) Move if not below or equal (CF=0 and ZF=0)
  715. DBD8    +i FCMOVNU ST(0)' ST(i) Move if not unordered (PF=0)
  716. DBE2    FNCLEX Clear floating-point exception flags without checking for pending unmasked floating-point exceptions.
  717. DBE3     FNINIT Initialize FPU without checking for pending unmasked floating-point exceptions.
  718. DBE8    +i FUCOMI ST' ST(i) Compare ST(0) with ST(i)' check for ordered values' and set status flags accordingly
  719. DBF0    +i FCOMI ST' ST(i) Compare ST(0) with ST(i) and set status flags accordingly
  720. DC    /1 FMUL m64real Multiply ST(0) by m64real and store result in ST(0)
  721. DC     /0 FADD m64real Add m64real to ST(0) and store result in ST(0)
  722. DC     /2 FCOM m64real Compare ST(0) with m64real.
  723. DC     /3 FCOMP m64real Compare ST(0) with m64real and pop register stack.
  724. DC     /6 FDIV m64real Divide ST(0) by m64real and store result in ST(0)
  725. DC     /7 FDIVR m64real Divide m64real by ST(0) and store result in ST(0)
  726. DC     /5 FSUBR m64real Subtract ST(0) from m64real and store result in ST(0)
  727. DC/4     FSUB m64real Subtract m64real from ST(0) and store result in ST(0)
  728. DCC0    +i FADD ST(i)' ST(0) Add ST(i) to ST(0) and store result in ST(i)
  729. DCC8    +i FMUL ST(i)' ST(0) Multiply ST(i) by ST(0) and store result in ST(i)
  730. DCE0    +i FSUBR ST(i)' ST(0) Subtract ST(i) from ST(0) and store result in ST(i)
  731. DCE8    +i FSUB ST(i)' ST(0) Subtract ST(0) from ST(i) and store result in ST(i)
  732. DCF0    +i FDIVR ST(i)' ST(0) Divide ST(0) by ST(i) and store result in ST(i)
  733. DCF8    +i FDIV ST(i)' ST(0) Divide ST(i) by ST(0) and store result in ST(i)
  734. DD    /7 FNSTSW m2byte Store FPU status word at m2byte without checking for pending unmasked floating-point exceptions.
  735. DD     /0 FLD m64real Push m64real onto the FPU register stack.
  736. DD     /4 FRSTOR m94/108byte Load FPU state from m94byte or m108byte.
  737. DD     /6 FNSAVE* m94/108byte Store FPU environment to m94byte or m108byte without checking for pending unmasked floating-point exceptions. Then re-initialize the FPU.
  738. DD     /2 FST m64real Copy ST(0) to m64real
  739. DD     /3 FSTP m64real Copy ST(0) to m64real and pop register stack
  740. DDC0    +i FFREE ST(i) Sets tag for ST(i) to empty
  741. DDD0    +i FST ST(i) Copy ST(0) to ST(i)
  742. DDD8    +i FSTP ST(i) Copy ST(0) to ST(i) and pop register stack
  743. DDE0    +i FUCOM ST(i) Compare ST(0) with ST(i)
  744. DDE1     FUCOM Compare ST(0) with ST(1)
  745. DDE8    +i FUCOMP ST(i) Compare ST(0) with ST(i) and pop register stack
  746. DDE9     FUCOMP Compare ST(0) with ST(1) and pop register stack
  747. DE     C1 FADDP Add ST(0) to ST(1)' store result in ST(1)' and pop the register stack
  748. DE     /0 FIADD m16int Add m16int to ST(0) and store result in ST(0)
  749. DE     /6 FIDIV m16int Divide ST(0) by m64int and store result in ST(0)
  750. DE     /7 FIDIVR m16int Divide m64int by ST(0) and store result in ST(0)
  751. DE     /2 FICOM m16int Compare ST(0) with m16int
  752. DE     /3 FICOMP m16int Compare ST(0) with m16int and pop stack register
  753. DE     /1 FIMUL m16int Multiply ST(0) by m16int and store result in ST(0)
  754. DE     /4 FISUB m16int Subtract m16int from ST(0) and store result in ST(0)
  755. DE     /5 FISUBR m16int Subtract ST(0) from m16int and store result in ST(0)
  756. DEC0    +i FADDP ST(i)' ST(0) Add ST(0) to ST(i)' store result in ST(i)' and pop the register stack
  757. DEC8    +i FMULP ST(i)' ST(0) Multiply ST(i) by ST(0)' store result in ST(i)' and pop the register stack
  758. DEC9     FMULP Multiply ST(1) by ST(0)' store result in ST(1)' and pop the register stack
  759. DED9     FCOMPP Compare ST(0) with ST(1) and pop register stack twice.
  760. DEE0    +i FSUBRP ST(i)' ST(0) Subtract ST(i) from ST(0)' store result in ST(i)' and pop register stack
  761. DEE1     FSUBRP Subtract ST(1) from ST(0)' store result in ST(1)' and pop register stack
  762. DEE8    +i FSUBP ST(i)' ST(0) Subtract ST(0) from ST(i)' store result in ST(i)' and pop register stack
  763. DEE9     FSUBP Subtract ST(0) from ST(1)' store result in ST(1)' and pop register stack
  764. DEF0    +i FDIVRP ST(i)' ST(0) Divide ST(0) by ST(i)' store result in ST(i)' and pop the register stack
  765. DEF1     FDIVRP Divide ST(0) by ST(1)' store result in ST(1)' and pop the register stack
  766. DEF8    +i FDIVP ST(i)' ST(0) Divide ST(i) by ST(0)' store result in ST(i)' and pop the register stack
  767. DEF9     FDIVP Divide ST(1) by ST(0)' store result in ST(1)' and pop the register stack
  768. DF     /4 FBLD m80 dec Convert BCD value to real and push onto the FPU stack.
  769. DF     /6 FBSTP m80bcd Store ST(0) in m80bcd and pop ST(0).
  770. DF     /0 FILD m16int Push m16int onto the FPU register stack.
  771. DF     /5 FILD m64int Push m64int onto the FPU register stack.
  772. DF     /2 FIST m16int Store ST(0) in m16int
  773. DF     /3 FISTP m16int Store ST(0) in m16int and pop register stack
  774. DF     /7 FISTP m64int Store ST(0) in m64int and pop register stack
  775. DFE0     FNSTSW AX Store FPU status word in AX register without checking for pending unmasked floating-point exceptions.
  776. DFE8    +i FUCOMIP ST' ST(i) Compare ST(0) with ST(i)' check for ordered values' set status flags accordingly' and pop register stack
  777. DFF0    +i FCOMIP ST' ST(i) Compare ST(0) with ST(i)' set status flags accordingly' and pop register stack
  778. E0     "cb LOOPNE rel8 Decrement count; jump short if count ╣ 0 and ZF=0"
  779. E0     "cb LOOPNZ rel8 Decrement count; jump short if count ╣ 0 and ZF=0"
  780. E1     "cb LOOPE rel8 Decrement count; jump short if count ╣ 0 and ZF=1"
  781. E1     "cb LOOPZ rel8 Decrement count; jump short if count ╣ 0 and ZF=1"
  782. E2     "cb LOOP rel8 Decrement count; jump short if count ╣ 0"
  783. E3     cb JCXZ rel8 Jump short if CX register is 0
  784. E3     cb JECXZ rel8 Jump short if ECX register is 0
  785. E4     ib IN AL' imm8 Input byte from imm8 I/O port address into AL
  786. E5     ib IN AX' imm8 Input byte from imm8 I/O port address into AX
  787. E5     ib IN EAX' imm8 Input byte from imm8 I/O port address into EAX
  788. E6     ib OUT imm8' AL Output byte in AL to I/O port address imm8
  789. E7     ib OUT imm8' AX Output word in AX to I/O port address imm8
  790. E7     ib OUT imm8' EAX Output doubleword in EAX to I/O port address imm8
  791. E8     cw CALL rel16 Call near' relative' displacement relative to next instruction
  792. E8     cd CALL rel32 Call near' relative' displacement relative to next instruction
  793. E9     cw JMP rel16 Jump near' relative' displacement relative to next instruction
  794. E9     cd JMP rel32 Jump near' relative' displacement relative to next instruction
  795. EA     cd JMP ptr16:16 Jump far' absolute' address given in operand
  796. EA     cp JMP ptr16:32 Jump far' absolute' address given in operand
  797. EB     cb JMP rel8 Jump short' relative' displacement relative to next instruction
  798. EC     IN AL'DX Input byte from I/O port in DX into AL
  799. ED     IN AX'DX Input word from I/O port in DX into AX
  800. ED     IN EAX'DX Input doubleword from I/O port in DX into EAX
  801. EE     OUT DX' AL Output byte in AL to I/O port address in DX
  802. EF     OUT DX' AX Output word in AX to I/O port address in DX
  803. EF     OUT DX' EAX Output doubleword in EAX to I/O port address in DX
  804. F0     LOCK Asserts LOCK# signal for duration of the accompanying instruction
  805. F2A6     REPNE CMPS m8'm8 Find matching bytes in ES:[(E)DI] and DS:[(E)SI]
  806. F2A7     REPNE CMPS m16'm16 Find matching words in ES:[(E)DI] and DS:[(E)SI]
  807. F2A7     REPNE CMPS m32'm32 Find matching doublewords in ES:[(E)DI] and DS:[(E)SI]
  808. F2AE     REPNE SCAS m8 Find AL' starting at ES:[(E)DI]
  809. F2AF     REPNE SCAS m16 Find AX' starting at ES:[(E)DI]
  810. F2AF     REPNE SCAS m32 Find EAX' starting at ES:[(E)DI]
  811. F36C     REP INS r/m8' DX Input (E)CX bytes from port DX into ES:[(E)DI]
  812. F36D     REP INS r/m16'DX Input (E)CX words from port DX into ES:[(E)DI]
  813. F36D     REP INS r/m32'DX Input (E)CX doublewords from port DX into ES:[(E)DI]
  814. F36E     REP OUTS DX' r/m8 Output (E)CX bytes from DS:[(E)SI] to port DX
  815. F36F     REP OUTS DX' r/m16 Output (E)CX words from DS:[(E)SI] to port DX
  816. F36F     REP OUTS DX' r/m32 Output (E)CX doublewords from DS:[(E)SI] to port DX
  817. F3A4     REP MOVS m8'm8 Move (E)CX bytes from DS:[(E)SI] to ES:[(E)DI]
  818. F3A5     REP MOVS m16'm16 Move (E)CX words from DS:[(E)SI] to ES:[(E)DI]
  819. F3A5     REP MOVS m32'm32 Move (E)CX doublewords from DS:[(E)SI] to ES:[(E)DI]
  820. F3A6     REPE CMPS m8'm8 Find nonmatching bytes in ES:[(E)DI] and DS:[(E)SI]
  821. F3A7     REPE CMPS m16'm16 Find nonmatching words in ES:[(E)DI] and DS:[(E)SI]
  822. F3A7     REPE CMPS m32'm32 Find nonmatching doublewords in ES:[(E)DI] and DS:[(E)SI]
  823. F3AA     REP STOS m8 Fill (E)CX bytes at ES:[(E)DI] with AL
  824. F3AB     REP STOS m16 Fill (E)CX words at ES:[(E)DI] with AX
  825. F3AB     REP STOS m32 Fill (E)CX doublewords at ES:[(E)DI] with EAX
  826. F3AC     REP LODS AL Load (E)CX bytes from DS:[(E)SI] to AL
  827. F3AD     REP LODS AX Load (E)CX words from DS:[(E)SI] to AX
  828. F3AD     REP LODS EAX Load (E)CX doublewords from DS:[(E)SI] to EAX
  829. F3AE     REPE SCAS m8 Find non-AL byte starting at ES:[(E)DI]
  830. F3AF     REPE SCAS m16 Find non-AX word starting at ES:[(E)DI]
  831. F3AF     REPE SCAS m32 Find non-EAX doubleword starting at ES:[(E)DI]
  832. F4     HLT Halt
  833. F5     CMC Complement CF flag
  834. F6     "/6 DIV r/m8 Unsigned divide AX by r/m8; AL ¼ Quotient' AH ¼ Remainder"
  835. F6     /7 IDIV r/m8 Signed divide AX (where AH must contain sign-extension of AL) by r/m byte. (Results: AL=Quotient' AH=Remainder)
  836. F6     /5 IMUL r/m8 AX¼ AL * r/m byte
  837. F6     /4 MUL r/m8 Unsigned multiply (AX ¼ AL * r/m8)
  838. F6     /3 NEG r/m8 Two's complement negate r/m8
  839. F6     /2 NOT r/m8 Reverse each bit of r/m8
  840. F6     "/0 ib TEST r/m8'imm8 AND imm8 with r/m8; set SF' ZF' PF according to result"
  841. F7     "/6 DIV r/m16 Unsigned divide DX:AX by r/m16; AX ¼ Quotient' DX ¼ Remainder"
  842. F7     "/6 DIV r/m32 Unsigned divide EDX:EAX by r/m32 doubleword; EAX ¼ Quotient' EDX ¼ Remainder"
  843. F7     /7 IDIV r/m16 Signed divide DX:AX (where DX must contain sign-extension of AX) by r/m word. (Results: AX=Quotient' DX=Remainder)
  844. F7     /7 IDIV r/m32 Signed divide EDX:EAX (where EDX must contain sign-extension of EAX) by r/m doubleword. (Results: EAX=Quotient' EDX=Remainder)
  845. F7     /5 IMUL r/m16 DX:AX ¼ AX * r/m word
  846. F7     /5 IMUL r/m32 EDX:EAX ¼ EAX * r/m doubleword
  847. F7     /4 MUL r/m16 Unsigned multiply (DX:AX ¼ AX * r/m16)
  848. F7     /4 MUL r/m32 Unsigned multiply (EDX:EAX ¼ EAX * r/m32)
  849. F7     /3 NEG r/m16 Two's complement negate r/m16
  850. F7     /3 NEG r/m32 Two's complement negate r/m32
  851. F7     /2 NOT r/m16 Reverse each bit of r/m16
  852. F7     /2 NOT r/m32 Reverse each bit of r/m32
  853. F7     "/0 iw TEST r/m16'imm16 AND imm16 with r/m16; set SF' ZF' PF according to result"
  854. F7     "/0 id TEST r/m32'imm32 AND imm32 with r/m32; set SF' ZF' PF according to result"
  855. F8     CLC Clear CF flag
  856. F9     STC Set CF flag
  857. FA     "CLI Clear interrupt flag; interrupts disabled when interrupt flag cleared"
  858. FB     "STI Set interrupt flag; external' maskable interrupts enabled"
  859. FC     CLD Clear DF flag
  860. FD     STD Set DF flag
  861. FE     /1 DEC r/m8 Decrement r/m8 by 1
  862. FE     /0 INC r/m8 Increment r/m byte by 1
  863. FF     /2 CALL r/m16 Call near' absolute indirect' address given in r/m16
  864. FF     /2 CALL r/m32 Call near' absolute indirect' address given in r/m32
  865. FF     /3 CALL m16:16 Call far' absolute indirect' address given in m16:16
  866. FF     /3 CALL m16:32 Call far' absolute indirect' address given in m16:32
  867. FF     /1 DEC r/m16 Decrement r/m16 by 1
  868. FF     /1 DEC r/m32 Decrement r/m32 by 1
  869. FF     /0 INC r/m16 Increment r/m word by 1
  870. FF     /0 INC r/m32 Increment r/m doubleword by 1
  871. FF     /4 JMP r/m16 Jump near' absolute indirect' address given in r/m16
  872. FF     /4 JMP r/m32 Jump near' absolute indirect' address given in r/m32
  873. FF     /5 JMP m16:16 Jump far' absolute indirect' address given in m16:16
  874. FF     /5 JMP m16:32 Jump far' absolute indirect' address given in m16:32
  875. FF     /6 PUSH r/m16 Push r/m16
  876. FF     /6 PUSH r/m32 Push r/m32
  877.