0% found this document useful (0 votes)
6 views

Addressing modes in 8086 microprocessor

Addressing modes in the 8086 microprocessor define how instructions access data, specifying whether operands are immediate values, memory addresses, or registers. Various types of addressing modes, such as Register Mode, Immediate Mode, and Indexed Mode, enhance the efficiency and flexibility of assembly language programming. Understanding these modes is crucial for optimizing code performance and managing data effectively during program execution.

Uploaded by

ezekiel nyamu
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
6 views

Addressing modes in 8086 microprocessor

Addressing modes in the 8086 microprocessor define how instructions access data, specifying whether operands are immediate values, memory addresses, or registers. Various types of addressing modes, such as Register Mode, Immediate Mode, and Indexed Mode, enhance the efficiency and flexibility of assembly language programming. Understanding these modes is crucial for optimizing code performance and managing data effectively during program execution.

Uploaded by

ezekiel nyamu
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 4

Addressing modes in 8086 microprocessor

Last Updated : 30 Oct, 2024




Addressing modes are important in assembly language


programming as they define how data is located and accessed by
instructions. These modes describe how an instruction specifies its
operands, whether they are immediate values, memory addresses,
or registers. They play important role in processor to fetch or store
data for an operation, allowing us to manage read/write operations
during program execution. Effective use of addressing modes makes
assembly language code more efficient and flexible, directly
impacting performance.
What is Addressing Mode?
Addressing modes specify how an instruction identifies the data,
or operands. It operates on in assembly language. This field
indicates whether the operand is a direct value, a memory address,
or stored in a register. Addressing modes are important during
instruction execution, as they define the form of an operand and the
way data is accessed, making sure proper data handling at the
machine level.
Types of Addressing Modes
Register Mode: In this type of addressing mode both the operands
are registers.
Example:
MOV AX, BX
XOR AX, DX
ADD AL, BL
Immediate Mode: In this type of addressing mode the source
operand is a 8 bit or 16 bit data. Destination operand can never be
immediate data.
Example:
MOV AX, 2000
MOV CL, 0A
ADD AL, 45
AND AX, 0000
Displacement or Direct Mode: In this type of addressing mode
the effective address is directly given in the instruction as
displacement.
Example:
MOV AX, [DISP]
MOV AX, [0500]
Register Indirect Mode: In this addressing mode the effective
address is in SI, DI or BX.
Example: Physical Address = Segment Address + Effective Address
MOV AX, [DI]
ADD AL, [BX]
MOV AX, [SI]
Based Indexed Mode: In this the effective address is sum of base
register and index register.
Base register: BX, BP
Index register: SI, DI
Indexed Mode: In this type of addressing mode the effective
address is sum of index register and displacement.
Example:
MOV AX, [SI+2000]
MOV AL, [DI+3000]
Based Mode: In this the effective address is the sum of base
register and displacement.
Example:
MOV AL, [BP+ 0100]
Based Indexed Displacement Mode: In this type of addressing
mode the effective address is the sum of index register, base
register and displacement.
Example:
MOV AL, [SI+BP+2000]
String Mode: This addressing mode is related to string instructions.
In this the value of SI and DI are auto incremented and decremented
depending upon the value of directional flag.
Example:
MOVS B
MOVS W
Input/Output Mode: This addressing mode is related with input
output operations.
Example:
IN A, 45
OUT A, 50
Relative Mode: In this the effective address is calculated with
reference to instruction pointer.
Example:
JNZ 8 bit address
IP=IP+8 bit address
Advantages of Addressing Modes
 By using different addressing modes, you can access data in
registers or memory and as immediate values which makes
CPU instructions more versatile.
 The register-based and indexed mode make better use of
memory, especially in the case of loop operations / arrays.
 For example, modes such as register addressing will make
the instructions run faster because they read data directly
from registers rather than memory.
Disadvantages of Addressing Modes
 Indirect or indexed addressing modes: here the program
logic becomes harder to see and maintain as not all
instructions are using them.
 Like displacement or relative addressing modes, that could
add possibly memory overhead which is near in the event of
large value displacements.
 Other addressing modes are more closely linked to the CPU
architecture, making it less easy for assembly code to be
ported across different hardware platforms.
Conclusion
Addressing modes specify how an instruction identifies the data, or
operands. They describe how the data is discovered and employed
as long as this system runs, which makes stuff much more flexible
along with handy. You will be able to write better assembly code
using memory and registers smartly once you understand different
addressing modes.
Frequently Asked Questions on Addressing
Modes in 8086 Microprocessor
Can the destination operand be an immediate value?
No, it needs to be a register or memory address.
What is Register Indirect Mode?
The transferred in effective address is stored in a register (SI, DI or
BX).
What does the Directional Flag (DF) do in String
Mode?
It determines the increment or decrement of SI and DI during string
operations.

You might also like