Guest User

The Complete Pentium Instruction Set Table

a guest
May 7th, 2017
282
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 84.10 KB | None | 0 0
  1. The Complete Pentium Instruction Set Table
  2. (32 Bit Addressing Mode Only)
  3. by Sang Cho
  4.  
  5. **********************************************
  6. Explanation of the Notation used in this Table
  7. **********************************************
  8.  
  9.  
  10. /digit -- A digit between 0 and 7 indicates that the ModR/M byte of the instruction uses
  11. only the r/m (register or memory) operand. The reg field contains the digit
  12. that provides an extension to the instruction's opcode.
  13. /r -- Indicates that the ModR/M byte of the instruction contains both a register operand
  14. and an r/m operand.
  15. cb -- A relative byte offset from the next instruction for JMP, CALL etc.
  16. cw -- A relative word offset from the next instruciton for JMP, CALL etc.
  17. cd -- A relative doubleword offset from the next instruction for JMP, CALL etc.
  18. cp -- An absolute far pointer for JMP, CALL etc.
  19. ib, iw, id
  20. -- 1-byte (ib), 2-byte (iw), or 4-byte (id) immediate operand
  21. +rb, +rw, +rd
  22. -- register code, from 0 through 7, added to an opcode byte.
  23.  
  24. rb rw rd
  25. ----------------------
  26. AL = 0 AX = 0 EAX = 0
  27. CL = 1 CX = 1 ECX = 1
  28. DL = 2 DX = 2 EDX = 2
  29. BL = 3 BX = 3 EBX = 3
  30. AH = 4 SP = 4 ESP = 4
  31. CH = 5 BP = 5 EBP = 5
  32. DH = 6 SI = 6 ESI = 6
  33. BH = 7 DI = 7 EDI = 7
  34.  
  35. +i -- A number used in floating-point instructions when one of the operands is ST(i) from
  36. the FPU register stack.
  37. rel8 -- A relative address in the range from -128 to 127 bytes from the end of the instruction.
  38. rel16 and rel32
  39. -- A relative address within the same code segment as the instruction assembled.
  40. ptr16:16 and ptr16:32
  41. -- A far pointer, typically in a code segment different from that of the instruction.
  42. r8 -- One of the byte general-purpose registers.
  43. r16 -- One of the word general-purpose registers.
  44. r32 -- One of the doubleword general-purpose registers.
  45. imm8 -- An immediate byte value.
  46. imm16 -- An immediate word value.
  47. imm32 -- An immediate doubleword value.
  48. r/m8 -- A byte general-purpose register, or a byte from memory.
  49. r/m16 -- A word general-purpose register, or a word memory operand.
  50. r/m32 -- A doubleword general-purpose register, or a doubleword memory operand.
  51. m -- A 16- or 32-bit operand in memory.
  52. m8 -- A byte operand in memory, pointed to by the DS:(E)SI or ES:(E)DI registers.
  53. Used with the string instructions and the XLAT instruction.
  54. m16 -- A word operand in memory, pointed to by the DS:(E)SI or ES:(E)DI registers.
  55. Used only with the string instructions.
  56. m32 -- A doubleword operand in memory, pointed to by the DS:(E)SI or ES:(E)DI registers.
  57. Used only with the string instructions.
  58. m64 -- A memory quadword operand in memory. Used only with the CMPXCHG8B instruction.
  59. m16:16, m16:32
  60. -- A memory operand containing a far pointer composed of two numbers.
  61. The number to the left of the colon corresponds to the pointer's segment selector.
  62. The number to the right corresponds to its offset.
  63. m16&32, m16&16, m32&32
  64. -- A memory operand consisting of data item pairs whose
  65. sizes are indicated on the left and the right side of the ampersand.
  66. All memory addressing modes are allowed. The m16&16 and m32&32 operands are used
  67. by the BOUND instruction to provide an operand containing an upper and lower bounds
  68. for array indices. The m16&32 operand is used by LIDT and LGDT to provide
  69. a word with which to load the limit field, and a doubleword with which to load
  70. the base field of the corresponding GDTR and IDTR registers.
  71. moffs8, moffs16, moffs32
  72. -- A simple memory variable (memory offset) of type byte,
  73. word, or doubleword used by some variants of the MOV instruction.
  74. The actual address is given by a simple offset relative to the segment base.
  75. No ModR/M byte is used in the instruction. The number shown with moffs indicates
  76. its size, which is determined by the address-size attribute of the instruction.
  77. Sreg -- A segment register. The segment register bit assignments are ES=0, CS=1, SS=2,
  78. DS=3, FS=4, and GS=5.
  79. m32real, m64real, m80real
  80. -- A single-, double-, and extended-real floating-point operand in memory.
  81. m16int, m32int, m64int
  82. -- A word-, short-, and long-integer floating-point operand in memory.
  83. ST or ST(0)
  84. -- The top element of the FPU register stack.
  85. ST(i) -- The i th element from the top of the FPU register stack. (i = 0 through 7)
  86. mm -- An MMX register. The 64-bit MMX registers are: MM0 through MM7.
  87. mm/m32 -- The low order 32 bits of an MMX register or a 32-bit memory operand.
  88. mm/m64 -- An MMX register or a 64-bit memory operand.
  89.  
  90.  
  91.  
  92.  
  93. Alphabetical Listing
  94. ===============================================================================
  95. Opcode,Data Instruction Explanation
  96. -------------------------------------------------------------------------------
  97. 37 AAA ASCII adjust AL after addition
  98. D5 0A AAD ASCII adjust AX before division
  99. D4 0A AAM ASCII adjust AX after multiplication
  100. 3F AAS ASCII adjust AL after subtraction
  101. 14 ib ADC AL,imm8 Add with carry
  102. 15 id ADC EAX,imm32 Add with carry
  103. 80 /2 ib ADC r/m8,imm8 Add with carry
  104. 81 /2 id ADC r/m32,imm32 Add with carry
  105. 83 /2 ib ADC r/m32,imm8 Add with carry
  106. 10 /r ADC r/m8,r8 Add with carry
  107. 11 /r ADC r/m32,r32 Add with carry
  108. 12 /r ADC r8,r/m8 Add with carry
  109. 13 /r ADC r32,r/m32 Add with carry
  110. 04 ib ADD AL,imm8 Add
  111. 05 id ADD EAX,imm32 Add
  112. 80 /0 ib ADD r/m8,imm8 Add
  113. 81 /0 id ADD r/m32,imm32 Add
  114. 83 /0 ib ADD r/m32,imm8 Add
  115. 00 /r ADD r/m8,r8 ADD
  116. 01 /r ADD r/m32,r32 ADD
  117. 02 /r ADD r8,r/m8 ADD
  118. 03 /r ADD r32,r/m32 ADD
  119. 24 ib AND AL,imm8 AND
  120. 25 id AND EAX,imm32 AND
  121. 80 /4 ib AND r/m8,imm8 AND
  122. 81 /4 id AND r/m32,imm32 AND
  123. 83 /4 ib AND r/m32,imm8 AND
  124. 20 /r AND r/m8,r8 AND
  125. 21 /r AND r/m32,r32 AND
  126. 22 /r AND r8,r/m8 AND
  127. 23 /r AND r32,r/m32 AND
  128. 63 /r ARPL r/m16,r16 Adjust Request Privilege Level of Sel.
  129. 62 /r BOUND r32,m32&32 Check Array Index Against Bounds
  130. 0F BC /r BSF r32,r/m32 Bit scan forward on r/m32
  131. 0F BD /r BSR r32,r/m32 Bit scan reverse on r/m32
  132. 0F C8+rd BSWAP r32 Reverses the byte order of a r32
  133. 0F A3 /r BT r/m32,r32 Bit Test
  134. 0F BA /4 ib BT r/m32,imm8 Bit Test
  135. 0F BB /r BTC r/m32,r32 Bit Test and Complement
  136. 0F BA /7 ib BTC r/m32,imm8 Bit Test and Complement
  137. 0F B3 /r BTR r/m32,r32 Bit Test and Clear
  138. 0F BA /6 ib BTR r/m32,imm8 Bit Test and Clear
  139. 0F AB /r BTS r/m32,r32 Bit Test and Set
  140. 0F BA /5 ib BTS r/m32,imm8 Bit Test and Set
  141. E8 cd CALL rel32 Call near, rel to n.inst
  142. FF /2 CALL r/m32 Call near, abs.ind.add. given in r/m32
  143. 9A cp CALL ptr16:32 Call far, abs.add. given in operand
  144. FF /3 CALL m16:32 Call far, abs.ind.add. given in m16:32
  145. 98 CBW Convert Byte to Word
  146. 99 CWD Convert Word to Doubleword
  147. 99 CDQ Convert Doubleword to Quadword
  148. F8 CLC Clear CF flag
  149. FC CLD Clear DF flag
  150. FA CLI Clear interrupt flag
  151. 0F 06 CLTS Clear Task-Switched Flag in Control Reg. Zero
  152. F5 CMC Complement CF flag
  153. 0F 47 /r CMOVA r32,r/m32 Move if above
  154. 0F 43 /r CMOVAE r32,r/m32 Move if above or equal
  155. 0F 42 /r CMOVB r32,r/m32 Move if below
  156. 0F 46 /r CMOVBE r32,r/m32 Move if below or equal
  157. 0F 42 /r CMOVC r32,r/m32 Move if carry
  158. 0F 44 /r CMOVE r32,r/m32 Move if equal
  159. 0F 4F /r CMOVG r32,r/m32 Move if greater
  160. 0F 4D /r CMOVGE r32,r/m32 Move if greater or equal
  161. 0F 4C /r CMOVL r32,r/m32 Move if less
  162. 0F 4E /r CMOVLE r32,r/m32 Move if less or equal
  163. 0F 46 /r CMOVNA r32,r/m32 Move if not above
  164. 0F 42 /r CMOVNAE r32,r/m32 Move if not above or equal
  165. 0F 43 /r CMOVNB r32,r/m32 Move if not below
  166. 0F 47 /r CMOVNBE r32,r/m32 Move if not below or equal
  167. 0F 43 /r CMOVNC r32,r/m32 Move if not carry
  168. 0F 45 /r CMOVNE r32,r/m32 Move if not equal
  169. 0F 4E /r CMOVNG r32,r/m32 Move if not greater
  170. 0F 4C /r CMOVNGE r32,r/m32 Move if not greater or equal
  171. 0F 4D /r CMOVNL r32,r/m32 Move if not less
  172. 0F 4F /r CMOVNLE r32,r/m32 Move if not less or equal
  173. 0F 41 /r CMOVNO r32,r/m32 Move if not overflow
  174. 0F 4B /r CMOVNP r32,r/m32 Move if not parity
  175. 0F 49 /r CMOVNS r32,r/m32 Move if not sign
  176. 0F 45 /r CMOVNZ r32,r/m32 Move if not zero
  177. 0F 40 /r CMOVO r32,r/m32 Move if overflow
  178. 0F 4A /r CMOVP r32,r/m32 Move if parity
  179. 0F 4A /r CMOVPE r32,r/m32 Move if parity even
  180. 0F 4B /r CMOVPO r32,r/m32 Move if parity odd
  181. 0F 48 /r CMOVS r32,r/m32 Move if sign
  182. 0F 44 /r CMOVZ r32,r/m32 Move if zero
  183. 3C ib CMP AL,imm8 Compare
  184. 3D id CMP EAX,imm32 Compare
  185. 80 /7 ib CMP r/m8,imm8 Compare
  186. 81 /7 id CMP r/m32,imm32 Compare
  187. 83 /7 ib CMP r/m32,imm8 Compare
  188. 38 /r CMP r/m8,r8 Compare
  189. 39 /r CMP r/m32,r32 Compare
  190. 3A /r CMP r8,r/m8 Compare
  191. 3B /r CMP r32,r/m32 Compare
  192. A6 CMPSB Compare byte at DS:(E)SI with ES:(E)DI
  193. A7 CMPSD Compare dw at DS:(E)SI with ES:(E)DI
  194. 0F B0 /r CMPXCHG r/m8,r8 Compare and Exchange
  195. 0F B1 /r CMPXCHG r/m32,r32 Compare and Exchange
  196. 0F C7 /1 m64 CMPXCHG8B m64 Compare and Exchange
  197. 0F A2 CPUID EAX := Processor id.info.
  198. 27 DAA Decimal adjust AL after addition
  199. 2F DAS Decimal adjust AL after subtraction
  200. FE /1 DEC r/m8 Decrement r/m8 by 1
  201. FF /1 DEC r/m32 Decrement r/m32 by 1
  202. 48+rd DEC r32 Decrement r32 by 1
  203. F6 /6 DIV r/m8 Unsigned divide AX by r/m8
  204. F7 /6 DIV r/m16 Unsigned divide DX:AX by r/m16
  205. F7 /6 DIV r/m32 Unsigned divide EDX:EAX by r/m32
  206. 0F 77 EMMS Set the FP tag word to empty
  207. C8 iw 00 ENTER imm16,0 Create a stack frame for a procedure
  208. C8 iw 01 ENTER imm16,1 Create a nested stack frame for a proc.
  209. C8 iw ib ENTER imm16,imm8 Create a nested stack frame for a proc.
  210. D9 F0 F2XM1 Replace ST(0) with 2**ST(0) - 1
  211. D9 E1 FABS Replace ST(0) with its absolute value
  212. D8 /0 FADD m32real Add m32real to ST(0) and s.r. in ST(0)
  213. DC /0 FADD m64real Add m64real to ST(0) and s.r.in ST(0)
  214. D8 C0+i FADD ST(0),ST(i) Add ST(0) to ST(i) and s.r.in ST(0)
  215. DC C0+i FADD ST(i),ST(0) Add ST(i) to ST(0) and s.r. in ST(i)
  216. DE C0+i FADDP ST(i),ST(0) Add ST(0) to ST(i), s.r.in ST(i),pop r.stack
  217. DE C1 FADDP Add ST(0) to ST(1), s.r.in ST(1),pop r.stack
  218. DA /0 FIADD m32int Add m32int to ST(0) and s.r.in ST(0)
  219. DE /0 FIADD m16int Add m16int to ST(0) and s.r.in ST(0)
  220. DF /4 FBLD m80bcd Convert m80BCD to real and push
  221. DF /6 FBSTP m80bcd Store ST(0) in m80bcd and pop ST(0)
  222. D9 E0 FCHS Complements sign of ST(0)
  223. 9B DB E2 FCLEX Clear f.e.f. after checking for ..
  224. DB E2 FNCLEX Clear f.e.f. without checking for ..
  225. DA C0+i FCMOVB ST(0),ST(i) Move if below
  226. DA C8+i FCMOVE ST(0),ST(i) Move if equal
  227. DA D0+i FCMOVBE ST(0),ST(i) Move if below or equal
  228. DA D8+i FCMOVU ST(0),ST(i) Move if unordered
  229. DB C0+i FCMOVNB ST(0),ST(i) Move if not below
  230. DB C8+i FCMOVNE ST(0),ST(i) Move if not equal
  231. DB D0+i FCMOVNBE ST(0),ST(i) Move if not below or equal
  232. DB D8+i FCMOVNU ST(0),ST(i) Move if not unordered
  233. D8 /2 FCOM m32real Compare ST(0) with m32real.
  234. DC /2 FCOM m64real Compare ST(0) with m64real.
  235. D8 D0+i FCOM ST(i) Compare ST(0) with ST(i).
  236. D8 D1 FCOM Compare ST(0) with ST(1).
  237. D8 /3 FCOMP m32real Compare ST(0) with m32real,pop r.stack.
  238. DC /3 FCOMP m64real Compare ST(0) with m64real,pop r.stack.
  239. D8 D8+i FCOMP ST(i) Compare ST(0) with ST(i), pop
  240. D8 D9 FCOMP Compare ST(0) with ST(1), pop
  241. DE D9 FCOMPP Compare ST(0) with ST(1), pop pop
  242. DB F0+i FCOMI ST,ST(i) Compare ST(0) with ST(i), set status flags
  243. DF F0+i FCOMIP ST,ST(i) Compare ST(0) with ST(i), set s.f. ,pop
  244. DB E8+i FUCOMI ST,ST(i) Compare ST(0) with ST(i), check o.v.set s.f.
  245. DF E8+i FUCOMIP ST,ST(i) Compare ST(0) with ST(i), check ovssf pop
  246. D9 FF FCOS Replace ST(0) with its cosine
  247. D9 F6 FDECSTP Decrement TOP field in FPU status word.
  248. D8 /6 FDIV m32real Divide ST(0) by m32real and s.r.in ST(0)
  249. DC /6 FDIV m64real Divide ST(0) by m64real and s.r.in ST(0)
  250. D8 F0+i FDIV ST(0),ST(i) Divide ST(0) by ST(i) and s.r.in ST(0)
  251. DC F8+i FDIV ST(i),ST(0) Divide ST(i) by ST(0) and s.r.in ST(i)
  252. DE F8+i FDIVP ST(i),ST(0) Divide ST(i) by ST(0), s.r.in ST(i) pop
  253. DE F9 FDIVP Divide ST(1) by ST(0), s.r.in ST(1) pop
  254. DA /6 FIDIV m32int Divide ST(0) by m32int and s.r.in ST(0)
  255. DE /6 FIDIV m16int Divide ST(0) by m64int and s.r.in ST(0)
  256. D8 /7 FDIVR m32real Divide m32real by ST(0) and s.r.in ST(0)
  257. DC /7 FDIVR m64real Divide m64real by ST(0) and s.r.in ST(0)
  258. D8 F8+i FDIVR ST(0),ST(i) Divide ST(i) by ST(0) and s.r.in ST(0)
  259. DC F0+i FDIVR ST(i),ST(0) Divide ST(0) by ST(i) and s.r.in ST(i)
  260. DE F0+i FDIVRP ST(i),ST(0) Divide ST(0) by ST(i), s.r.in ST(i) pop
  261. DE F1 FDIVRP Divide ST(0) by ST(1), s.r.in ST(1) pop
  262. DA /7 FIDIVR m32int Divide m32int by ST(0) and s.r.in ST(0)
  263. DE /7 FIDIVR m16int Divide m64int by ST(0) and s.r.in ST(0)
  264. DD C0+i FFREE ST(i) Sets tag for ST(i) to empty
  265. DE /2 FICOM m16int Compare ST(0) with m16int
  266. DA /2 FICOM m32int Compare ST(0) with m32int
  267. DE /3 FICOMP m16int Compare ST(0) with m16int and pop
  268. DA /3 FICOMP m32int Compare ST(0) with m32int and pop
  269. DF /0 FILD m16int Push m16int
  270. DB /0 FILD m32int Push m32int
  271. DF /5 FILD m64int Push m64int
  272. D9 F7 FINCSTP Increment the TOP field FPU status r.
  273. 9B DB E3 FINIT Initialize FPU after ...
  274. DB E3 FNINIT Initialize FPU without ...
  275. DF /2 FIST m16int Store ST(0) in m16int
  276. DB /2 FIST m32int Store ST(0) in m32int
  277. DF /3 FISTP m16int Store ST(0) in m16int and pop
  278. DB /3 FISTP m32int Store ST(0) in m32int and pop
  279. DF /7 FISTP m64int Store ST(0) in m64int and pop
  280. D9 /0 FLD m32real Push m32real
  281. DD /0 FLD m64real Push m64real
  282. DB /5 FLD m80real Push m80real
  283. D9 C0+i FLD ST(i) Push ST(i)
  284. D9 E8 FLD1 Push +1.0
  285. D9 E9 FLDL2T Push log2 10
  286. D9 EA FLDL2E Push log2 e
  287. D9 EB FLDPI Push pi
  288. D9 EC FLDLG2 Push log10 2
  289. D9 ED FLDLN2 Push loge 2
  290. D9 EE FLDZ Push +0.0
  291. D9 /5 FLDCW m2byte Load FPU control word from m2byte
  292. D9 /4 FLDENV m14/28byte Load FPU environment from m14/m28
  293. D8 /1 FMUL m32real Multiply ST(0) by m32real and s.r.in ST(0)
  294. DC /1 FMUL m64real Multiply ST(0) by m64real and s.r.in ST(0)
  295. D8 C8+i FMUL ST(0),ST(i) Multiply ST(0) by ST(i) and s.r.in ST(0)
  296. DC C8+i FMUL ST(i),ST(0) Multiply ST(i) by ST(0) and s.r.in ST(i)
  297. DE C8+i FMULP ST(i),ST(0) Multiply ST(i) by ST(0), s.r.in ST(i) pop
  298. DE C9 FMULP Multiply ST(1) by ST(0), s.r.in ST(1) pop
  299. DA /1 FIMUL m32int Multiply ST(0) by m32int and s.r.in ST(0)
  300. DE /1 FIMUL m16int Multiply ST(0) by m16int and s.r.in ST(0)
  301. D9 D0 FNOP No operation is performed
  302. D9 F3 FPATAN Repalces ST(1) with arctan(ST(1)/ST(0)) pop
  303. D9 F8 FPREM Replaces ST(0) with rem (ST(0)/ST(1))
  304. D9 F5 FPREM1 Replaces ST(0) with IEEE rem(ST(0)/ST(1))
  305. D9 F2 FPTAN Replaces ST(0) with its tangent push 1.0
  306. D9 FC FRNDINT Round ST(0) to an integer
  307. DD /4 FRSTOR m94/108byte Load FPU status from m94 or m108 byte
  308. 9B DD /6 FSAVE m94/108byte Store FPU status to m94 or m108
  309. DD /6 FNSAVE m94/108byte Store FPU environment to m94 or m108
  310. D9 FD FSCALE Scale ST(0) by ST(1)
  311. D9 FE FSIN Replace ST(0) with its sine
  312. D9 FB FSINCOS Compute sine and consine of ST(0) s push c
  313. D9 FA FSQRT square root of ST(0)
  314. D9 /2 FST m32real Copy ST(0) to m32real
  315. DD /2 FST m64real Copy ST(0) to m64real
  316. DD D0+i FST ST(i) Copy ST(0) to ST(i)
  317. D9 /3 FSTP m32real Copy ST(0) to m32real and pop
  318. DD /3 FSTP m64real Copy ST(0) to m64real and pop
  319. DB /7 FSTP m80real Copy ST(0) to m80real and pop
  320. DD D8+i FSTP ST(i) Copy ST(0) to ST(i) and pop
  321. 9B D9 /7 FSTCW m2byte Store FPU control word
  322. D9 /7 FNSTCW m2byte Store FPU control word without
  323. 9B D9 /6 FSTENV m14/28byte Store FPU environment
  324. D9 /6 FNSTENV m14/28byte Store FPU env without
  325. 9B DD /7 FSTSW m2byte Store FPU status word at m2byte after
  326. 9B DF E0 FSTSW AX Store FPU status word in AX after
  327. DD /7 FNSTSW m2byte Store FPU status word at m2byte without
  328. DF E0 FNSTSW AX Store FPU status word in AX without
  329. D8 /4 FSUB m32real Sub m32real from ST(0) and s.r.in ST(0)
  330. DC /4 FSUB m64real Sub m64real from ST(0) and s.r.in ST(0)
  331. D8 E0+i FSUB ST(0),ST(i) Sub ST(i) from ST(0) and s.r.in ST(0)
  332. DC E8+i FSUB ST(i),ST(0) Sub ST(0) from ST(i) and s.r.in ST(i)
  333. DE E8+i FSUBP ST(i),ST(0) Sub ST(0) from ST(i), s.r.in ST(i) pop
  334. DE E9 FSUBP Sub ST(0) from ST(1), s.r.in ST(1) pop
  335. DA /4 FISUB m32int Sub m32int from ST(0) and s.r.in ST(0)
  336. DE /4 FISUB m16int Sub m16int from ST(0) and s.r.in ST(0)
  337. D8 /5 FSUBR m32real Sub ST(0) from m32real and s.r.in ST(0)
  338. DC /5 FSUBR m64real Sub ST(0) from m64real and s.r.in ST(0)
  339. D8 E8+i FSUBR ST(0),ST(i) Sub ST(0) from ST(i) and s.r.in ST(0)
  340. DC E0+i FSUBR ST(i),ST(0) Sub ST(i) from ST(0) and s.r.in ST(i)
  341. DE E0+i FSUBRP ST(i),ST(0) Sub ST(i) from ST(0), s.r. in ST(i) pop
  342. DE E1 FSUBRP Sub ST(1) from ST(0), s.r.in ST(1) pop
  343. DA /5 FISUBR m32int Sub ST(0) from m32int and s.r.in ST(0)
  344. DE /5 FISUBR m16int Sub ST(0) from m16int and s.r.in ST(0)
  345. D9 E4 FTST Compare ST(0) with 0.0
  346. DD E0+i FUCOM ST(i) Compare ST(0) with ST(i)
  347. DD E1 FUCOM Compare ST(0) with ST(1)
  348. DD E8+i FUCOMP ST(i) Compare ST(0) with ST(i) and pop
  349. DD E9 FUCOMP Compare ST(0) with ST(1) and pop
  350. DA E9 FUCOMPP Compare ST(0) with ST(1) and pop pop
  351. D9 E5 FXAM Classify value or number in ST(0)
  352. D9 C8+i FXCH ST(i) Exchange ST(0) and ST(i)
  353. D9 C9 FXCH Exchange ST(0) and ST(1)
  354. D9 F4 FXTRACT Seperate value in ST(0) exp. and sig.
  355. D9 F1 FYL2X Replace ST(1) with ST(1)*log2ST(0) and pop
  356. D9 F9 FYL2XP1 Replace ST(1) with ST(1)*log2(ST(0)+1) pop
  357. F4 HLT Halt
  358. F6 /7 IDIV r/m8 Divide
  359. F7 /7 IDIV r/m32 Divide
  360. F6 /5 IMUL r/m8 Multiply
  361. F7 /5 IMUL r/m32 Multiply
  362. 0F AF /r IMUL r32,r/m32 Multiply
  363. 6B /r ib IMUL r32,r/m32,imm8 Multiply
  364. 6B /r ib IMUL r32,imm8 Multiply
  365. 69 /r id IMUL r32,r/m32,imm32 Multiply
  366. 69 /r id IMUL r32,imm32 Multiply
  367. E4 ib IN AL,imm8 Input byte from imm8 I/O port address into AL
  368. E5 ib IN EAX,imm8 Input byte from imm8 I/O port address into EAX
  369. EC IN AL,DX Input byte from I/O port in DX into AL
  370. ED IN EAX,DX Input doubleword from I/O port in DX into EAX
  371. FE /0 INC r/m8 Increment 1
  372. FF /0 INC r/m32 Increment 1
  373. 40+rd INC r32 Increment register by 1
  374. 6C INS m8 Input byte from I/O(DX) into ES:(E)DI
  375. 6D INS m32 Input dw from I/O(DX) into ES:(E)DI
  376. CC INT 3 Interrupt 3--trap to debugger
  377. CD ib INT imm8 Interrupt vector number (imm8)
  378. CE INTO Interrupt 4--if overflow flag is 1
  379. 0F 08 INVD Flush internal caches
  380. 0F 01 /7 INVLPG m Invalidate TLB Entry for page (m)
  381. CF IRETD Interrupt return(32)
  382. 77 cb JA rel8 Jump short if above
  383. 73 cb JAE rel8 Jump short if above or equal
  384. 76 cb JBE rel8 Jump short if below or equal
  385. 72 cb JC rel8 Jump short if carry
  386. E3 cb JECXZ rel8 Jump short if ECX register is 0
  387. 74 cb JE rel8 Jump short if equal
  388. 7F cb JG rel8 Jump short if greater
  389. 7D cb JGE rel8 Jump short if greater or equal
  390. 7C cb JL rel8 Jump short if less
  391. 7E cb JLE rel8 Jump short if less or equal
  392. 75 cb JNE rel8 Jump short if not equal
  393. 71 cb JNO rel8 Jump short if not overflow
  394. 79 cb JNS rel8 Jump short if not sign
  395. 70 cb JO rel8 Jump short if overflow
  396. 7A cb JPE rel8 Jump short if parity even
  397. 7B cb JPO rel8 Jump short if parity odd
  398. 78 cb JS rel8 Jump short if sign
  399. 0F 87 cd JA rel32 Jump near if above
  400. 0F 83 cd JAE rel32 Jump near if above or equal
  401. 0F 82 cd JB rel32 Jump near if below
  402. 0F 86 cd JBE rel32 Jump near if below or equal
  403. 0F 84 cd JE rel32 Jump near if equal
  404. 0F 8F cd JG rel32 Jump near if greater
  405. 0F 8D cd JGE rel32 Jump near if greater or equal
  406. 0F 8C cd JL rel32 Jump near if less
  407. 0F 8E cd JLE rel32 Jump near if less or equal
  408. 0F 85 cd JNE rel32 Jump near if not equal
  409. 0F 81 cd JNO rel32 Jump near if not overflow
  410. 0F 89 cd JNS rel32 Jump near if not sign
  411. 0F 80 cd JO rel32 Jump near if overflow
  412. 0F 8A cd JPE rel32 Jump near if parity even
  413. 0F 8B cd JPO rel32 Jump near if parity odd
  414. 0F 88 cd JS rel32 Jump near if sign
  415. EB cb JMP rel8 Jump short, relative,
  416. E9 cd JMP rel32 Jump near, relative,
  417. FF /4 JMP r/m32 Jump near, abs.ind.in r/m32
  418. EA cp JMP ptr16:32 Jump far, abs.add given in operand
  419. FF /r JMP m16:32 Jump far, abs.ind.in m16:32
  420. 9F LAHF Load Status Flags into AH
  421. 0F 02 /r LAR r32,r/m32 Load Access Rights Byte
  422. C5 /r LDS r32,m16:32 Load DS:r32 with far ptr
  423. 8D /r LEA r32,m Load effective address
  424. C9 LEAVE Set ESP to EBP, then pop EBP
  425. C4 /r LES r32,m16:32 Load ES:r32 with far ptr
  426. 0F B4 /r LFS r32,m16:32 Load FS:r32 with far ptr
  427. 0F B5 /r LGS r32,m16:32 Load GS:r32 with far ptr
  428. 0F 01 /2 LGDT m16&32 Load m into GDTR
  429. 0F 01 /3 LIDT m16&32 Load m into IDTR
  430. 0F 00 /2 LLDT r/m16 Load segment selector r/m16 into LDTR
  431. 0F 01 /6 LMSW r/m16 Load r/m16 in machine status word of CR0
  432. F0 LOCK Asserts LOCK signal for duration ..
  433. AC LODS m8 Load byte at address DS:(E)SI into AL
  434. AD LODS m32 Load dword at address DS:(E)SI into EAX
  435. E2 cb LOOP rel8 Dec count;jump if count # 0
  436. E1 cb LOOPE rel8 Dec count;jump if count # 0 and ZF=1
  437. E1 cb LOOPZ rel8 Dec count;jump if count # 0 and ZF=1
  438. E0 cb LOOPNE rel8 Dec count;jump if count # 0 and ZF=0
  439. E0 cb LOOPNZ rel8 Dec count;jump if count # 0 and ZF=0
  440. 0F 03 /r LSL r16,r/m16 Load Segment Limit
  441. 0F 03 /r LSL r32,r/m32 Load Segment Limit
  442. 0F B2 /r LSS r32,m16:32 Load SS:r32 with far ptr
  443. 0F 00 /3 LTR r/m16 Load Task Register
  444. 88 /r MOV r/m8,r8 Move
  445. 89 /r MOV r/m32,r32 Move
  446. 8A /r MOV r8,r/m8 Move
  447. 8B /r MOV r32,r/m32 Move
  448. 8C /r MOV r/m16,Sreg** Move segment register to r/m16
  449. 8E /r MOV Sreg,r/m16** Move r/m16 to segment register
  450. A0 MOV AL, moffs8* Move byte at ( seg:offset) to AL
  451. A1 MOV AX, moffs16* Move word at ( seg:offset) to AX
  452. A1 MOV EAX, moffs32* Move dword at ( seg:offset) to EAX
  453. A2 MOV moffs8*,AL Move AL to ( seg:offset)
  454. A3 MOV moffs16*,AX Move AX to ( seg:offset)
  455. A3 MOV moffs32*,EAX Move EAX to ( seg:offset)
  456. B0+rb MOV r8,imm8 Move imm8 to r8
  457. B8+rd MOV r32,imm32 Move imm32 to r32
  458. C6 /0 ib MOV r/m8,imm8 Move imm8 to r/m8
  459. C7 /0 id MOV r/m32,imm32 Move imm32 to r/m32
  460. 0F 22 /r MOV CR0, r32 Move r32 to CR0
  461. 0F 22 /r MOV CR2, r32 Move r32 to CR2
  462. 0F 22 /r MOV CR3, r32 Move r32 to CR3
  463. 0F 22 /r MOV CR4, r32 Move r32 to CR4
  464. 0F 20 /r MOV r32,CR0 Move CR0 to r32
  465. 0F 20 /r MOV r32,CR2 Move CR2 to r32
  466. 0F 20 /r MOV r32,CR3 Move CR3 to r32
  467. 0F 20 /r MOV r32,CR4 Move CR4 to r32
  468. 0F 21 /r MOV r32,DR0-DR7 Move debug register to r32
  469. 0F 23 /r MOV DR0-DR7,r32 Move r32 to debug register
  470. 0F 6E /r MOVD mm,r/m32 Move doubleword from r/m32 to mm
  471. 0F 7E /r MOVD r/m32,mm Move doubleword from mm to r/m32
  472. 0F 6F /r MOVQ mm,mm/m64 Move quadword from mm/m64 to mm
  473. 0F 7F /r MOVQ mm/m64,mm Move quadword from mm to mm/m64
  474. A4 MOVS m8,m8 Move byte at DS:(E)SI to ES:(E)DI
  475. A5 MOVS m32,m32 Move dword at DS:(E)SI to ES:(E)DI
  476. 0F BE /r MOVSX r32,r/m8 Move byte to doubleword, sign-extension
  477. 0F BF /r MOVSX r32,r/m16 Move word to doubleword, sign-extension
  478. 0F B6 /r MOVZX r32,r/m8 Move byte to doubleword, zero-extension
  479. 0F B7 /r MOVZX r32,r/m16 Move word to doubleword, zero-extension
  480. F6 /4 MUL r/m8 Unsigned multiply
  481. F7 /4 MUL r/m32 Unsigned multiply
  482. F6 /3 NEG r/m8 Two's complement negate r/m8
  483. F7 /3 NEG r/m32 Two's complement negate r/m32
  484. 90 NOP No operation
  485. F6 /2 NOT r/m8 Reverse each bit of r/m8
  486. F7 /2 NOT r/m32 Reverse each bit of r/m32
  487. 0C ib OR AL,imm8 OR
  488. 0D id OR EAX,imm32 OR
  489. 80 /1 ib OR r/m8,imm8 OR
  490. 81 /1 id OR r/m32,imm32 OR
  491. 83 /1 ib OR r/m32,imm8 OR
  492. 08 /r OR r/m8,r8 OR
  493. 09 /r OR r/m32,r32 OR
  494. 0A /r OR r8,r/m8 OR
  495. 0B /r OR r32,r/m32 OR
  496. E6 ib OUT imm8,AL Output byte in AL to I/O(imm8)
  497. E7 ib OUT imm8,EAX Output dword in EAX to I/O(imm8)
  498. EE OUT DX,AL Output byte in AL to I/O(DX)
  499. EF OUT DX,EAX Output dword in EAX to I/O(DX)
  500. 6E OUTS DX,m8 Output byte from DS:(E)SI to I/O(DX)
  501. 6F OUTS DX,m32 Output dword from DS:(E)SI to I/O (DX)
  502. 0F 63 /r PACKSSWB mm,mm/m64 Pack with Signed Saturation
  503. 0F 6B /r PACKSSDW mm,mm/m64 Pack with Signed Saturation
  504. 0F 67 /r PACKUSWB mm,mm/m64 Pack with Unsigned Saturation
  505. 0F FC /r PADDB mm,mm/m64 Add packed bytes
  506. 0F FD /r PADDW mm,mm/m64 Add packed words
  507. 0F FE /r PADDD mm,mm/m64 Add packed dwords
  508. 0F EC /r PADDSB mm,mm/m64 Add signed packed bytes
  509. 0F ED /r PADDSW mm,mm/m64 Add signed packed words
  510. 0F DC /r PADDUSB mm,mm/m64 Add unsigned pkd bytes
  511. 0F DD /r PADDUSW mm,mm/m64 Add unsigned pkd words
  512. 0F DB /r PAND mm,mm/m64 AND quadword from .. to ..
  513. 0F DF /r PANDN mm,mm/m64 And qword from .. to NOT qw in mm
  514. 0F 74 /r PCMPEQB mm,mm/m64 Packed Compare for Equal
  515. 0F 75 /r PCMPEQW mm,mm/m64 Packed Compare for Equal
  516. 0F 76 /r PCMPEQD mm,mm/m64 Packed Compare for Equal
  517. 0F 64 /r PCMPGTB mm,mm/m64 Packed Compare for GT
  518. 0F 65 /r PCMPGTW mm,mm/m64 Packed Compare for GT
  519. 0F 66 /r PCMPGTD mm,mm/m64 Packed Compare for GT
  520. 0F F5 /r PMADDWD mm,mm/m64 Packed Multiply and Add
  521. 0F E5 /r PMULHW mm,mm/m64 Packed Multiply High
  522. 0F D5 /r PMULLW mm,mm/m64 Packed Multiply Low
  523. 8F /0 POP m32 Pop m32
  524. 58+rd POP r32 Pop r32
  525. 1F POP DS Pop DS
  526. 07 POP ES Pop ES
  527. 17 POP SS Pop SS
  528. 0F A1 POP FS Pop FS
  529. 0F A9 POP GS Pop GS
  530. 61 POPAD Pop EDI,... and EAX
  531. 9D POPFD Pop Stack into EFLAGS Register
  532. 0F EB /r POR mm,mm/m64 OR qword from .. to mm
  533. 0F F1 /r PSLLW mm,mm/m64 Packed Shift Left Logical
  534. 0F 71 /6 ib PSLLW mm,imm8 Packed Shift Left Logical
  535. 0F F2 /r PSLLD mm,mm/m64 Packed Shift Left Logical
  536. 0F 72 /6 ib PSLLD mm,imm8 Packed Shift Left Logical
  537. 0F F3 /r PSLLQ mm,mm/m64 Packed Shift Left Logical
  538. 0F 73 /6 ib PSLLQ mm,imm8 Packed Shift Left Logical
  539. 0F E1 /r PSRAW mm,mm/m64 Packed Shift Right Arithmetic
  540. 0F 71 /4 ib PSRAW mm,imm8 Packed Shift Right Arithmetic
  541. 0F E2 /r PSRAD mm,mm/m64 Packed Shift Right Arithmetic
  542. 0F 72 /4 ib PSRAD mm,imm8 Packed Shift Right Arithmetic
  543. 0F D1 /r PSRLW mm,mm/m64 Packed Shift Right Logical
  544. 0F 71 /2 ib PSRLW mm,imm8 Packed Shift Right Logical
  545. 0F D2 /r PSRLD mm,mm/m64 Packed Shift Right Logical
  546. 0F 72 /2 ib PSRLD mm,imm8 Packed Shift Right Logical
  547. 0F D3 /r PSRLQ mm,mm/m64 Packed Shift Right Logical
  548. 0F 73 /2 ib PSRLQ mm,imm8 Packed Shift Right Logical
  549. 0F F8 /r PSUBB mm,mm/m64 Packed Subtract
  550. 0F F9 /r PSUBW mm,mm/m64 Packed Subtract
  551. 0F FA /r PSUBD mm,mm/m64 Packed Subtract
  552. 0F E8 /r PSUBSB mm,mm/m64 Packed Subtract with Saturation
  553. 0F E9 /r PSUBSW mm,mm/m64 Packed Subtract with Saturation
  554. 0F D8 /r PSUBUSB mm,mm/m64 Packed Subtract Unsigned with S.
  555. 0F D9 /r PSUBUSW mm,mm/m64 Packed Subtract Unsigned with S.
  556. 0F 68 /r PUNPCKHBW mm,mm/m64 Unpack High Packed Data
  557. 0F 69 /r PUNPCKHWD mm,mm/m64 Unpack High Packed Data
  558. 0F 6A /r PUNPCKHDQ mm,mm/m64 Unpack High Packed Data
  559. 0F 60 /r PUNPCKLBW mm,mm/m64 Unpack Low Packed Data
  560. 0F 61 /r PUNPCKLWD mm,mm/m64 Unpack Low Packed Data
  561. 0F 62 /r PUNPCKLDQ mm,mm/m64 Unpack Low Packed Data
  562. FF /6 PUSH r/m32 Push r/m32
  563. 50+rd PUSH r32 Push r32
  564. 6A ib PUSH imm8 Push imm8
  565. 68 id PUSH imm32 Push imm32
  566. 0E PUSH CS Push CS
  567. 16 PUSH SS Push SS
  568. 1E PUSH DS Push DS
  569. 06 PUSH ES Push ES
  570. 0F A0 PUSH FS Push FS
  571. 0F A8 PUSH GS Push GS
  572. 60 PUSHAD Push All g-regs
  573. 9C PUSHFD Push EFLAGS
  574. 0F EF /r PXOR mm,mm/m64 XOR qword
  575. D0 /2 RCL r/m8,1 Rotate 9 bits left once
  576. D2 /2 RCL r/m8,CL Rotate 9 bits left CL times
  577. C0 /2 ib RCL r/m8,imm8 Rotate 9 bits left imm8 times
  578. D1 /2 RCL r/m32,1 Rotate 33 bits left once
  579. D3 /2 RCL r/m32,CL Rotate 33 bits left CL times
  580. C1 /2 ib RCL r/m32,imm8 Rotate 33 bits left imm8 times
  581. D0 /3 RCR r/m8,1 Rotate 9 bits right once
  582. D2 /3 RCR r/m8,CL Rotate 9 bits right CL times
  583. C0 /3 ib RCR r/m8,imm8 Rotate 9 bits right imm8 times
  584. D1 /3 RCR r/m32,1 Rotate 33 bits right once
  585. D3 /3 RCR r/m32,CL Rotate 33 bits right CL times
  586. C1 /3 ib RCR r/m32,imm8 Rotate 33 bits right imm8 times
  587. D0 /0 ROL r/m8,1 Rotate 8 bits r/m8 left once
  588. D2 /0 ROL r/m8,CL Rotate 8 bits r/m8 left CL times
  589. C0 /0 ib ROL r/m8,imm8 Rotate 8 bits r/m8 left imm8 times
  590. D1 /0 ROL r/m32,1 Rotate 32 bits r/m32 left once
  591. D3 /0 ROL r/m32,CL Rotate 32 bits r/m32 left CL times
  592. C1 /0 ib ROL r/m32,imm8 Rotate 32 bits r/m32 left imm8 times
  593. D0 /1 ROR r/m8,1 Rotate 8 bits r/m8 right once
  594. D2 /1 ROR r/m8,CL Rotate 8 bits r/m8 right CL times
  595. C0 /1 ib ROR r/m8,imm8 Rotate 8 bits r/m16 right imm8 times
  596. D1 /1 ROR r/m32,1 Rotate 32 bits r/m32 right once
  597. D3 /1 ROR r/m32,CL Rotate 32 bits r/m32 right CL times
  598. C1 /1 ib ROR r/m32,imm8 Rotate 32 bits r/m32 right imm8 times
  599. 0F 32 RDMSR Read from Model Specific Register
  600. 0F 33 RDPMC Read Performance-Monitoring counters
  601. 0F 31 RDTSC Read Time-Stamp Counter
  602. F3 6C REP INS m8,DX Input ECX bytes from port DX into ES:[(E)DI]
  603. F3 6D REP INS m32,DX Input ECX dwords from port DX into ES:[(E)DI]
  604. F3 A4 REP MOVS m8,m8 Move ECX bytes from DS:[(E)SI] to ES:[(E)DI]
  605. F3 A5 REP MOVS m32,m32 Move ECX dwords from DS:[(E)SI] to ES:[(E)DI]
  606. F3 6E REP OUTS DX,m8 Output ECX bytes from DS:[(E)SI] to port DX
  607. F3 6F REP OUTS DX,m32 Output ECX dwords from DS:[(E)SI] to port DX
  608. F3 AC REP LODS AL Load ECX bytes from DS:[(E)SI] to AL
  609. F3 AD REP LODS EAX Load ECX dwords from DS:[(E)SI] to EAX
  610. F3 AA REP STOS m8 Fill ECX bytes at ES:[(E)DI] with AL
  611. F3 AB REP STOS m32 Fill ECX dwords at ES:[(E)DI] with EAX
  612. F3 A6 REPE CMPS m8,m8 Find nonmatching bytes in m and m
  613. F3 A7 REPE CMPS m32,m32 Find nonmatching dwords in m and m
  614. F3 AE REPE SCAS m8 Find non-AL byte starting at
  615. F3 AF REPE SCAS m32 Find non-EAX dword starting at
  616. F2 A6 REPNE CMPS m8,m8 Find matching bytes in m and m
  617. F2 A7 REPNE CMPS m32,m32 Find matching dwords in m and m
  618. F2 AE REPNE SCAS m8 Find AL, starting at ES:[(E)DI]
  619. F2 AF REPNE SCAS m32 Find EAX, starting at ES:[(E)DI]
  620. C3 RET Near return
  621. CB RET Far return
  622. C2 iw RET imm16 Near return, pop imm16 bytes from stack
  623. CA iw RET imm16 Far return, pop imm16 bytes from stack
  624. 0F AA RSM Resume from System Management
  625. 9E SAHF Store AH into Flags
  626. D0 /4 SAL r/m8,1 Shift Arithmetic Left
  627. D2 /4 SAL r/m8,CL Shift Arithmetic Left
  628. C0 /4 ib SAL r/m8,imm8 Shift Arithmetic Left
  629. D1 /4 SAL r/m32,1 Shift Arithmetic Left
  630. D3 /4 SAL r/m32,CL Shift Arithmetic Left
  631. C1 /4 ib SAL r/m32,imm8 Shift Arithmetic Left
  632. D0 /7 SAR r/m8,1 Shift Arithmetic Right
  633. D2 /7 SAR r/m8,CL Shift Arithmetic Right
  634. C0 /7 ib SAR r/m8,imm8 Shift Arithmetic Right
  635. D1 /7 SAR r/m32,1 Shift Arithmetic Right
  636. D3 /7 SAR r/m32,CL Shift Arithmetic Right
  637. C1 /7 ib SAR r/m32,imm8 Shift Arithmetic Right
  638. D0 /4 SHL r/m8,1 Shift Logical Left
  639. D2 /4 SHL r/m8,CL Shift Logical Left
  640. C0 /4 ib SHL r/m8,imm8 Shift Logical Left
  641. D1 /4 SHL r/m32,1 Shift Logical Left
  642. D3 /4 SHL r/m32,CL Shift Logical Left
  643. C1 /4 ib SHL r/m32,imm8 Shift Logical Left
  644. D0 /5 SHR r/m8,1 Shift Logical Right
  645. D2 /5 SHR r/m8,CL Shift Logical Right
  646. C0 /5 ib SHR r/m8,imm8 Shift Logical Right
  647. D1 /5 SHR r/m32,1 Shift Logical Right
  648. D3 /5 SHR r/m32,CL Shift Logical Right
  649. C1 /5 ib SHR r/m32,imm8 Shift Logical Right
  650. 1C ib SBB AL,imm8 Subtract with borrow
  651. 1D id SBB EAX,imm32 Subtract with borrow
  652. 80 /3 ib SBB r/m8,imm8 Subtract with borrow
  653. 81 /3 id SBB r/m32,imm32 Subtract with borrow
  654. 83 /3 ib SBB r/m32,imm8 Subtract with borrow
  655. 18 /r SBB r/m8,r8 Subtract with borrow
  656. 19 /r SBB r/m32,r32 Subtract with borrow
  657. 1A /r SBB r8,r/m8 Subtract with borrow
  658. 1B /r SBB r32,r/m32 Subtract with borrow
  659. AE SCAS m8 Scan String
  660. AF SCAS m32 Scan String
  661. 0F 97 /r SETA r/m8 Set byte if above
  662. 0F 93 /r SETAE r/m8 Set byte if above or equal
  663. 0F 92 /r SETB r/m8 Set byte if below
  664. 0F 96 /r SETBE r/m8 Set byte if below or equal
  665. 0F 94 /r SETE r/m8 Set byte if equal
  666. 0F 9F /r SETG r/m8 Set byte if greater
  667. 0F 9D /r SETGE r/m8 Set byte if greater or equal
  668. 0F 9C /r SETL r/m8 Set byte if less
  669. 0F 9E /r SETLE r/m8 Set byte if less or equal
  670. 0F 95 /r SETNE r/m8 Set byte if not equal
  671. 0F 91 /r SETNO r/m8 Set byte if not overflow
  672. 0F 99 /r SETNS r/m8 Set byte if not sign
  673. 0F 90 /r SETO r/m8 Set byte if overflow
  674. 0F 9A /r SETPE r/m8 Set byte if parity even
  675. 0F 9B /r SETPO r/m8 Set byte if parity odd
  676. 0F 98 /r SETS r/m8 Set byte if sign
  677. 0F 01 /0 SGDT m Store GDTR to m
  678. 0F 01 /1 SIDT m Store IDTR to m
  679. 0F A4 /r ib SHLD r/m32,r32,imm8 Double Precision Shift Left
  680. 0F A5 /r SHLD r/m32,r32,CL Double Precision Shift Left
  681. 0F AC /r ib SHRD r/m32,r32,imm8 Double Precision Shift Right
  682. 0F AD /r SHRD r/m32,r32,CL Double Precision Shift Right
  683. 0F 00 /0 SLDT r/m32 Store Local Descriptor Table Register
  684. 0F 01 /4 SMSW r/m32 Store Machine Status Word
  685. F9 STC Set Carry Flag
  686. FD STD Set Direction Flag
  687. FB STI Set Interrup Flag
  688. AA STOS m8 Store String
  689. AB STOS m32 Store String
  690. 0F 00 /1 STR r/m16 Store Task Register
  691. 2C ib SUB AL,imm8 Subtract
  692. 2D id SUB EAX,imm32 Subtract
  693. 80 /5 ib SUB r/m8,imm8 Subtract
  694. 81 /5 id SUB r/m32,imm32 Subtract
  695. 83 /5 ib SUB r/m32,imm8 Subtract
  696. 28 /r SUB r/m8,r8 Subtract
  697. 29 /r SUB r/m32,r32 Subtract
  698. 2A /r SUB r8,r/m8 Subtract
  699. 2B /r SUB r32,r/m32 Subtract
  700. A8 ib TEST AL,imm8 Logical Compare
  701. A9 id TEST EAX,imm32 Logical Compare
  702. F6 /0 ib TEST r/m8,imm8 Logical Compare
  703. F7 /0 id TEST r/m32,imm32 Logical Compare
  704. 84 /r TEST r/m8,r8 Logical Compare
  705. 85 /r TEST r/m16,r16 Logical Compare
  706. 85 /r TEST r/m32,r32 Logical Compare
  707. 0F 0B UD2 Undifined Instruction
  708. 0F 00 /4 VERR r/m16 Verify a Segment for Reading
  709. 0F 00 /5 VERW r/m16 Verify a Segment for Writing
  710. 9B WAIT Wait
  711. 9B FWAIT Wait
  712. 0F 09 WBINVD Write Back and Invalidate Cache
  713. 0F 30 WRMSR Write to Model Specific Register
  714. 0F C0 /r XADD r/m8,r8 Exchange and Add
  715. 0F C1 /r XADD r/m16,r16 Exchange and Add
  716. 0F C1 /r XADD r/m32,r32 Exchange and Add
  717. 90+rd XCHG EAX,r32 Exchange r32 with EAX
  718. 90+rd XCHG r32,EAX Exchange EAX with r32
  719. 86 /r XCHG r/m8,r8 Exchange byte
  720. 86 /r XCHG r8,r/m8 Exchange byte
  721. 87 /r XCHG r/m32,r32 Exchange doubleword
  722. 87 /r XCHG r32,r/m32 Exchange doubleword
  723. D7 XLAT m8 Table Look-up Translation
  724. 34 ib XOR AL,imm8 Logical Exclusive OR
  725. 35 id XOR EAX,imm32 Logical Exclusive OR
  726. 80 /6 ib XOR r/m8,imm8 Logical Exclusive OR
  727. 81 /6 id XOR r/m32,imm32 Logical Exclusive OR
  728. 83 /6 ib XOR r/m32,imm8 Logical Exclusive OR
  729. 30 /r XOR r/m8,r8 Logical Exclusive OR
  730. 31 /r XOR r/m32,r32 Logical Exclusive OR
  731. 32 /r XOR r8,r/m8 Logical Exclusive OR
  732. 33 /r XOR r32,r/m32 Logical Exclusive OR
  733.  
  734.  
  735. Opcode ordered Listing
  736. ===============================================================================
  737. Opcode,Data Instruction Explanation
  738. -------------------------------------------------------------------------------
  739. 00 /r ADD r/m8,r8 ADD
  740. 01 /r ADD r/m32,r32 ADD
  741. 02 /r ADD r8,r/m8 ADD
  742. 03 /r ADD r32,r/m32 ADD
  743. 04 ib ADD AL,imm8 Add
  744. 05 id ADD EAX,imm32 Add
  745. 06 PUSH ES Push ES
  746. 07 POP ES Pop ES
  747. 08 /r OR r/m8,r8 OR
  748. 09 /r OR r/m32,r32 OR
  749. 0A /r OR r8,r/m8 OR
  750. 0B /r OR r32,r/m32 OR
  751. 0C ib OR AL,imm8 OR
  752. 0D id OR EAX,imm32 OR
  753. 0E PUSH CS Push CS
  754. 0F 00 /0 SLDT r/m32 Store Local Descriptor Table Register
  755. 0F 00 /1 STR r/m16 Store Task Register
  756. 0F 00 /2 LLDT r/m16 Load segment selector r/m16 into LDTR
  757. 0F 00 /3 LTR r/m16 Load Task Register
  758. 0F 00 /4 VERR r/m16 Verify a Segment for Reading
  759. 0F 00 /5 VERW r/m16 Verify a Segment for Writing
  760. 0F 01 /0 SGDT m Store GDTR to m
  761. 0F 01 /1 SIDT m Store IDTR to m
  762. 0F 01 /2 LGDT m16&32 Load m into GDTR
  763. 0F 01 /3 LIDT m16&32 Load m into IDTR
  764. 0F 01 /4 SMSW r/m32 Store Machine Status Word
  765. 0F 01 /6 LMSW r/m16 Load r/m16 in machine status word of CR0
  766. 0F 01 /7 INVLPG m Invalidate TLB Entry for page (m)
  767. 0F 02 /r LAR r32,r/m32 Load Access Rights Byte
  768. 0F 03 /r LSL r16,r/m16 Load Segment Limit
  769. 0F 03 /r LSL r32,r/m32 Load Segment Limit
  770. 0F 06 CLTS Clear Task-Switched Flag in Control Reg. Zero
  771. 0F 08 INVD Flush internal caches
  772. 0F 09 WBINVD Write Back and Invalidate Cache
  773. 0F 0B UD2 Undifined Instruction
  774. 0F 20 /r MOV r32,CR0 Move CR0 to r32
  775. 0F 20 /r MOV r32,CR2 Move CR2 to r32
  776. 0F 20 /r MOV r32,CR3 Move CR3 to r32
  777. 0F 20 /r MOV r32,CR4 Move CR4 to r32
  778. 0F 21 /r MOV r32,DR0-DR7 Move debug register to r32
  779. 0F 22 /r MOV CR0, r32 Move r32 to CR0
  780. 0F 22 /r MOV CR2, r32 Move r32 to CR2
  781. 0F 22 /r MOV CR3, r32 Move r32 to CR3
  782. 0F 22 /r MOV CR4, r32 Move r32 to CR4
  783. 0F 23 /r MOV DR0-DR7,r32 Move r32 to debug register
  784. 0F 30 WRMSR Write to Model Specific Register
  785. 0F 31 RDTSC Read Time-Stamp Counter
  786. 0F 32 RDMSR Read from Model Specific Register
  787. 0F 33 RDPMC Read Performance-Monitoring counters
  788. 0F 40 /r CMOVO r32,r/m32 Move if overflow
  789. 0F 41 /r CMOVNO r32,r/m32 Move if not overflow
  790. 0F 42 /r CMOVB r32,r/m32 Move if below
  791. 0F 42 /r CMOVC r32,r/m32 Move if carry
  792. 0F 42 /r CMOVNAE r32,r/m32 Move if not above or equal
  793. 0F 43 /r CMOVAE r32,r/m32 Move if above or equal
  794. 0F 43 /r CMOVNB r32,r/m32 Move if not below
  795. 0F 43 /r CMOVNC r32,r/m32 Move if not carry
  796. 0F 44 /r CMOVE r32,r/m32 Move if equal
  797. 0F 44 /r CMOVZ r32,r/m32 Move if zero
  798. 0F 45 /r CMOVNE r32,r/m32 Move if not equal
  799. 0F 45 /r CMOVNZ r32,r/m32 Move if not zero
  800. 0F 46 /r CMOVBE r32,r/m32 Move if below or equal
  801. 0F 46 /r CMOVNA r32,r/m32 Move if not above
  802. 0F 47 /r CMOVA r32,r/m32 Move if above
  803. 0F 47 /r CMOVNBE r32,r/m32 Move if not below or equal
  804. 0F 48 /r CMOVS r32,r/m32 Move if sign
  805. 0F 49 /r CMOVNS r32,r/m32 Move if not sign
  806. 0F 4A /r CMOVP r32,r/m32 Move if parity
  807. 0F 4A /r CMOVPE r32,r/m32 Move if parity even
  808. 0F 4B /r CMOVNP r32,r/m32 Move if not parity
  809. 0F 4B /r CMOVPO r32,r/m32 Move if parity odd
  810. 0F 4C /r CMOVL r32,r/m32 Move if less
  811. 0F 4C /r CMOVNGE r32,r/m32 Move if not greater or equal
  812. 0F 4D /r CMOVGE r32,r/m32 Move if greater or equal
  813. 0F 4D /r CMOVNL r32,r/m32 Move if not less
  814. 0F 4E /r CMOVLE r32,r/m32 Move if less or equal
  815. 0F 4E /r CMOVNG r32,r/m32 Move if not greater
  816. 0F 4F /r CMOVG r32,r/m32 Move if greater
  817. 0F 4F /r CMOVNLE r32,r/m32 Move if not less or equal
  818. 0F 60 /r PUNPCKLBW mm,mm/m64 Unpack Low Packed Data
  819. 0F 61 /r PUNPCKLWD mm,mm/m64 Unpack Low Packed Data
  820. 0F 62 /r PUNPCKLDQ mm,mm/m64 Unpack Low Packed Data
  821. 0F 63 /r PACKSSWB mm,mm/m64 Pack with Signed Saturation
  822. 0F 64 /r PCMPGTB mm,mm/m64 Packed Compare for GT
  823. 0F 65 /r PCMPGTW mm,mm/m64 Packed Compare for GT
  824. 0F 66 /r PCMPGTD mm,mm/m64 Packed Compare for GT
  825. 0F 67 /r PACKUSWB mm,mm/m64 Pack with Unsigned Saturation
  826. 0F 68 /r PUNPCKHBW mm,mm/m64 Unpack High Packed Data
  827. 0F 69 /r PUNPCKHWD mm,mm/m64 Unpack High Packed Data
  828. 0F 6A /r PUNPCKHDQ mm,mm/m64 Unpack High Packed Data
  829. 0F 6B /r PACKSSDW mm,mm/m64 Pack with Signed Saturation
  830. 0F 6E /r MOVD mm,r/m32 Move doubleword from r/m32 to mm
  831. 0F 6F /r MOVQ mm,mm/m64 Move quadword from mm/m64 to mm
  832. 0F 71 /2 ib PSRLW mm,imm8 Packed Shift Right Logical
  833. 0F 71 /4 ib PSRAW mm,imm8 Packed Shift Right Arithmetic
  834. 0F 71 /6 ib PSLLW mm,imm8 Packed Shift Left Logical
  835. 0F 72 /2 ib PSRLD mm,imm8 Packed Shift Right Logical
  836. 0F 72 /4 ib PSRAD mm,imm8 Packed Shift Right Arithmetic
  837. 0F 72 /6 ib PSLLD mm,imm8 Packed Shift Left Logical
  838. 0F 73 /2 ib PSRLQ mm,imm8 Packed Shift Right Logical
  839. 0F 73 /6 ib PSLLQ mm,imm8 Packed Shift Left Logical
  840. 0F 74 /r PCMPEQB mm,mm/m64 Packed Compare for Equal
  841. 0F 75 /r PCMPEQW mm,mm/m64 Packed Compare for Equal
  842. 0F 76 /r PCMPEQD mm,mm/m64 Packed Compare for Equal
  843. 0F 77 EMMS Set the FP tag word to empty
  844. 0F 7E /r MOVD r/m32,mm Move doubleword from mm to r/m32
  845. 0F 7F /r MOVQ mm/m64,mm Move quadword from mm to mm/m64
  846. 0F 80 cd JO rel32 Jump near if overflow
  847. 0F 81 cd JNO rel32 Jump near if not overflow
  848. 0F 82 cd JB rel32 Jump near if below
  849. 0F 83 cd JAE rel32 Jump near if above or equal
  850. 0F 84 cd JE rel32 Jump near if equal
  851. 0F 85 cd JNE rel32 Jump near if not equal
  852. 0F 86 cd JBE rel32 Jump near if below or equal
  853. 0F 87 cd JA rel32 Jump near if above
  854. 0F 88 cd JS rel32 Jump near if sign
  855. 0F 89 cd JNS rel32 Jump near if not sign
  856. 0F 8A cd JPE rel32 Jump near if parity even
  857. 0F 8B cd JPO rel32 Jump near if parity odd
  858. 0F 8C cd JL rel32 Jump near if less
  859. 0F 8D cd JGE rel32 Jump near if greater or equal
  860. 0F 8E cd JLE rel32 Jump near if less or equal
  861. 0F 8F cd JG rel32 Jump near if greater
  862. 0F 90 /r SETO r/m8 Set byte if overflow
  863. 0F 91 /r SETNO r/m8 Set byte if not overflow
  864. 0F 92 /r SETB r/m8 Set byte if below
  865. 0F 93 /r SETAE r/m8 Set byte if above or equal
  866. 0F 94 /r SETE r/m8 Set byte if equal
  867. 0F 95 /r SETNE r/m8 Set byte if not equal
  868. 0F 96 /r SETBE r/m8 Set byte if below or equal
  869. 0F 97 /r SETA r/m8 Set byte if above
  870. 0F 98 /r SETS r/m8 Set byte if sign
  871. 0F 99 /r SETNS r/m8 Set byte if not sign
  872. 0F 9A /r SETPE r/m8 Set byte if parity even
  873. 0F 9B /r SETPO r/m8 Set byte if parity odd
  874. 0F 9C /r SETL r/m8 Set byte if less
  875. 0F 9D /r SETGE r/m8 Set byte if greater or equal
  876. 0F 9E /r SETLE r/m8 Set byte if less or equal
  877. 0F 9F /r SETG r/m8 Set byte if greater
  878. 0F A0 PUSH FS Push FS
  879. 0F A1 POP FS Pop FS
  880. 0F A2 CPUID EAX := Processor id.info.
  881. 0F A3 /r BT r/m32,r32 Bit Test
  882. 0F A4 /r ib SHLD r/m32,r32,imm8 Double Precision Shift Left
  883. 0F A5 /r SHLD r/m32,r32,CL Double Precision Shift Left
  884. 0F A8 PUSH GS Push GS
  885. 0F A9 POP GS Pop GS
  886. 0F AA RSM Resume from System Management
  887. 0F AB /r BTS r/m32,r32 Bit Test and Set
  888. 0F AC /r ib SHRD r/m32,r32,imm8 Double Precision Shift Right
  889. 0F AD /r SHRD r/m32,r32,CL Double Precision Shift Right
  890. 0F AF /r IMUL r32,r/m32 Multiply
  891. 0F B0 /r CMPXCHG r/m8,r8 Compare and Exchange
  892. 0F B1 /r CMPXCHG r/m32,r32 Compare and Exchange
  893. 0F B2 /r LSS r32,m16:32 Load SS:r32 with far ptr
  894. 0F B3 /r BTR r/m32,r32 Bit Test and Clear
  895. 0F B4 /r LFS r32,m16:32 Load FS:r32 with far ptr
  896. 0F B5 /r LGS r32,m16:32 Load GS:r32 with far ptr
  897. 0F B6 /r MOVZX r32,r/m8 Move byte to doubleword, zero-extension
  898. 0F B7 /r MOVZX r32,r/m16 Move word to doubleword, zero-extension
  899. 0F BA /4 ib BT r/m32,imm8 Bit Test
  900. 0F BA /5 ib BTS r/m32,imm8 Bit Test and Set
  901. 0F BA /6 ib BTR r/m32,imm8 Bit Test and Clear
  902. 0F BA /7 ib BTC r/m32,imm8 Bit Test and Complement
  903. 0F BB /r BTC r/m32,r32 Bit Test and Complement
  904. 0F BC /r BSF r32,r/m32 Bit scan forward on r/m32
  905. 0F BD /r BSR r32,r/m32 Bit scan reverse on r/m32
  906. 0F BE /r MOVSX r32,r/m8 Move byte to doubleword, sign-extension
  907. 0F BF /r MOVSX r32,r/m16 Move word to doubleword, sign-extension
  908. 0F C0 /r XADD r/m8,r8 Exchange and Add
  909. 0F C1 /r XADD r/m16,r16 Exchange and Add
  910. 0F C1 /r XADD r/m32,r32 Exchange and Add
  911. 0F C7 /1 m64 CMPXCHG8B m64 Compare and Exchange
  912. 0F C8+rd BSWAP r32 Reverses the byte order of a r32
  913. 0F D1 /r PSRLW mm,mm/m64 Packed Shift Right Logical
  914. 0F D2 /r PSRLD mm,mm/m64 Packed Shift Right Logical
  915. 0F D3 /r PSRLQ mm,mm/m64 Packed Shift Right Logical
  916. 0F D5 /r PMULLW mm,mm/m64 Packed Multiply Low
  917. 0F D8 /r PSUBUSB mm,mm/m64 Packed Subtract Unsigned with S.
  918. 0F D9 /r PSUBUSW mm,mm/m64 Packed Subtract Unsigned with S.
  919. 0F DB /r PAND mm,mm/m64 AND quadword from .. to ..
  920. 0F DC /r PADDUSB mm,mm/m64 Add unsigned pkd bytes
  921. 0F DD /r PADDUSW mm,mm/m64 Add unsigned pkd words
  922. 0F DF /r PANDN mm,mm/m64 And qword from .. to NOT qw in mm
  923. 0F E1 /r PSRAW mm,mm/m64 Packed Shift Right Arithmetic
  924. 0F E2 /r PSRAD mm,mm/m64 Packed Shift Right Arithmetic
  925. 0F E5 /r PMULHW mm,mm/m64 Packed Multiply High
  926. 0F E8 /r PSUBSB mm,mm/m64 Packed Subtract with Saturation
  927. 0F E9 /r PSUBSW mm,mm/m64 Packed Subtract with Saturation
  928. 0F EB /r POR mm,mm/m64 OR qword from .. to mm
  929. 0F EC /r PADDSB mm,mm/m64 Add signed packed bytes
  930. 0F ED /r PADDSW mm,mm/m64 Add signed packed words
  931. 0F EF /r PXOR mm,mm/m64 XOR qword
  932. 0F F1 /r PSLLW mm,mm/m64 Packed Shift Left Logical
  933. 0F F2 /r PSLLD mm,mm/m64 Packed Shift Left Logical
  934. 0F F3 /r PSLLQ mm,mm/m64 Packed Shift Left Logical
  935. 0F F5 /r PMADDWD mm,mm/m64 Packed Multiply and Add
  936. 0F F8 /r PSUBB mm,mm/m64 Packed Subtract
  937. 0F F9 /r PSUBW mm,mm/m64 Packed Subtract
  938. 0F FA /r PSUBD mm,mm/m64 Packed Subtract
  939. 0F FC /r PADDB mm,mm/m64 Add packed bytes
  940. 0F FD /r PADDW mm,mm/m64 Add packed words
  941. 0F FE /r PADDD mm,mm/m64 Add packed dwords
  942. 10 /r ADC r/m8,r8 Add with carry
  943. 11 /r ADC r/m32,r32 Add with carry
  944. 12 /r ADC r8,r/m8 Add with carry
  945. 13 /r ADC r32,r/m32 Add with carry
  946. 14 ib ADC AL,imm8 Add with carry
  947. 15 id ADC EAX,imm32 Add with carry
  948. 16 PUSH SS Push SS
  949. 17 POP SS Pop SS
  950. 18 /r SBB r/m8,r8 Subtract with borrow
  951. 19 /r SBB r/m32,r32 Subtract with borrow
  952. 1A /r SBB r8,r/m8 Subtract with borrow
  953. 1B /r SBB r32,r/m32 Subtract with borrow
  954. 1C ib SBB AL,imm8 Subtract with borrow
  955. 1D id SBB EAX,imm32 Subtract with borrow
  956. 1E PUSH DS Push DS
  957. 1F POP DS Pop DS
  958. 20 /r AND r/m8,r8 AND
  959. 21 /r AND r/m32,r32 AND
  960. 22 /r AND r8,r/m8 AND
  961. 23 /r AND r32,r/m32 AND
  962. 24 ib AND AL,imm8 AND
  963. 25 id AND EAX,imm32 AND
  964. 26 ES: Segment overide prefix
  965. 27 DAA Decimal adjust AL after addition
  966. 28 /r SUB r/m8,r8 Subtract
  967. 29 /r SUB r/m32,r32 Subtract
  968. 2A /r SUB r8,r/m8 Subtract
  969. 2B /r SUB r32,r/m32 Subtract
  970. 2C ib SUB AL,imm8 Subtract
  971. 2D id SUB EAX,imm32 Subtract
  972. 2E CS: Segment overide prefix
  973. 2F DAS Decimal adjust AL after subtraction
  974. 30 /r XOR r/m8,r8 Logical Exclusive OR
  975. 31 /r XOR r/m32,r32 Logical Exclusive OR
  976. 32 /r XOR r8,r/m8 Logical Exclusive OR
  977. 33 /r XOR r32,r/m32 Logical Exclusive OR
  978. 34 ib XOR AL,imm8 Logical Exclusive OR
  979. 35 id XOR EAX,imm32 Logical Exclusive OR
  980. 36 SS: Segment overide prefix
  981. 37 AAA ASCII adjust AL after addition
  982. 38 /r CMP r/m8,r8 Compare
  983. 39 /r CMP r/m32,r32 Compare
  984. 3A /r CMP r8,r/m8 Compare
  985. 3B /r CMP r32,r/m32 Compare
  986. 3C ib CMP AL,imm8 Compare
  987. 3D id CMP EAX,imm32 Compare
  988. 3E DS: Segment overide prefix
  989. 3F AAS ASCII adjust AL after subtraction
  990. 40+rd INC r32 Increment register by 1
  991. 48+rd DEC r32 Decrement r32 by 1
  992. 50+rd PUSH r32 Push r32
  993. 58+rd POP r32 Pop r32
  994. 60 PUSHAD Push All g-regs
  995. 61 POPAD Pop EDI,... and EAX
  996. 62 /r BOUND r32,m32&32 Check Array Index Against Bounds
  997. 63 /r ARPL r/m16,r16 Adjust Request Privilege Level of Sel.
  998. 64 FS: Segment overide prefix
  999. 65 GS: Segment overide prefix
  1000. 66 Opsize: Operand size overide prefix
  1001. 67 Address: Address size overide prefix
  1002. 68 id PUSH imm32 Push imm32
  1003. 69 /r id IMUL r32,imm32 Multiply
  1004. 69 /r id IMUL r32,r/m32,imm32 Multiply
  1005. 6A ib PUSH imm8 Push imm8
  1006. 6B /r ib IMUL r32,imm8 Multiply
  1007. 6B /r ib IMUL r32,r/m32,imm8 Multiply
  1008. 6C INS m8 Input byte from I/O(DX) into ES:(E)DI
  1009. 6D INS m32 Input dw from I/O(DX) into ES:(E)DI
  1010. 6E OUTS DX,m8 Output byte from DS:(E)SI to I/O(DX)
  1011. 6F OUTS DX,m32 Output dword from DS:(E)SI to I/O (DX)
  1012. 70 cb JO rel8 Jump short if overflow
  1013. 71 cb JNO rel8 Jump short if not overflow
  1014. 72 cb JC rel8 Jump short if carry
  1015. 73 cb JAE rel8 Jump short if above or equal
  1016. 74 cb JE rel8 Jump short if equal
  1017. 75 cb JNE rel8 Jump short if not equal
  1018. 76 cb JBE rel8 Jump short if below or equal
  1019. 77 cb JA rel8 Jump short if above
  1020. 78 cb JS rel8 Jump short if sign
  1021. 79 cb JNS rel8 Jump short if not sign
  1022. 7A cb JPE rel8 Jump short if parity even
  1023. 7B cb JPO rel8 Jump short if parity odd
  1024. 7C cb JL rel8 Jump short if less
  1025. 7D cb JGE rel8 Jump short if greater or equal
  1026. 7E cb JLE rel8 Jump short if less or equal
  1027. 7F cb JG rel8 Jump short if greater
  1028. 80 /0 ib ADD r/m8,imm8 Add
  1029. 80 /1 ib OR r/m8,imm8 OR
  1030. 80 /2 ib ADC r/m8,imm8 Add with carry
  1031. 80 /3 ib SBB r/m8,imm8 Subtract with borrow
  1032. 80 /4 ib AND r/m8,imm8 AND
  1033. 80 /5 ib SUB r/m8,imm8 Subtract
  1034. 80 /6 ib XOR r/m8,imm8 Logical Exclusive OR
  1035. 80 /7 ib CMP r/m8,imm8 Compare
  1036. 81 /0 id ADD r/m32,imm32 Add
  1037. 81 /1 id OR r/m32,imm32 OR
  1038. 81 /2 id ADC r/m32,imm32 Add with carry
  1039. 81 /3 id SBB r/m32,imm32 Subtract with borrow
  1040. 81 /4 id AND r/m32,imm32 AND
  1041. 81 /5 id SUB r/m32,imm32 Subtract
  1042. 81 /6 id XOR r/m32,imm32 Logical Exclusive OR
  1043. 81 /7 id CMP r/m32,imm32 Compare
  1044. 83 /0 ib ADD r/m32,imm8 Add
  1045. 83 /1 ib OR r/m32,imm8 OR
  1046. 83 /2 ib ADC r/m32,imm8 Add with carry
  1047. 83 /3 ib SBB r/m32,imm8 Subtract with borrow
  1048. 83 /4 ib AND r/m32,imm8 AND
  1049. 83 /5 ib SUB r/m32,imm8 Subtract
  1050. 83 /6 ib XOR r/m32,imm8 Logical Exclusive OR
  1051. 83 /7 ib CMP r/m32,imm8 Compare
  1052. 84 /r TEST r/m8,r8 Logical Compare
  1053. 85 /r TEST r/m16,r16 Logical Compare
  1054. 85 /r TEST r/m32,r32 Logical Compare
  1055. 86 /r XCHG r/m8,r8 Exchange byte
  1056. 86 /r XCHG r8,r/m8 Exchange byte
  1057. 87 /r XCHG r/m32,r32 Exchange doubleword
  1058. 87 /r XCHG r32,r/m32 Exchange doubleword
  1059. 88 /r MOV r/m8,r8 Move
  1060. 89 /r MOV r/m32,r32 Move
  1061. 8A /r MOV r8,r/m8 Move
  1062. 8B /r MOV r32,r/m32 Move
  1063. 8C /r MOV r/m16,Sreg** Move segment register to r/m16
  1064. 8D /r LEA r32,m Load effective address
  1065. 8E /r MOV Sreg,r/m16** Move r/m16 to segment register
  1066. 8F /0 POP m32 Pop m32
  1067. 90 NOP No operation
  1068. 90+rd XCHG EAX,r32 Exchange r32 with EAX
  1069. 90+rd XCHG r32,EAX Exchange EAX with r32
  1070. 98 CBW Convert Byte to Word
  1071. 99 CDQ Convert Doubleword to Quadword
  1072. 99 CWD Convert Word to Doubleword
  1073. 9A cp CALL ptr16:32 Call far, abs.add. given in operand
  1074. 9B FWAIT Wait
  1075. 9B WAIT Wait
  1076. 9B D9 /6 FSTENV m14/28byte Store FPU environment
  1077. 9B D9 /7 FSTCW m2byte Store FPU control word
  1078. 9B DB E2 FCLEX Clear f.e.f. after checking for ..
  1079. 9B DB E3 FINIT Initialize FPU after ...
  1080. 9B DD /6 FSAVE m94/108byte Store FPU status to m94 or m108
  1081. 9B DD /7 FSTSW m2byte Store FPU status word at m2byte after
  1082. 9B DF E0 FSTSW AX Store FPU status word in AX after
  1083. 9C PUSHFD Push EFLAGS
  1084. 9D POPFD Pop Stack into EFLAGS Register
  1085. 9E SAHF Store AH into Flags
  1086. 9F LAHF Load Status Flags into AH
  1087. A0 MOV AL, moffs8* Move byte at ( seg:offset) to AL
  1088. A1 MOV AX, moffs16* Move word at ( seg:offset) to AX
  1089. A1 MOV EAX, moffs32* Move dword at ( seg:offset) to EAX
  1090. A2 MOV moffs8*,AL Move AL to ( seg:offset)
  1091. A3 MOV moffs16*,AX Move AX to ( seg:offset)
  1092. A3 MOV moffs32*,EAX Move EAX to ( seg:offset)
  1093. A4 MOVS m8,m8 Move byte at DS:(E)SI to ES:(E)DI
  1094. A5 MOVS m32,m32 Move dword at DS:(E)SI to ES:(E)DI
  1095. A6 CMPSB Compare byte at DS:(E)SI with ES:(E)DI
  1096. A7 CMPSD Compare dw at DS:(E)SI with ES:(E)DI
  1097. A8 ib TEST AL,imm8 Logical Compare
  1098. A9 id TEST EAX,imm32 Logical Compare
  1099. AA STOS m8 Store String
  1100. AB STOS m32 Store String
  1101. AC LODS m8 Load byte at address DS:(E)SI into AL
  1102. AD LODS m32 Load dword at address DS:(E)SI into EAX
  1103. AE SCAS m8 Scan String
  1104. AF SCAS m32 Scan String
  1105. B0+rb MOV r8,imm8 Move imm8 to r8
  1106. B8+rd MOV r32,imm32 Move imm32 to r32
  1107. C0 /0 ib ROL r/m8,imm8 Rotate 8 bits r/m8 left imm8 times
  1108. C0 /1 ib ROR r/m8,imm8 Rotate 8 bits r/m16 right imm8 times
  1109. C0 /2 ib RCL r/m8,imm8 Rotate 9 bits left imm8 times
  1110. C0 /3 ib RCR r/m8,imm8 Rotate 9 bits right imm8 times
  1111. C0 /4 ib SAL r/m8,imm8 Shift Arithmetic Left
  1112. C0 /4 ib SHL r/m8,imm8 Shift Logical Left
  1113. C0 /5 ib SHR r/m8,imm8 Shift Logical Right
  1114. C0 /7 ib SAR r/m8,imm8 Shift Arithmetic Right
  1115. C1 /0 ib ROL r/m32,imm8 Rotate 32 bits r/m32 left imm8 times
  1116. C1 /1 ib ROR r/m32,imm8 Rotate 32 bits r/m32 right imm8 times
  1117. C1 /2 ib RCL r/m32,imm8 Rotate 33 bits left imm8 times
  1118. C1 /3 ib RCR r/m32,imm8 Rotate 33 bits right imm8 times
  1119. C1 /4 ib SAL r/m32,imm8 Shift Arithmetic Left
  1120. C1 /4 ib SHL r/m32,imm8 Shift Logical Left
  1121. C1 /5 ib SHR r/m32,imm8 Shift Logical Right
  1122. C1 /7 ib SAR r/m32,imm8 Shift Arithmetic Right
  1123. C2 iw RET imm16 Near return, pop imm16 bytes from stack
  1124. C3 RET Near return
  1125. C4 /r LES r32,m16:32 Load ES:r32 with far ptr
  1126. C5 /r LDS r32,m16:32 Load DS:r32 with far ptr
  1127. C6 /0 ib MOV r/m8,imm8 Move imm8 to r/m8
  1128. C7 /0 id MOV r/m32,imm32 Move imm32 to r/m32
  1129. C8 iw 00 ENTER imm16,0 Create a stack frame for a procedure
  1130. C8 iw 01 ENTER imm16,1 Create a nested stack frame for a proc.
  1131. C8 iw ib ENTER imm16,imm8 Create a nested stack frame for a proc.
  1132. C9 LEAVE Set ESP to EBP, then pop EBP
  1133. CA iw RET imm16 Far return, pop imm16 bytes from stack
  1134. CB RET Far return
  1135. CC INT 3 Interrupt 3--trap to debugger
  1136. CD ib INT imm8 Interrupt vector number (imm8)
  1137. CE INTO Interrupt 4--if overflow flag is 1
  1138. CF IRETD Interrupt return(32)
  1139. D0 /0 ROL r/m8,1 Rotate 8 bits r/m8 left once
  1140. D0 /1 ROR r/m8,1 Rotate 8 bits r/m8 right once
  1141. D0 /2 RCL r/m8,1 Rotate 9 bits left once
  1142. D0 /3 RCR r/m8,1 Rotate 9 bits right once
  1143. D0 /4 SAL r/m8,1 Shift Arithmetic Left
  1144. D0 /4 SHL r/m8,1 Shift Logical Left
  1145. D0 /5 SHR r/m8,1 Shift Logical Right
  1146. D0 /7 SAR r/m8,1 Shift Arithmetic Right
  1147. D1 /0 ROL r/m32,1 Rotate 32 bits r/m32 left once
  1148. D1 /1 ROR r/m32,1 Rotate 32 bits r/m32 right once
  1149. D1 /2 RCL r/m32,1 Rotate 33 bits left once
  1150. D1 /3 RCR r/m32,1 Rotate 33 bits right once
  1151. D1 /4 SAL r/m32,1 Shift Arithmetic Left
  1152. D1 /4 SHL r/m32,1 Shift Logical Left
  1153. D1 /5 SHR r/m32,1 Shift Logical Right
  1154. D1 /7 SAR r/m32,1 Shift Arithmetic Right
  1155. D2 /0 ROL r/m8,CL Rotate 8 bits r/m8 left CL times
  1156. D2 /1 ROR r/m8,CL Rotate 8 bits r/m8 right CL times
  1157. D2 /2 RCL r/m8,CL Rotate 9 bits left CL times
  1158. D2 /3 RCR r/m8,CL Rotate 9 bits right CL times
  1159. D2 /4 SAL r/m8,CL Shift Arithmetic Left
  1160. D2 /4 SHL r/m8,CL Shift Logical Left
  1161. D2 /5 SHR r/m8,CL Shift Logical Right
  1162. D2 /7 SAR r/m8,CL Shift Arithmetic Right
  1163. D3 /0 ROL r/m32,CL Rotate 32 bits r/m32 left CL times
  1164. D3 /1 ROR r/m32,CL Rotate 32 bits r/m32 right CL times
  1165. D3 /2 RCL r/m32,CL Rotate 33 bits left CL times
  1166. D3 /3 RCR r/m32,CL Rotate 33 bits right CL times
  1167. D3 /4 SAL r/m32,CL Shift Arithmetic Left
  1168. D3 /4 SHL r/m32,CL Shift Logical Left
  1169. D3 /5 SHR r/m32,CL Shift Logical Right
  1170. D3 /7 SAR r/m32,CL Shift Arithmetic Right
  1171. D4 0A AAM ASCII adjust AX after multiplication
  1172. D5 0A AAD ASCII adjust AX before division
  1173. D6 SETALC Set ALC: undocumented
  1174. D7 XLAT m8 Table Look-up Translation
  1175. D8 /0 FADD m32real Add m32real to ST(0) and s.r. in ST(0)
  1176. D8 /1 FMUL m32real Multiply ST(0) by m32real and s.r.in ST(0)
  1177. D8 /2 FCOM m32real Compare ST(0) with m32real.
  1178. D8 /3 FCOMP m32real Compare ST(0) with m32real,pop r.stack.
  1179. D8 /4 FSUB m32real Sub m32real from ST(0) and s.r.in ST(0)
  1180. D8 /5 FSUBR m32real Sub ST(0) from m32real and s.r.in ST(0)
  1181. D8 /6 FDIV m32real Divide ST(0) by m32real and s.r.in ST(0)
  1182. D8 /7 FDIVR m32real Divide m32real by ST(0) and s.r.in ST(0)
  1183. D8 C0+i FADD ST(0),ST(i) Add ST(0) to ST(i) and s.r.in ST(0)
  1184. D8 C8+i FMUL ST(0),ST(i) Multiply ST(0) by ST(i) and s.r.in ST(0)
  1185. D8 D0+i FCOM ST(i) Compare ST(0) with ST(i).
  1186. D8 D1 FCOM Compare ST(0) with ST(1).
  1187. D8 D8+i FCOMP ST(i) Compare ST(0) with ST(i), pop
  1188. D8 D9 FCOMP Compare ST(0) with ST(1), pop
  1189. D8 E0+i FSUB ST(0),ST(i) Sub ST(i) from ST(0) and s.r.in ST(0)
  1190. D8 E8+i FSUBR ST(0),ST(i) Sub ST(0) from ST(i) and s.r.in ST(0)
  1191. D8 F0+i FDIV ST(0),ST(i) Divide ST(0) by ST(i) and s.r.in ST(0)
  1192. D8 F8+i FDIVR ST(0),ST(i) Divide ST(i) by ST(0) and s.r.in ST(0)
  1193. D9 /0 FLD m32real Push m32real
  1194. D9 /2 FST m32real Copy ST(0) to m32real
  1195. D9 /3 FSTP m32real Copy ST(0) to m32real and pop
  1196. D9 /4 FLDENV m14/28byte Load FPU environment from m14/m28
  1197. D9 /5 FLDCW m2byte Load FPU control word from m2byte
  1198. D9 /6 FNSTENV m14/28byte Store FPU env without
  1199. D9 /7 FNSTCW m2byte Store FPU control word without
  1200. D9 C0+i FLD ST(i) Push ST(i)
  1201. D9 C8+i FXCH ST(i) Exchange ST(0) and ST(i)
  1202. D9 C9 FXCH Exchange ST(0) and ST(1)
  1203. D9 D0 FNOP No operation is performed
  1204. D9 E0 FCHS Complements sign of ST(0)
  1205. D9 E1 FABS Replace ST(0) with its absolute value
  1206. D9 E4 FTST Compare ST(0) with 0.0
  1207. D9 E5 FXAM Classify value or number in ST(0)
  1208. D9 E8 FLD1 Push +1.0
  1209. D9 E9 FLDL2T Push log2 10
  1210. D9 EA FLDL2E Push log2 e
  1211. D9 EB FLDPI Push pi
  1212. D9 EC FLDLG2 Push log10 2
  1213. D9 ED FLDLN2 Push loge 2
  1214. D9 EE FLDZ Push +0.0
  1215. D9 F0 F2XM1 Replace ST(0) with 2**ST(0) - 1
  1216. D9 F1 FYL2X Replace ST(1) with ST(1)*log2ST(0) and pop
  1217. D9 F2 FPTAN Replaces ST(0) with its tangent push 1.0
  1218. D9 F3 FPATAN Repalces ST(1) with arctan(ST(1)/ST(0)) pop
  1219. D9 F4 FXTRACT Seperate value in ST(0) exp. and sig.
  1220. D9 F5 FPREM1 Replaces ST(0) with IEEE rem(ST(0)/ST(1))
  1221. D9 F6 FDECSTP Decrement TOP field in FPU status word.
  1222. D9 F7 FINCSTP Increment the TOP field FPU status r.
  1223. D9 F8 FPREM Replaces ST(0) with rem (ST(0)/ST(1))
  1224. D9 F9 FYL2XP1 Replace ST(1) with ST(1)*log2(ST(0)+1) pop
  1225. D9 FA FSQRT square root of ST(0)
  1226. D9 FB FSINCOS Compute sine and consine of ST(0) s push c
  1227. D9 FC FRNDINT Round ST(0) to an integer
  1228. D9 FD FSCALE Scale ST(0) by ST(1)
  1229. D9 FE FSIN Replace ST(0) with its sine
  1230. D9 FF FCOS Replace ST(0) with its cosine
  1231. DA /0 FIADD m32int Add m32int to ST(0) and s.r.in ST(0)
  1232. DA /1 FIMUL m32int Multiply ST(0) by m32int and s.r.in ST(0)
  1233. DA /2 FICOM m32int Compare ST(0) with m32int
  1234. DA /3 FICOMP m32int Compare ST(0) with m32int and pop
  1235. DA /4 FISUB m32int Sub m32int from ST(0) and s.r.in ST(0)
  1236. DA /5 FISUBR m32int Sub ST(0) from m32int and s.r.in ST(0)
  1237. DA /6 FIDIV m32int Divide ST(0) by m32int and s.r.in ST(0)
  1238. DA /7 FIDIVR m32int Divide m32int by ST(0) and s.r.in ST(0)
  1239. DA C0+i FCMOVB ST(0),ST(i) Move if below
  1240. DA C8+i FCMOVE ST(0),ST(i) Move if equal
  1241. DA D0+i FCMOVBE ST(0),ST(i) Move if below or equal
  1242. DA D8+i FCMOVU ST(0),ST(i) Move if unordered
  1243. DA E9 FUCOMPP Compare ST(0) with ST(1) and pop pop
  1244. DB /0 FILD m32int Push m32int
  1245. DB /2 FIST m32int Store ST(0) in m32int
  1246. DB /3 FISTP m32int Store ST(0) in m32int and pop
  1247. DB /5 FLD m80real Push m80real
  1248. DB /7 FSTP m80real Copy ST(0) to m80real and pop
  1249. DB C0+i FCMOVNB ST(0),ST(i) Move if not below
  1250. DB C8+i FCMOVNE ST(0),ST(i) Move if not equal
  1251. DB D0+i FCMOVNBE ST(0),ST(i) Move if not below or equal
  1252. DB D8+i FCMOVNU ST(0),ST(i) Move if not unordered
  1253. DB E2 FNCLEX Clear f.e.f. without checking for ..
  1254. DB E3 FNINIT Initialize FPU without ...
  1255. DB E8+i FUCOMI ST,ST(i) Compare ST(0) with ST(i), check o.v.set s.f.
  1256. DB F0+i FCOMI ST,ST(i) Compare ST(0) with ST(i), set status flags
  1257. DC /0 FADD m64real Add m64real to ST(0) and s.r.in ST(0)
  1258. DC /1 FMUL m64real Multiply ST(0) by m64real and s.r.in ST(0)
  1259. DC /2 FCOM m64real Compare ST(0) with m64real.
  1260. DC /3 FCOMP m64real Compare ST(0) with m64real,pop r.stack.
  1261. DC /4 FSUB m64real Sub m64real from ST(0) and s.r.in ST(0)
  1262. DC /5 FSUBR m64real Sub ST(0) from m64real and s.r.in ST(0)
  1263. DC /6 FDIV m64real Divide ST(0) by m64real and s.r.in ST(0)
  1264. DC /7 FDIVR m64real Divide m64real by ST(0) and s.r.in ST(0)
  1265. DC C0+i FADD ST(i),ST(0) Add ST(i) to ST(0) and s.r. in ST(i)
  1266. DC C8+i FMUL ST(i),ST(0) Multiply ST(i) by ST(0) and s.r.in ST(i)
  1267. DC E0+i FSUBR ST(i),ST(0) Sub ST(i) from ST(0) and s.r.in ST(i)
  1268. DC E8+i FSUB ST(i),ST(0) Sub ST(0) from ST(i) and s.r.in ST(i)
  1269. DC F0+i FDIVR ST(i),ST(0) Divide ST(0) by ST(i) and s.r.in ST(i)
  1270. DC F8+i FDIV ST(i),ST(0) Divide ST(i) by ST(0) and s.r.in ST(i)
  1271. DD /0 FLD m64real Push m64real
  1272. DD /2 FST m64real Copy ST(0) to m64real
  1273. DD /3 FSTP m64real Copy ST(0) to m64real and pop
  1274. DD /4 FRSTOR m94/108byte Load FPU status from m94 or m108 byte
  1275. DD /6 FNSAVE m94/108byte Store FPU environment to m94 or m108
  1276. DD /7 FNSTSW m2byte Store FPU status word at m2byte without
  1277. DD C0+i FFREE ST(i) Sets tag for ST(i) to empty
  1278. DD D0+i FST ST(i) Copy ST(0) to ST(i)
  1279. DD D8+i FSTP ST(i) Copy ST(0) to ST(i) and pop
  1280. DD E0+i FUCOM ST(i) Compare ST(0) with ST(i)
  1281. DD E1 FUCOM Compare ST(0) with ST(1)
  1282. DD E8+i FUCOMP ST(i) Compare ST(0) with ST(i) and pop
  1283. DD E9 FUCOMP Compare ST(0) with ST(1) and pop
  1284. DE /0 FIADD m16int Add m16int to ST(0) and s.r.in ST(0)
  1285. DE /1 FIMUL m16int Multiply ST(0) by m16int and s.r.in ST(0)
  1286. DE /2 FICOM m16int Compare ST(0) with m16int
  1287. DE /3 FICOMP m16int Compare ST(0) with m16int and pop
  1288. DE /4 FISUB m16int Sub m16int from ST(0) and s.r.in ST(0)
  1289. DE /5 FISUBR m16int Sub ST(0) from m16int and s.r.in ST(0)
  1290. DE /6 FIDIV m16int Divide ST(0) by m64int and s.r.in ST(0)
  1291. DE /7 FIDIVR m16int Divide m64int by ST(0) and s.r.in ST(0)
  1292. DE C0+i FADDP ST(i),ST(0) Add ST(0) to ST(i), s.r.in ST(i),pop r.stack
  1293. DE C1 FADDP Add ST(0) to ST(1), s.r.in ST(1),pop r.stack
  1294. DE C8+i FMULP ST(i),ST(0) Multiply ST(i) by ST(0), s.r.in ST(i) pop
  1295. DE C9 FMULP Multiply ST(1) by ST(0), s.r.in ST(1) pop
  1296. DE D9 FCOMPP Compare ST(0) with ST(1), pop pop
  1297. DE E0+i FSUBRP ST(i),ST(0) Sub ST(i) from ST(0), s.r. in ST(i) pop
  1298. DE E1 FSUBRP Sub ST(1) from ST(0), s.r.in ST(1) pop
  1299. DE E8+i FSUBP ST(i),ST(0) Sub ST(0) from ST(i), s.r.in ST(i) pop
  1300. DE E9 FSUBP Sub ST(0) from ST(1), s.r.in ST(1) pop
  1301. DE F0+i FDIVRP ST(i),ST(0) Divide ST(0) by ST(i), s.r.in ST(i) pop
  1302. DE F1 FDIVRP Divide ST(0) by ST(1), s.r.in ST(1) pop
  1303. DE F8+i FDIVP ST(i),ST(0) Divide ST(i) by ST(0), s.r.in ST(i) pop
  1304. DE F9 FDIVP Divide ST(1) by ST(0), s.r.in ST(1) pop
  1305. DF /0 FILD m16int Push m16int
  1306. DF /2 FIST m16int Store ST(0) in m16int
  1307. DF /3 FISTP m16int Store ST(0) in m16int and pop
  1308. DF /4 FBLD m80bcd Convert m80BCD to real and push
  1309. DF /5 FILD m64int Push m64int
  1310. DF /6 FBSTP m80bcd Store ST(0) in m80bcd and pop ST(0)
  1311. DF /7 FISTP m64int Store ST(0) in m64int and pop
  1312. DF E0 FNSTSW AX Store FPU status word in AX without
  1313. DF E8+i FUCOMIP ST,ST(i) Compare ST(0) with ST(i), check ovssf pop
  1314. DF F0+i FCOMIP ST,ST(i) Compare ST(0) with ST(i), set s.f. ,pop
  1315. E0 cb LOOPNE rel8 Dec count;jump if count # 0 and ZF=0
  1316. E0 cb LOOPNZ rel8 Dec count;jump if count # 0 and ZF=0
  1317. E1 cb LOOPE rel8 Dec count;jump if count # 0 and ZF=1
  1318. E1 cb LOOPZ rel8 Dec count;jump if count # 0 and ZF=1
  1319. E2 cb LOOP rel8 Dec count;jump if count # 0
  1320. E3 cb JECXZ rel8 Jump short if ECX register is 0
  1321. E4 ib IN AL,imm8 Input byte from imm8 I/O port address into AL
  1322. E5 ib IN EAX,imm8 Input byte from imm8 I/O port address into EAX
  1323. E6 ib OUT imm8,AL Output byte in AL to I/O(imm8)
  1324. E7 ib OUT imm8,EAX Output dword in EAX to I/O(imm8)
  1325. E8 cd CALL rel32 Call near, rel to n.inst
  1326. E9 cd JMP rel32 Jump near, relative,
  1327. EA cp JMP ptr16:32 Jump far, abs.add given in operand
  1328. EB cb JMP rel8 Jump short, relative,
  1329. EC IN AL,DX Input byte from I/O port in DX into AL
  1330. ED IN EAX,DX Input doubleword from I/O port in DX into EAX
  1331. EE OUT DX,AL Output byte in AL to I/O(DX)
  1332. EF OUT DX,EAX Output dword in EAX to I/O(DX)
  1333. F0 LOCK Asserts LOCK signal for duration ..
  1334. F1 INT1 ICEBP
  1335. F2 A6 REPNE CMPS m8,m8 Find matching bytes in m and m
  1336. F2 A7 REPNE CMPS m32,m32 Find matching dwords in m and m
  1337. F2 AE REPNE SCAS m8 Find AL, starting at ES:[(E)DI]
  1338. F2 AF REPNE SCAS m32 Find EAX, starting at ES:[(E)DI]
  1339. F3 6C REP INS m8,DX Input ECX bytes from port DX into ES:[(E)DI]
  1340. F3 6D REP INS m32,DX Input ECX dwords from port DX into ES:[(E)DI]
  1341. F3 6E REP OUTS DX,m8 Output ECX bytes from DS:[(E)SI] to port DX
  1342. F3 6F REP OUTS DX,m32 Output ECX dwords from DS:[(E)SI] to port DX
  1343. F3 A4 REP MOVS m8,m8 Move ECX bytes from DS:[(E)SI] to ES:[(E)DI]
  1344. F3 A5 REP MOVS m32,m32 Move ECX dwords from DS:[(E)SI] to ES:[(E)DI]
  1345. F3 A6 REPE CMPS m8,m8 Find nonmatching bytes in m and m
  1346. F3 A7 REPE CMPS m32,m32 Find nonmatching dwords in m and m
  1347. F3 AA REP STOS m8 Fill ECX bytes at ES:[(E)DI] with AL
  1348. F3 AB REP STOS m32 Fill ECX dwords at ES:[(E)DI] with EAX
  1349. F3 AC REP LODS AL Load ECX bytes from DS:[(E)SI] to AL
  1350. F3 AD REP LODS EAX Load ECX dwords from DS:[(E)SI] to EAX
  1351. F3 AE REPE SCAS m8 Find non-AL byte starting at
  1352. F3 AF REPE SCAS m32 Find non-EAX dword starting at
  1353. F4 HLT Halt
  1354. F5 CMC Complement CF flag
  1355. F6 /2 NOT r/m8 Reverse each bit of r/m8
  1356. F6 /3 NEG r/m8 Two's complement negate r/m8
  1357. F6 /4 MUL r/m8 Unsigned multiply
  1358. F6 /5 IMUL r/m8 Multiply
  1359. F6 /6 DIV r/m8 Unsigned divide AX by r/m8
  1360. F6 /7 IDIV r/m8 Divide
  1361. F6 /0 ib TEST r/m8,imm8 Logical Compare
  1362. F7 /2 NOT r/m32 Reverse each bit of r/m32
  1363. F7 /3 NEG r/m32 Two's complement negate r/m32
  1364. F7 /4 MUL r/m32 Unsigned multiply
  1365. F7 /5 IMUL r/m32 Multiply
  1366. F7 /6 DIV r/m16 Unsigned divide DX:AX by r/m16
  1367. F7 /6 DIV r/m32 Unsigned divide EDX:EAX by r/m32
  1368. F7 /7 IDIV r/m32 Divide
  1369. F7 /0 id TEST r/m32,imm32 Logical Compare
  1370. F8 CLC Clear CF flag
  1371. F9 STC Set Carry Flag
  1372. FA CLI Clear interrupt flag
  1373. FB STI Set Interrup Flag
  1374. FC CLD Clear DF flag
  1375. FD STD Set Direction Flag
  1376. FE /0 INC r/m8 Increment 1
  1377. FE /1 DEC r/m8 Decrement r/m8 by 1
  1378. FF /0 INC r/m32 Increment 1
  1379. FF /1 DEC r/m32 Decrement r/m32 by 1
  1380. FF /2 CALL r/m32 Call near, abs.ind.add. given in r/m32
  1381. FF /3 CALL m16:32 Call far, abs.ind.add. given in m16:32
  1382. FF /4 JMP r/m32 Jump near, abs.ind.in r/m32
  1383. FF /6 PUSH r/m32 Push r/m32
  1384. FF /r JMP m16:32 Jump far, abs.ind.in m16:32
  1385. ===============================================================================
Add Comment
Please, Sign In to add comment