Volume 3: General-Purpose and System Instructions - Stanford ...
Volume 3: General-Purpose and System Instructions - Stanford ... Volume 3: General-Purpose and System Instructions - Stanford ...
AMD64 Technology 24594 Rev. 3.10 February 2005Table A-1. One-Byte Opcodes, Low Nibble 0–7hNibble 1 0 1 2 3 4 5 6 70ADD PUSH POPEb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz ES 3 ES 31ADC PUSH POPEb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz SS 3 SS 32AND seg ES 6 DAA 3Eb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz3XOR seg SS 6 AAA 3Eb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz4INC 5eAX eCX eDX eBX eSP eBP eSI eDI5PUSHrAX/r8 rCX/r9 rDX/r10 rBX/r11 rSP/r12 rBP/r13 rSI/r14 rDI/r156PUSHA/D 3 POPA/D 3 BOUND 3 ARPL 3addressseg FS seg GS operand sizeGv, Ma Ew, GwsizeMOVSXD 4Gv, Ed7JO JNO JB JNB JZ JNZ JBE JNBEJb Jb Jb Jb Jb Jb Jb Jb8Group 1 2 TEST XCHGEb, Ib Ev, Iz Eb, Ib 3 Ev, Ib Eb, Gb Ev, Gv Eb, Gb Ev, GvXCHG9 r8, rAXNOPrCX/r9, rAX rDX/r10, rAX rBX/r11, rAX rSP/r12, rAX rBP/r13, rAX rSI/r14, rAX rDI/r15, rAXAMOV MOVSB MOVSW/D/Q CMPSB CMPSW/D/QAL, Ob rAX, Ov Ob, AL Ov, rAX Yb, Xb Yv, Xv Xb, Yb Xv, YvMOVBAL, Ibr8b, IbCL, Ibr9b, IbDL, Ibr10b, IbBL, Ibr11b, IbAH, Ibr12b, IbCH, Ibr13b, IbDH, Ibr14b, IbBH, Ibr15b, IbGroup 2C2 RET near LES 3 LDS 3 Group 11 2Eb, Ib Ev, Ib Iw Gz, Mp Gz, Mp Eb, Ib Ev, IzGroup 2D2 AAM 3 AAD 3 SALC 3 XLATEb, 1 Ev, 1 Eb, CL Ev, CLLOOPNE/NZ LOOPE/Z LOOP JrCXZ IN OUTEJb Jb Jb Jb AL, Ib eAX, Ib Ib, AL Ib, eAXLOCK: INT1 REPNE: REP: HLT CMC Group 3F2ICE BkptREPE:Note:1. Rows in this table show the high opcode nibble, columns show the low opcode nibble.2. An opcode extension is specified in bits 5–3 of the ModRM byte. See “ModRM Extensions to One-Byte and Two-Byte Opcodes” onpage 387 for details.3. Invalid in 64-bit mode.4. Valid only in 64-bit mode.5. Used as REX prefixes in 64-bit mode.6. This is a null prefix in 64-bit mode.378 Appendix A: Opcode and Operand Encodings
24594 Rev. 3.10 February 2005 AMD64 TechnologyTable A-2.One-Byte Opcodes, Low Nibble 8–FhNibble 1 8 9 A B C D E F0OR PUSH 2-byteEb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz CS 3 opcodes1SBB PUSH POPEb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz DS 3 DS 32SUB seg CS 6 DAS 3Eb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz3CMP seg DS 6 AAS 3Eb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz4DEC 5eAX eCX eDX eBX eSP eBP eSI eDI5POPrAX/r8 rCX/r9 rDX/r10 rBX/r11 rSP/r12 rBP/r13 rSI/r14 rDI/r156PUSH IMUL PUSH IMUL INSB INSW/D OUTSB OUTSW/DIz Gv, Ev, Iz Ib Gv, Ev, Ib Yb, DX Yz, DX DX, Xb DX, Xz7JS JNS JP JNP JL JNL JLE JNLEJb Jb Jb Jb Jb Jb Jb Jb8MOV LEA MOV Group 1a 2Eb, Gb Ev, Gv Gb, Eb Gv, Ev Mw/Rv, Sw Gv, M Sw, Ew Ev9CBW, CWDE CWD, CDQ, CALL 3 WAIT PUSHF/D/Q POPF/D/Q SAHF LAHFCDQE CQO Ap FWAIT Fv FvATEST STOSB STOSW/D/Q LODSB LODSW/D/Q SCASB SCASW/D/QAL, Ib rAX, Iz Yb, AL Yv, rAX AL, Xb rAX, Xv AL, Yb rAX, YvMOVB rAX, Ivr8, IvrCX, Ivr9, IvrDX, Ivr10, IvrBX, Ivr11, IvrSP, Ivr12, IvrBP, Ivr13, IvrSI, Ivr14, IvrDI, Ivr15, IvCENTER LEAVE RET far INT3 INT INTO 3 IRET, IRETDIw, Ib Iw Ib IRETQDx87see Table A-10 on page 394ECALL JMP IN OUTJz Jz Ap 3 Jb AL, DX eAX, DX DX, AL DX, eAXFCLC STC CLI STI CLD STD Group 4 2 Group 5 2EbNote:1. Rows in this table show the high opcode nibble, columns show the low opcode nibble.2. An opcode extension is specified in bits 5–3 of the ModRM byte. See “ModRM Extensions to One-Byte and Two-Byte Opcodes” onpage 387 for details.3. Invalid in 64-bit mode.4. Valid only in 64-bit mode.5. Used as REX prefixes in 64-bit mode.6. This is a null prefix in 64-bit mode.Appendix A: Opcode and Operand Encodings 379
- Page 358 and 359: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 360 and 361: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 362 and 363: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 364 and 365: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 366 and 367: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 368 and 369: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 370 and 371: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 372 and 373: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 374 and 375: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 376 and 377: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 378 and 379: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 380 and 381: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 382 and 383: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 384 and 385: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 386 and 387: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 388 and 389: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 390 and 391: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 392 and 393: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 394 and 395: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 396 and 397: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 398 and 399: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 400 and 401: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 402 and 403: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 404 and 405: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 406 and 407: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 410 and 411: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 412 and 413: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 414 and 415: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 416 and 417: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 418 and 419: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 420 and 421: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 422 and 423: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 424 and 425: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 426 and 427: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 428 and 429: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 430 and 431: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 432 and 433: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 434 and 435: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 436 and 437: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 438 and 439: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 440 and 441: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 442 and 443: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 444 and 445: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 446 and 447: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 448 and 449: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 450 and 451: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 452 and 453: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 454 and 455: AMD64 Technology 24594 Rev. 3.10 Fe
- Page 456 and 457: AMD64 Technology 24594 Rev. 3.10 Fe
24594 Rev. 3.10 February 2005 AMD64 TechnologyTable A-2.One-Byte Opcodes, Low Nibble 8–FhNibble 1 8 9 A B C D E F0OR PUSH 2-byteEb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz CS 3 opcodes1SBB PUSH POPEb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz DS 3 DS 32SUB seg CS 6 DAS 3Eb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz3CMP seg DS 6 AAS 3Eb, Gb Ev, Gv Gb, Eb Gv, Ev AL, Ib rAX, Iz4DEC 5eAX eCX eDX eBX eSP eBP eSI eDI5POPrAX/r8 rCX/r9 rDX/r10 rBX/r11 rSP/r12 rBP/r13 rSI/r14 rDI/r156PUSH IMUL PUSH IMUL INSB INSW/D OUTSB OUTSW/DIz Gv, Ev, Iz Ib Gv, Ev, Ib Yb, DX Yz, DX DX, Xb DX, Xz7JS JNS JP JNP JL JNL JLE JNLEJb Jb Jb Jb Jb Jb Jb Jb8MOV LEA MOV Group 1a 2Eb, Gb Ev, Gv Gb, Eb Gv, Ev Mw/Rv, Sw Gv, M Sw, Ew Ev9CBW, CWDE CWD, CDQ, CALL 3 WAIT PUSHF/D/Q POPF/D/Q SAHF LAHFCDQE CQO Ap FWAIT Fv FvATEST STOSB STOSW/D/Q LODSB LODSW/D/Q SCASB SCASW/D/QAL, Ib rAX, Iz Yb, AL Yv, rAX AL, Xb rAX, Xv AL, Yb rAX, YvMOVB rAX, Ivr8, IvrCX, Ivr9, IvrDX, Ivr10, IvrBX, Ivr11, IvrSP, Ivr12, IvrBP, Ivr13, IvrSI, Ivr14, IvrDI, Ivr15, IvCENTER LEAVE RET far INT3 INT INTO 3 IRET, IRETDIw, Ib Iw Ib IRETQDx87see Table A-10 on page 394ECALL JMP IN OUTJz Jz Ap 3 Jb AL, DX eAX, DX DX, AL DX, eAXFCLC STC CLI STI CLD STD Group 4 2 Group 5 2EbNote:1. Rows in this table show the high opcode nibble, columns show the low opcode nibble.2. An opcode extension is specified in bits 5–3 of the ModRM byte. See “ModRM Extensions to One-Byte <strong>and</strong> Two-Byte Opcodes” onpage 387 for details.3. Invalid in 64-bit mode.4. Valid only in 64-bit mode.5. Used as REX prefixes in 64-bit mode.6. This is a null prefix in 64-bit mode.Appendix A: Opcode <strong>and</strong> Oper<strong>and</strong> Encodings 379