0% found this document useful (0 votes)
257 views28 pages

Addressing Mode: Mohd. Yamani Idris/ Noorzaily M Ohamed Noor 1

The document discusses various addressing modes used in 8086 microprocessors: 1. Register addressing mode uses registers to store and transfer data, providing faster processing than accessing memory. 2. Immediate addressing mode embeds constant data directly into instructions, avoiding memory access but limiting operand size. 3. Direct addressing mode stores operands in memory using effective addresses offset from the data segment register, allowing larger address spaces. 4. Indirect addressing mode uses the contents of a register as the address of the operand location in memory, providing more flexible but complex addressing.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
257 views28 pages

Addressing Mode: Mohd. Yamani Idris/ Noorzaily M Ohamed Noor 1

The document discusses various addressing modes used in 8086 microprocessors: 1. Register addressing mode uses registers to store and transfer data, providing faster processing than accessing memory. 2. Immediate addressing mode embeds constant data directly into instructions, avoiding memory access but limiting operand size. 3. Direct addressing mode stores operands in memory using effective addresses offset from the data segment register, allowing larger address spaces. 4. Indirect addressing mode uses the contents of a register as the address of the operand location in memory, providing more flexible but complex addressing.
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 28

Addressing Mode

MOHD. YAMANI IDRIS/ NOORZAILY M 1


OHAMED NOOR
8086 Microprocessor Register
8086 Registers Category
Category Bit Register Name
General Purpose Register 16 AX,BX,CX,DX
General Purpose Register 8 AH,AL,BH,BL,CH,CL,DH,DL

Pointer Register 16 SP (Stack Pointer)


BP (Base Pointer)
Index Register 16 SI (Source Index)
DI (Destination Index)
Segment Register 16 CS (Code Segment)
DS (Data Segment)
SS (Stack Segment)
ES (Extra Segment)
Instruction Pointer Register 16 IP (Instruction Pointer)
Status Register (Flag) 16 DR (Flag Register)

MOHD. YAMANI IDRIS/ NOORZAILY M 2


OHAMED NOOR
General Purpose Registers
 This register is used for general data manipulation
 Even CPU able to operate on the data stored in memory, the
same data can be process much faster if it is in register
 The function for 16-bit 8086 microprocessor register is as
follows

Register Function
AX Accumulator Register
For arithmetic, logic and data transfer operation
BX Base Register
Also as address register
CX Count Register
Used for loop counter, shift and rotate bits
DX Data Register
Used in division and multiplication also I/O operation

MOHD. YAMANI IDRIS/ NOORZAILY M 3


OHAMED NOOR
8-bit Data Division from 16-bit
 16-bit register can be divided into two 8-bit
register (i.e AX=AH&AL, BX=BH&BL,
CX=CH&CL, DX=DH&DL)

Figure 1: 8-bit Data Division from 16-bit

MOHD. YAMANI IDRIS/ NOORZAILY M 4


OHAMED NOOR
Segment Register
 Main memory management in 8086 use segment
concept
 The following show the usage of segment in memory
Segment Usage
Code (CS) Space to store program that will be executed

Data (DS) Space to store data that will be processed

Stack (SS) Special space to store information needed by


microprocessor to execute subroutine or
interrupt service
Extra (ES) Function is the same as DS

MOHD. YAMANI IDRIS/ NOORZAILY M 5


OHAMED NOOR
Instruction Pointer Register (IP)
 Register which stores instruction address to
be executed
 Each time instruction is fetch from memory to
be executed in processor, IP content will be
added so that it always show to the next
instruction
 If branch instruction, the IP content will be
loaded with new value which is the branch
address

MOHD. YAMANI IDRIS/ NOORZAILY M 6


OHAMED NOOR
Index Register and Pointer
 This registers is used for storing relative shifting
value for memory address location
 There are 2 pointer register:
 Stack Pointer (SP) – point to the top stack
 Base Pointer (BP) – used for fetch data in data segment
 There are 2 index register:
 Source Index (SI) – contains offset address for source
operand in data segment
 Destination Index (DI) - contains offset value for
destination operand in DS

MOHD. YAMANI IDRIS/ NOORZAILY M 7


OHAMED NOOR
Flag/Status Register
 Flag bit status register is used to determine
flow control when conditional branch
instruction is executed

R = Register SF = Sign Flag


U = Undefined ZF = Zero Flag
OF = Overflow Flag AF = Auxiliary Flag
DF = Direction Flag PF = Parity Flag
IF = Instruction Flag CF = Carry Flag
TF = Trap Flag

MOHD. YAMANI IDRIS/ NOORZAILY M 8


OHAMED NOOR
Addressing Mode
 Concept from Computer Science
 Are an aspect of the Instruction Set
Architecture (ISA) in most CPU design
 How machine language instruction in that
architecture identify operand of each
instruction
 Primarily interest the compiler writer and
those who write code directly in assembly
language

MOHD. YAMANI IDRIS/ NOORZAILY M 9


OHAMED NOOR
Addressing Mode
 Addressing Mode is a technique to determine which operand to
be fetched. (Operand = argument for an operator or for machine
language instruction)
 Addressing mode is used for:
 Give flexible programming to user using pointers to memory,
counter for loop control, index for data and program replacement
 Reduce bit numbers in address field for an instruction

 There are 7 types of addressing mode in 8086 register:


 Register addressing mode

 Immediate addressing mode

 Direct addressing mode

 Indirect addressing mode

 Base relative addressing mode

 Index relative addressing mode

 Base index relative addressing mode

MOHD. YAMANI IDRIS/ NOORZAILY M 10


OHAMED NOOR
Addressing Mode
Addressing Mode Advantage Disadvantage

Register No memory reference Limited address space

Immediate No memory reference Limited operand


