8086 Instruction Set (original) (raw)

Last Updated : 23 Jul, 2025

The 8086 instruction Set finds an important part in today’s modern computing, providing strong support for software development. It has ability to work with older system and offering wide variety of instructions, making it useful for programmers. As technology changes, the concepts introduced by 8086 mains constant, showing its significance in the world of computing.

Table of Content

What is 8086 Instruction Set?

The 8086 instruction set is a group of commands that the Intel 8086 microprocessor uses to perform tasks. It includes a variety of instructions that allow developers to create software for many different tasks, from simple math to more complex processing. Understanding this instruction set is essential for anyone looking to work with the 8086 microprocessor and its applications.

Classification of Instructions Set

Data Movement Instructions

Instructions Definition/Meaning
MOV Transfer data from source to destination.
XCHG Swap the contents of two registers or a register and a memory location.
PUSH Push data onto the stack.
POP Pop the data from the stack.
LEA Load Effective Address (loads the address of a memory operand into a register).

Arithmetic Instructions

Instructions Definition/Meaning
ADD, SUB, ADC, SBB Sum, difference, sum with carry, difference with borrow.
INC, DEC: Increment, decrement.
MUL, IMUL, DIV, IDIV: Multiplication and division (unsigned and signed).

Logic Instructions

Instructions Definition/Meaning
AND, OR, XOR, NOT Bitwise logical operations.
TEST Bitwise AND operation modifies flags while operands remain unchanged.
SHL, SHR, SAL, SAR Shift left, shift right (logical and arithmetic).
ROL, ROR, RCL, RCR Left rotate, right rotate (with carry).

Control Transfer Instructions

Instructions Definition/Meaning
JMP Absolute jump to a specified address.
JC, JNC, JZ, JNZ, JS, JNS, JO, JNO Conditional branching on the flags.
CAL Call a subroutine.
RET Return from subroutine.
INT Software interrupt.
IRET Interrupt return.

String Instructions

Instructions Definition/Meaning
MOVSB, MOVSW Transfer byte or word from source to destination (used in string manipulation).
CMPSB, CMPSW: Compare byte or word string operands.
SCASB, SCASW Scan byte or word string operands.
LODSB, LODSW Get a byte or word from memory into the accumulator.

Input/Output Instructions

Instructions Definition/Meaning
IN Input from port.
OUT Output to port.

Flag Control Instructions

Instructions Definition/Meaning
CLC, STC, CMC Set, clear, complement flags on CY.
CLD, STD Set direction flag.
CLI, STI Clr int flag.
HLT: Halt processor execution.

Other Instructions

Instructions Definition/Meaning
NOP No operation.
WAIT Await external event.
ESC Jump to external coprocessor.

Process Control Instructions

Instruction Definition/Meaning
Branching Instructions Branching Instruction that transfers the flow of execution onto certain conditions or unconditional transfers to the part of the program.
Looping Instructions Instruction that can be used to repeatedly execute a block of code either conditionally or unconditionally.
Subroutine Instructions Subroutine Instructions are used to call and return from subroutine to enhance code modularity and reusability.
Unconditional Jumps Unconditional Jumps Included in the program flow are the instructions that unconditionally jump to a predetermined location without taking any condition in to account.
Conditional Jumps Conditional Jumps Conditionals that moves the control flow to a specific address depending on the truth value of a condition.
Subroutine Calls Jump Commands Instructions that are responsible for transferring control to a subroutine, enabling task execution, while promoting code modularity and reusability.

Addressing Modes

The addressing modes of computer architecture are the various ways in which operand(s) of an instruction are specified. These modes define how the processor finds the data it needs to execute a command. The Intel 8086 microprocessor has support for many addressing modes, each granting flexibility in addressing memory and registers at the same time.

Below are the main addressing modes supported by the 8086

Immediate Addressing

Register Addressing

Direct Addressing

Indirect Addressing

Indexed Addressing

Based Addressing

Based Indexed Addressing

Key Instructions in the 8086 Instruction Set

The Intel 8086 microprocessor has a wealthy coaching set architecture (ISA) with loads of commands catering to different responsibilities.

Here are some key instructions in the 8086 instruction set along side information on their capability and utilization:

MOV (Move)

ADD (Addition)

SUB (Subtraction)

INC (Increment)

DEC (Decrement)

CMP (Compare)

PUSH

POP

POPA

PUSHA

Assembly Language Programming with the 8086

8086 Instruction Set Extensions

The 8086 instruction set has many updates and improvements in later x86 family processors. These updates add new instructions and features to the original 8086.

8086/8088 Instruction Extensions

The 8086 and 8088 processors were the first in the x86 family. They both had a basic set of instructions but set the stage for future improvements.

80286 Instruction Extensions

The 80286 processor, released in 1982, added several upgrades:

80386 Instruction Extensions

The 80386 processor, introduced in 1985, further expanded the instruction set:

80486 Instruction Extensions

The 80486 processor, released in 1989, continued to enhance the x86 architecture:

Pentium Instruction Extensions

The Pentium processor, introduced in 1993, brought major upgrades:

Later Extensions

Later x86 processors, such as the Pentium Pro, Pentium II, Pentium III, and Pentium 4, continued to add new instructions and features, including SSE (Streaming SIMD Extensions) and AVX (Advanced Vector Extensions).

Challenges

Advantages of 8086 Instruction Set

Conclusion

The set 8086 preparation remains a fundamental detail in computing history. Modulo its age, it remains relevant because of its robustness, flexibility, and wide-spread adoption. The set of instructions provided by the 8086 format offer programmers the flexibility to write green assembly language programs for numerous software. Then, the microarchitecture addresses several drawbacks such as the limited addressing of memory and weak functions which are defined in modern processors. Consequently, the x86 family will deliver the future features.