Microprocessors and Interfacing

8086 Pin Summary; 8086 Addressing Modes; 8086 Instruction Set Categories

C-CAT

8086 Pin Summary

The 8086 is available in 40-pin (8086) and 68-pin (8088/8086 variants) packages. Key signals:

Pin(s)SignalDescription
AD0–AD15Address/DataMultiplexed lower 16 address / 16 data lines
A16/S3 – A19/S7Address/StatusHigh address bits multiplexed with status
BHE/S7Bus High EnableEnables upper 8 data bits D8–D15
RD'ReadActive LOW — read cycle
WR'WriteActive LOW — write cycle
ALEAddress Latch EnableLatches address during T1
DEN'Data EnableEnables bus transceivers (8286/8287)
DT/RData Transmit/ReceiveDirection of data flow
M/IO'Memory/I/OHIGH = memory, LOW = I/O
READYReadyWait-state input from memory/peripheral
HOLD / HLDAHold / Hold AcknowledgeDMA bus request
INTRInterrupt RequestMaskable interrupt
NMINon-Maskable InterruptEdge-triggered, non-maskable
INTA'Interrupt AcknowledgeResponse to INTR
RESETResetActive HIGH system reset
CLKClock5 MHz typical
MN/MX'Mode selectMinimum vs Maximum mode
VCC / GNDPower+5 V and ground

8086 Addressing Modes

28.1 Immediate Mode

MOV CX, 4374H ; 4374H is the immediate operand

28.2 Direct (Memory) Mode

MOV BL, [4374H] ; Data at absolute address 4374H → BL

28.3 Register Mode

MOV CX, AX ; Copy AX to CX
ADD BX, DX ; Add DX to BX

28.4 Register Indirect Mode

MOV AL, [BX] ; AL ← Memory[DS×10H + BX]
MOV AL, CS:[BX] ; Override default segment with CS

Valid indirect registers: BX, BP, SI, DI

28.5 Based Addressing

MOV AL, [BP+10H] ; Effective address = BP + 10H

28.6 Indexed Addressing

MOV AX, [SI] ; DS:SI (default segment DS for SI)
MOV AX, [DI] ; ES:DI (default segment ES for DI)

28.7 Based Indexed Addressing

MOV AX, [BX][SI] ; Effective address = BX + SI
MOV AX, [BP][DI] ; Effective address = BP + DI

28.8 Register Relative (Displacement) Mode

MOV AX, 50H[BX] ; Effective address = BX + 50H
MOV AX, 1234H[SI] ; 16-bit displacement + SI

Combined formula:

Physical Address = Segment × 10H + Base + Index + Displacement

Example:

DS = 2000H, BX = 1000H, SI = 0050H
PA = 2000H × 10H + 1000H + 0050H = 20000H + 1050H = 21050H

28.9 Branch Addressing Modes

ModeRangeExample
Intrasegment (near)±128 (short) or ±32K (near)JMP SHORT NEXT
Intrasegment indirectTarget in register/memoryJMP [BX]
Intersegment (far)Cross segment boundaryJMP 5000H:2000H
Intersegment indirectFar pointer in memoryJMP FAR [2000H]

8086 Instruction Set Categories

CategoryExamplesPurpose
Data transferMOV, PUSH, POP, XCHG, IN, OUT, LEA, LDS, LESMove data
Arithmetic & logicalADD, SUB, MUL, DIV, INC, DEC AND OR, XOR, NOT, CMPComputation
BranchJMP, CALL, RET, Jcc (JE, JNE, JG, JL, …)Control flow
LoopLOOP, LOOPE/LOOPZ, LOOPNE/LOOPNZCX-based iteration
Machine controlHLT, WAIT, LOCK, NOPProcessor control
Flag manipulationCLC, STC, CMC, CLD, STD, CLI, STISet/clear flags
Shift & rotateSHL, SHR, SAR, ROL, ROR, RCL, RCRBit manipulation
StringMOVS, CMPS, SCAS, LODS, STOS, REPBlock memory ops with SI/DI

String instructions use DF flag for direction and CX as counter with optional REP prefix.

Continue learning

Related notes

Put this topic into timed practice

Open mock tests when you want full-exam pacing, or keep drilling in practice mode.