magnitude
Direct Easy Limited address space

Indirect Large address space More reference to


memory
Base relative Flexible Complex

Index relative Flexible Complex

Base index relative Flexible Complex

MOHD. YAMANI IDRIS/ NOORZAILY M 11


OHAMED NOOR
Register Addressing Mode
 Simplest mode and often used
 Involved register usage
 Data obtained from operation is stored in other
register
 EA = R
EA = Effective Address (EA) for one location
which contain reference operand
R = Address field content in instruction which refer
to register (R)

MOHD. YAMANI IDRIS/ NOORZAILY M 12


OHAMED NOOR
Register Addressing Mode

Figure: Register Addressing Mode (EA=R)

MOHD. YAMANI IDRIS/ NOORZAILY M 13


OHAMED NOOR
Register Addressing Mode
Example:

Copy DX value to BX

Source operand

Destination operand

MOHD. YAMANI IDRIS/ NOORZAILY M 14


OHAMED NOOR
Register Addressing Mode

MOHD. YAMANI IDRIS/ NOORZAILY M 15


OHAMED NOOR
Immediate Addressing Mode
 Data is coded directly into machine code instruction
 Operand for source is a constant and is part of instruction
 Operand = A (where A = content for address field in
instruction

Figure: Immediate Addressing Mode (Operand = A)

Example: Load value 2550H to AX

Source operand

Destination operand

MOHD. YAMANI IDRIS/ NOORZAILY M 16


OHAMED NOOR
Immediate Addressing Mode
 Can’t be used with data segment (DS) and flag register (DF)
Invalid Example:
Load value directly to DS

Source operand

Destination operand

 This problem can be overcome by loading 0123H to one


general purpose register and then the register value is copied
to segment register as the following:

MOHD. YAMANI IDRIS/ NOORZAILY M 17


OHAMED NOOR
Immediate Addressing Mode

MOHD. YAMANI IDRIS/ NOORZAILY M 18


OHAMED NOOR
Direct Addressing Mode
 Operand is stored in memory location, commonly data segment
(DS)
 Source operand is the address not immediate data (written in [ ])
 This address is effective address which is the address of 16-bit
offset for operand storage location (from current DS value)
 Effective address need to be coupled with DS content to get the true
operand address (physical address)

EA = A
EA = Effective address for
location that contains
referred operand
A = Content for address field in
one instruction

MOHD. YAMANI IDRIS/ NOORZAILY M 19


OHAMED NOOR
Direct Addressing Mode
Example

Effective Address given is = 2400. If DS content is 2000 therefore physical address is


Physical Address = Segment Address + Effective Address

MOHD. YAMANI IDRIS/ NOORZAILY M 20


OHAMED NOOR
Indirect Addressing Mode
R= content for address
field in instruction
which referred to
register

 This mode use register as substitute to constant (in direct


addressing mode) to determine 16-bit offset address for an operand
 Offset address where data is placed might be in base pointer
register (BP), base register (BX), index register (DI,SI)
 In ambiguity case, assembler use BYTE PTR and WORD PTR to
show the size of data address using memory pointer

MOHD. YAMANI IDRIS/ NOORZAILY M 21


OHAMED NOOR
Indirect Addressing Mode
 It is often used to access data table from memory
Example:

Effective Address given is = 1122. If DS content is 1010 therefore physical


address is
Physical Address = Segment Address + Effective Address

MOHD. YAMANI IDRIS/ NOORZAILY M 22


OHAMED NOOR
Base Relative Addressing Mode
 Operand located in address obtained from addition of 8 or 16 bit
displacement into one of BX or BP and the result is then combined
with segment data (DS/SS)
 This 8 or 16- bit displacement must be specified in operand field and
translated as signed two’s compliment
 For 8-bit, displacement must in the range of -128 to +127
 For 16-bit, displacement must in the range of -32768 to +32767
 Effective Address = [Base register] + displacement
Physical Address = DS/SS = [Base register] + displacement

MOHD. YAMANI IDRIS/ NOORZAILY M 23


OHAMED NOOR
Base Relative Addressing Mode
Example:

Effective Address = Register [BX] + displacement

If DS content is 4000 therefore physical address is:


Physical Address = Segment Address + Effective Address

MOHD. YAMANI IDRIS/ NOORZAILY M 24


OHAMED NOOR
Indexed Relative Addressing Mode
 The same as base addressing except that index register (SI/DI) is used
 Operand is at given address by signed 8 or 16-bit displacement addition

to one of SI or DI and the result is then added with segment register


(DS=Default)
Example
MOV DX, ARRAY [SI]
Effective address = register [SI] + ARRAY
= 5000 + 1234H
= 6234H

If DS content is 2000, therefore the physical address is


Physical address = Segment address + Effective address
= 20000H + 6234H
=26234H

MOHD. YAMANI IDRIS/ NOORZAILY M 25


OHAMED NOOR
Indexed Relative Addressing Mode

MOHD. YAMANI IDRIS/ NOORZAILY M 26


OHAMED NOOR
Base Indexed Relative Addressing Mode
 Combine base addressing mode and indexed addressing mode
 Base register (BX?BP) is added to index register (DI/SI) as positive

integer (each register is in the range of 0 to 65535)


 As default, segment address is obtained from DS except for BP

register which is obtained form SS


 Effective Address = [base address] + [index register] + displacement

Example

Let say BX = 1000X, SI = 2000H, BETA = 1234H, DS =1200H

Effective Address = register [BX] + register [SI] + ARRAY

Physical Address = Segment address + Effective address

MOHD. YAMANI IDRIS/ NOORZAILY M 27


OHAMED NOOR
Base Indexed Relative Addressing Mode

MOHD. YAMANI IDRIS/ NOORZAILY M 28


OHAMED NOOR

You might also like