Skip to content
The Computer Science
TheCScience
  • Engineering Subjects
    • Human Values
    • Computer System Architecture
    • Digital Communication
    • Internet of Things
  • NCERT Solutions
    • Class 12
    • Class 11
  • HackerRank solutions
    • HackerRank Algorithms Problems Solutions
    • HackerRank C solutions
    • HackerRank C++ problems solutions
    • HackerRank Java problems solutions
    • HackerRank Python problems solutions
The Computer Science
TheCScience

Addressing Modes of 8086 Microprocessor

YASH PAL, April 9, 2026April 9, 2026

Addressing Modes of the 8086 Microprocessor – In the 8086 Microprocessor, the way in which the operands are specified in the instruction is called the address mode. Each microprocessor has its own instruction set and has different ways to specify the operands/address mode. The following are the 6 addressing modes used by the 8086 microprocessor.

Addressing Modes of 8086

  1. Register Addressing Mode
  2. Immediate Addressing Mode
  3. Direct Addressing Mode
  4. Indirect Addressing Mode
  5. Implicit Addressing Mode
  6. Segment Addressing Mode

Register Addressing Mode

In this addressing mode, both operands are stored in registers, and the names of the registers are specified in the instruction. For example

MOV  AX, BX    ;   AX ← BX
MOV  BH, CL    ;   BH ← CL

Immediate Addressing Mode

In this, the immediate date is a part of the instruction and appears in the form of successive byte or bytes. For example

MOV  AX, 203AH  ; AX ← 203AH
MOV  BL, ABH    ; BL ← ABH

Direct Addressing Mode

In this mode, the data is accessed by its address, and the address (offset address) is directly specified in the instruction.

MOV  AX, [2000H]    ; AX ← [DS : 2000H]
ADD  CL, [3060H]    ; CL ← CL + [DS : 3060H]

Indirect Addressing Mode

In this mode, the address of data is stored in some register or in a pair of registers. According to the choice of registers, indirect addressing has different categories:

Register Indirect: In this mode, the memory offset address can be specified by any of the following four registers: two base registers (BX and BP) and two index registers (SI and DI)

MOV  AX, [BX]      ; AX ← [DS : BX]
MOV  DX, [SI]      ; DX ← [DS : SI]

Index Indirect: In this mode, the memory offset address is specified by any of two index registers (SI and DI) with an 8-bit or 16-bit displacement.

MOV  CL, [SI + 03H]     ; CL ← [DS : SI + 03H]
MOV  AX, [DI + 0012H]   ; AX ← [DS : DI + 0012H]

Base Indirect: This is similar to the index indirect mode, but the memory offset address is specified by any of two base registers (BX and BP) with an 8-bit or 16-bit displacement, and the base address is given by SS instead of DS.

MOV  DL, [BP - 02H]     ; DL ← [SS : BP - 02H]
ADD  CL, [BX + 0030H]   ; CL ← CL + [SS : BX + 0030H]

Based and Indexed Indirect: In this mode, a pair of base (BX/BP) and index (SI/DI) is used to specify the address.

MOV  AX, [BP + SI]      ; AX ← [SS : BP + SI]
SUB  BX, [BX + DI]      ; BX ← BX - [SS : BX + DI]

Based and Indexed with Displacement: This is the most flexible mode. In this mode, a pair of base (BX/BP) and index (SI/DI) is used to specify the address with an 8-bit or 16-bit displacement.

MOV  AX, [BP + SI + 02H]  ; AX ← [SS : BP + SI + 02H]
SUB  BX, [BX + DI + 0012H]; BX ← BX - [SS : BX + DI + 0012H]

Implicit Addressing Mode

In this mode, the operand is implicit and is defined within the opcode. All the string instructions come under this mode. Examples of this mode are

MOV  SB         ; [ES : DI] ← [DS : SI]
LOD  SB         ; AL ← [DS : SI]

Segment Addressing Mode

This addressing is also known as a branch-related addressing mode. In this mode, the address is specified in the instruction where the program control is transferred. If the location to which the control is to be transferred lies in a different segment other than the current one, the mode is called inter-segment addressing mode. If the location is in the same segment, the mode is called intra intra-segment addressing mode.

Intersegment Direct: In this mode, the destination location lies in a different segment, and the address appears directly in the instruction as an immediate displacement value. The displacement is computed relative to the contents of the instruction pointer (IP). Examples are as follows:

JMP  DELAY    ; DELAY is subroutine in other segment.
CALL PROG     ; PROG is defined in other segment.

Intersegment Indirect: In this mode, the destination address is in a different segment, and it is passed to the instruction indirectly.

JMP   DWORD    PTR[SI]
CALL  DWORD    PTR[BX]

Intersegment Direct: In this mode, the destination address is in the same segment and appears directly in the instruction as an immediate displacement value.

JAE     305AH
CALL   706FH

Intersegment Indirect: In this, the destination address is in the same segment, and it is passed to the instruction indirectly.

CALL   BX
JMP    WORD    PTR[SI]
engineering subjects Microprocessor microprocessor

Post navigation

Previous post
Next post

TheCScience

We at TheCScience.com are working towards the goal to give free education to every person by publishing in dept article about Secondary, Senior-Secondary, and Graduation level subjects.

Pages

About US

Contact US

Privacy Policy

DMCA

Our Tools

Hosting - get 20% off

Engineering Subjects

Internet of Things

Human Values

Digital Communication

Computer System Architecture

Programming Tutorials

Data Structure and Algorithm

C

Java

NCERT

Class 12th

©2026 TheCScience | WordPress Theme by SuperbThemes