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 8086Register Addressing ModeImmediate Addressing ModeDirect Addressing ModeIndirect Addressing ModeImplicit Addressing ModeSegment Addressing ModeRegister Addressing ModeIn this addressing mode, both operands are stored in registers, and the names of the registers are specified in the instruction. For exampleMOV AX, BX ; AX ← BX MOV BH, CL ; BH ← CLImmediate Addressing ModeIn this, the immediate date is a part of the instruction and appears in the form of successive byte or bytes. For exampleMOV AX, 203AH ; AX ← 203AH MOV BL, ABH ; BL ← ABHDirect Addressing ModeIn 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 ModeIn 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 ModeIn this mode, the operand is implicit and is defined within the opcode. All the string instructions come under this mode. Examples of this mode areMOV SB ; [ES : DI] ← [DS : SI] LOD SB ; AL ← [DS : SI]Segment Addressing ModeThis 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 706FHIntersegment 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