MICROPROCESSOR
SYSTEMS
The Intel Microprocessors
8086/8088, 80186/80188, 80286, 80386,
80486, Pentium, Pentium Pro Processor,
Pentium II, Pentium III, Pentium 4, and Core2
with 64-Bit Extensions
Architecture, Programming, and Interfacing
Eighth Edition, 2009 (By: BARRY B. BREY)
Mohamed M. Eljhani, Ph.D.
Department of Computer Engineering
University of Tripoli
Spring 2023
Chapter 3
Addressing Modes
Chapter Outline
◼ Use the data-addressing modes to form
assembly language statements
◼ Operation of each data-addressing mode
◼ Use the program memory-addressing modes to
form assembly and machine language
statements
◼ Difference between addressing memory data
Chapter 3 — Addressing Modes — 2
Introduction
Chapter 3 — Addressing Modes — 3
Addressing Modes
Chapter 3 — Addressing Modes — 4
Data Addressing Modes
◼ MOV instruction is a common instruction
◼ Provides a basis for explanation of data-addressing
modes
◼ Source is to the right and destination the left, next to the
opcode MOV
Chapter 3 — Addressing Modes — 5
Data Addressing Modes
◼ All possible variations of the data-addressing modes using MOV
Chapter 3 — Addressing Modes — 6
Addressing Modes
Chapter 3 — Addressing Modes — 7
Addressing Modes
Chapter 3 — Addressing Modes — 8
Register Addressing
◼ It is the most common form of data addressing
◼ Microprocessor contains these 8-bit registers
used with register addressing: AH, AL, BH, BL,
CH, CL, DH, and DL
◼ 16-bit register: AX, BX, CX, DX, SP, BP, SI, and
DI
◼ In 80386 & above, extended 32-bit register:
EAX, EBX, ECX, EDX, ESP, EBP, EDI, and ESI
◼ In 64-bit register: RAX, RBX, RCX, RDX, RSP,
RBP, RDI, RSI, and R8 through R15
Chapter 3 — Addressing Modes — 9
Register Addressing
◼ Important for instructions to use registers that
are the same size
◼ Never mix an 8-bit with a 16-bit register, an 8- or a 16-
bit register with a 32-bit register
◼ This is not allowed by the microprocessor and results
in an error when assembled
Chapter 3 — Addressing Modes — 10
Register Addressing
Chapter 3 — Addressing Modes — 11
Immediate Addressing
◼ Term immediate implies that data immediately
follow the hexadecimal opcode in the memory
◼ Immediate data are constant data
◼ Data transferred from a register or memory location
are variable data
◼ Immediate addressing operates upon a byte or
word of data
Chapter 3 — Addressing Modes — 12
Immediate Addressing
Chapter 3 — Addressing Modes — 13
Direct Data Addressing
◼ Applied to many instructions in a typical program
◼ Two basic forms of direct data addressing:
◼ Direct addressing, which applies to a MOV between
a memory location and AL, AX, or EAX
◼ Displacement addressing, which applies to almost
any instruction in the instruction set
◼ Address is formed by adding the displacement to
the default data segment address
Chapter 3 — Addressing Modes — 14
Direct Addressing
Chapter 3 — Addressing Modes — 15
Direct Addressing
Chapter 3 — Addressing Modes — 16
Register Indirect Addressing
◼ Allows data to be addressed at any memory
location through an offset address held in any of
the following registers: BP, BX, DI, and SI
◼ In addition, 80386 and above allow register
indirect addressing with any extended register
except ESP
◼ The data segment is used by default with
register indirect addressing or any other mode
that uses BX, DI, or SI to address memory
Chapter 3 — Addressing Modes — 17
Register Indirect Addressing
◼ If the BP register addresses memory, the stack
segment is used by default
◼ For the 80386 and above, EBP addresses
memory in the stack segment by default
◼ EAX, EBX, ECX, EDX, EDI, and ESI address memory
in the data segment by fault
Chapter 3 — Addressing Modes — 18
Register Indirect Addressing
Chapter 3 — Addressing Modes — 19
Based Addressing
Chapter 3 — Addressing Modes — 20
Indexed Addressing
Chapter 3 — Addressing Modes — 21
Based Index Addressing
Chapter 3 — Addressing Modes — 22
String Addressing
Chapter 3 — Addressing Modes — 23
Direct I/O Port Addressing
Chapter 3 — Addressing Modes — 24
Indirect I/O Port Addressing
Chapter 3 — Addressing Modes — 25
Relative Addressing
Chapter 3 — Addressing Modes — 26
Implied Addressing
Chapter 3 — Addressing Modes — 27
Stack Memory-addressing
Modes
◼ The stack plays an important role in all microprocessors
◼ Holds data temporarily and stores return addresses
used by procedures
◼ Stack memory is LIFO (last-in, first-out) memory
◼ Describes the way data are stored and removed
from the stack
Chapter 3 — Addressing Modes — 28
Stack Memory-addressing
Modes
◼ The PUSH and
POP instructions:
◼ (a) PUSH BX
places the contents
of BX onto the
stack;
◼ (b) POP CX
removes data from
the stack and
places them into
CX
◼ Both instructions
are shown after
execution
Chapter 3 — Addressing Modes — 29