Instruction set of 8086 Microprocessor YASH PAL, April 9, 2026April 30, 2026 Instruction set of 8086 Microprocessor – Each microprocessor has its own instruction set. The instructions of the Intel 8086 microprocessor are much more powerful than those of the 8085 microprocessor. The 8085 microprocessor is a one-address microprocessor because one operand is given in the instruction, and the other is supposed to be present in the accumulator. The 8086 is a general-purpose register-type microprocessor. Both operands can be specified in one instruction.Table of Contents 8086 Microprocessor Instruction SetData Copy/Transfer Instructions of 8086Arithmetic Instructions of 8086Logical Instructions of 80868086 Shift and Rotate Instructions8086 Branch Instructions8086 Loop Instructions8086 Flag (Bit) Manipulation Instructions8086 Processor Control Instructions8086 String Instructions8086 Microprocessor Instruction SetThe 8086 instruction set is categorized as follows.Data Copy/Transfer instructionsArithmetic instructionsLogical instructionsShift and Rotate instructionsBranch instructionsLoop instructionsFlag (Bit) Manipulation InstructionsProcessor Control InstructionsString InstructionsBelow is the overview of the instructions of the Intel 8086 microprocessor.Data Copy/Transfer Instructions of 8086These types of instructions are used to transfer data from the source operand to the destination operand.MOV – Move the dataPUSH – Push the data into the stackPOP – Pop the data from the stackXCHG – ExchangeIN – Input fromOUT – Output toXLAT – Translate byte to ALLEA – Load Effective address to RegisterLDS – Load effective address to DSLES – Load effective address to ESLAHF – Load AH with FlagsLSAHF – Store AH into the FlagLPUSH F – Push flags to stackPOP F – Pop flags from the stackArithmetic Instructions of 8086All the instructions for performing arithmetic operations belong to this category.ADD – AdditionADC – Addition with carryINC – Increment by oneDEC – Decrement by oneSUB – SubtractionSBB – Subtraction with borrowMUL – Multiply (unsigned)IMUL – Signed Integer multiplyDIV – Divide (unsigned)IDIV – Signed Integer DivideAAA – ASCII adjust for additionDAA – Decimal adjust for AdditionAAS – ASCII Adjust for subtractDAS – Decimal adjust for subtractAAM – ASCII adjust for MultiplyAAD – ASCII adjust for DivideCMP – CompareCBW – Convert byte to wordCWD – Convert words to double wordsLogical Instructions of 8086All the instructions performing logical operations belong to this category.NOT – 1’s complementNEG – 2’s ComplementAND – AND operationOR – OR operationXOR – Exclusive OR operationTEST – And operation without storing the result.8086 Shift and Rotate InstructionsThese instructions involve the bitwise shifting or rotation in either direction, with or without a count in CL.SHL/SAL – Shift Logical/Arithmetic leftSHR – Shift Logical RightSAR – Shift arithmetic RightROL – Rotate left without carryROR – Rotate right without carryRCL – Rotate left with carryRCR – Rotate right with carry8086 Branch InstructionsThese instructions transfer control of execution to the specified address. All the calls, jump, interrupt, and return instructions belong to this class.CALL – CallJUMP – Unconditional jumpRET – ReturnJE/JZ – Jump on equal zeroJNE/JNZ – Jump on not equal/not zeroJL/JNGE – Jump on less/not greater than and equalJNL/JGE – Jump on not less/ greater and equalJNLE/JG – Jump on not less equal/on greaterJLE/JNG – Jump on less or equal/not greaterJB/JNAE/JC – Jump on below/not above equal/on carryJBE/JNA – Jump on below or equal/not aboveJNB/JAE/JNE – Jump on not below/above or equal/on no carryJNBE/JA – Jump on not below or equal/on aboveJP/JPE – Jump on parity/even parityJNP/JPO – Jump on parity/odd parityJO – Jump on overflowJNO – Jump on not overflowJS – Jump on signed (Negative)JNS – Jump on not signed (Positive)JCXZ – Jump on CX = zeroINTn – Interrupt type nINTO – Interrupt on overflowIRET – Interrupt return8086 Loop Instructions8086 instruction set also provides such instruction which does the all operations of decrementing the counter, checking the condition, and, according to that, branching, the sequence or not in a single instruction.LOOP – Loop CX timesLOOPZ/LOOPE – Loop CX times while zero/equalLOOPNZ/LOOP NE – Loop CX times while not zero/not equal8086 Flag (Bit) Manipulation InstructionsAll the instructions that directly affect the flag register come under the group of instructions.CLC – Clear carry FlagCMC – Component carry flagSTC – Set Carry flagCLD – Clear Direction flagSTD – Set Direction flagCLI – Clear Interrupt flagSTI – Set Interrupt flag8086 Processor Control InstructionsThese instructions control the machine statusHLT – HaltWAIT – WaitESC – Escape to external deviceLOCk – Bus Lock prefix8086 String InstructionsThese instructions involve various string manipulation operations.REP – Repeat prefix until CX = 0REPE/REPZ – Repeat prefix until CX = 0 or on equal/zeroREPNE/REPNZ – Repeat prefix until CX = 0 or on not equal/not zeroMOVS B/W – Move string byte/wordCMPS B/W – Compare string byte/wordSCAS B/W – Scan String Byte/WordLODS B/W – Load String Byte/WordSTOS B/W – Store String Byte/WordMicroprocessor Subject Tutorials & Notes | Beginners Guide engineering subjects Microprocessor microprocessor