ISTANBUL TECHNICAL UNIVERSTY |
1 - Intel 8086 Family Architecture 2 - Instruction Clock Cycle Calculation 3 - 8088/8086 Effective Address (EA) Calculation 4 - Task State Calculation 5 - FLAGS - Intel 8086 Family Flags Register 6 - MSW - Machine Status Word (286+ only) 7 - 8086/80186/80286/80386/80486 Instruction Set: AAA - Ascii Adjust for Addition AAD - Ascii Adjust for Division AAM - Ascii Adjust for Multiplication AAS - Ascii Adjust for Subtraction ADC - Add With Carry ADD - Arithmetic Addition AND - Logical And ARPL - Adjusted Requested Privilege Level of Selector (286+ PM) BOUND - Array Index Bound Check (80188+) BSF - Bit Scan Forward (386+) BSR - Bit Scan Reverse (386+) BSWAP - Byte Swap (486+) BT - Bit Test (386+) BTC - Bit Test with Compliment (386+) BTR - Bit Test with Reset (386+) BTS - Bit Test and Set (386+) CALL - Procedure Call CBW - Convert Byte to Word CDQ - Convert Double to Quad (386+) CLC - Clear Carry CLD - Clear Direction Flag CLI - Clear Interrupt Flag (disable) CLTS - Clear Task Switched Flag (286+ privileged) CMC - Complement Carry Flag CMP - Compare CMPS - Compare String (Byte, Word or Doubleword) CMPXCHG - Compare and Exchange CWD - Convert Word to Doubleword CWDE - Convert Word to Extended Doubleword (386+) DAA - Decimal Adjust for Addition DAS - Decimal Adjust for Subtraction DEC - Decrement DIV - Divide ENTER - Make Stack Frame (80188+) ESC - Escape HLT - Halt CPU IDIV - Signed Integer Division IMUL - Signed Multiply IN - Input Byte or Word From Port INC - Increment INS - Input String from Port (80188+) INT - Interrupt INTO - Interrupt on Overflow INVD - Invalidate Cache (486+) INVLPG - Invalidate Translation Look-Aside Buffer Entry (486+) IRET/IRETD - Interrupt Return Jxx - Jump Instructions Table JCXZ/JECXZ - Jump if Register (E)CX is Zero JMP - Unconditional Jump LAHF - Load Register AH From Flags LAR - Load Access Rights (286+ protected) LDS - Load Pointer Using DS LEA - Load Effective Address LEAVE - Restore Stack for Procedure Exit (80188+) LES - Load Pointer Using ES LFS - Load Pointer Using FS (386+) LGDT - Load Global Descriptor Table (286+ privileged) LIDT - Load Interrupt Descriptor Table (286+ privileged) LGS - Load Pointer Using GS (386+) LLDT - Load Local Descriptor Table (286+ privileged) LMSW - Load Machine Status Word (286+ privileged) LOCK - Lock Bus LODS - Load String (Byte, Word or Double) LOOP - Decrement CX and Loop if CX Not Zero LOOPE/LOOPZ - Loop While Equal / Loop While Zero LOOPNZ/LOOPNE - Loop While Not Zero / Loop While Not Equal LSL - Load Segment Limit (286+ protected) LSS - Load Pointer Using SS (386+) LTR - Load Task Register (286+ privileged) MOV - Move Byte or Word MOVS - Move String (Byte or Word) MOVSX - Move with Sign Extend (386+) MOVZX - Move with Zero Extend (386+) MUL - Unsigned Multiply NEG - Two's Complement Negation NOP - No Operation (90h) NOT - One's Compliment Negation (Logical NOT) OR - Inclusive Logical OR OUT - Output Data to Port OUTS - Output String to Port (80188+) POP - Pop Word off Stack POPA/POPAD - Pop All Registers onto Stack (80188+) POPF/POPFD - Pop Flags off Stack PUSH - Push Word onto Stack PUSHA/PUSHAD - Push All Registers onto Stack (80188+) PUSHF/PUSHFD - Push Flags onto Stack RCL - Rotate Through Carry Left RCR - Rotate Through Carry Right REP - Repeat String Operation REPE/REPZ - Repeat Equal / Repeat Zero REPNE/REPNZ - Repeat Not Equal / Repeat Not Zero RET/RETF - Return From Procedure ROL - Rotate Left ROR - Rotate Right SAHF - Store AH Register into FLAGS SAL/SHL - Shift Arithmetic Left / Shift Logical Left SAR - Shift Arithmetic Right SBB - Subtract with Borrow/Carry SCAS - Scan String (Byte, Word or Doubleword) SETAE/SETNB - Set if Above or Equal / Set if Not Below (386+) SETB/SETNAE - Set if Below / Set if Not Above or Equal (386+) SETBE/SETNA - Set if Below or Equal / Set if Not Above (386+) SETE/SETZ - Set if Equal / Set if Zero (386+) SETNE/SETNZ - Set if Not Equal / Set if Not Zero (386+) SETL/SETNGE - Set if Less / Set if Not Greater or Equal (386+) SETGE/SETNL - Set if Greater or Equal / Set if Not Less (386+) SETLE/SETNG - Set if Less or Equal / Set if Not greater or Equal (386+) SETG/SETNLE - Set if Greater / Set if Not Less or Equal (386+) SETS - Set if Signed (386+) SETNS - Set if Not Signed (386+) SETC - Set if Carry (386+) SETNC - Set if Not Carry (386+) SETO - Set if Overflow (386+) SETNO - Set if Not Overflow (386+) SETP/SETPE - Set if Parity / Set if Parity Even (386+) SETNP/SETPO - Set if No Parity / Set if Parity Odd (386+) SGDT - Store Global Descriptor Table (286+ privileged) SIDT - Store Interrupt Descriptor Table (286+ privileged) SHL - Shift Logical Left SHR - Shift Logical Right SHLD/SHRD - Double Precision Shift (386+) SLDT - Store Local Descriptor Table (286+ privileged) SMSW - Store Machine Status Word (286+ privileged) STC - Set Carry STD - Set Direction Flag STI - Set Interrupt Flag (Enable Interrupts) STOS - Store String (Byte, Word or Doubleword) STR - Store Task Register (286+ privileged) SUB - Subtract TEST - Test For Bit Pattern VERR - Verify Read (286+ protected) VERW - Verify Write (286+ protected) WAIT/FWAIT - Event Wait WBINVD - Write-Back and Invalidate Cache (486+) XCHG - Exchange XLAT/XLATB - Translate XOR - Exclusive OR