ME304 Final Project Presentation Fall 2012 The Solar Still Aaron Yuengert Ayah Yamani.
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR1 Addressing Mode.
-
Upload
marjory-allison -
Category
Documents
-
view
219 -
download
1
Transcript of MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR1 Addressing Mode.
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
1
Addressing Mode
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
2
8086 Microprocessor Register8086 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 MOHAMED NOOR
3
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 MOHAMED NOOR
4
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 MOHAMED NOOR
5
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 MOHAMED NOOR
6
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 MOHAMED NOOR
7
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 MOHAMED NOOR
8
Flag/Status Register Flag bit status register is used to determine
flow control when conditional branch instruction is executed
R = Register
U = Undefined
OF = Overflow Flag
DF = Direction Flag
IF = Instruction Flag
TF = Trap Flag
SF = Sign Flag
ZF = Zero Flag
AF = Auxiliary Flag
PF = Parity Flag
CF = Carry Flag
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
9
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 MOHAMED NOOR
10
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 MOHAMED NOOR
11
Addressing ModeAddressing 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 MOHAMED NOOR
12
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 operandR = Address field content in instruction which refer
to register (R)
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
13
Register Addressing Mode
Figure: Register Addressing Mode (EA=R)
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
14
Register Addressing ModeExample:
Destination operand
Source operand
Copy DX value to BX
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
15
Register Addressing Mode
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
16
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
Destination operand
Source operand
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
17
Immediate Addressing Mode Can’t be used with data segment (DS) and flag register (DF)
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:
Invalid Example:Load value directly to DS
Destination operand
Source operand
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
18
Immediate Addressing Mode
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
19
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 MOHAMED NOOR
20
Direct Addressing ModeExample
Effective Address given is = 2400. If DS content is 2000 therefore physical address is
Physical Address = Segment Address + Effective Address
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
21
Indirect Addressing Mode
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
R= content for address field in instruction which referred to register
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
22
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 MOHAMED NOOR
23
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 MOHAMED NOOR
24
Base Relative Addressing Mode
Effective Address = Register [BX] + displacement
Example:
If DS content is 4000 therefore physical address is: Physical Address = Segment Address + Effective Address
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
25
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)
ExampleMOV 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 MOHAMED NOOR
26
Indexed Relative Addressing Mode
MOHD. YAMANI IDRIS/ NOORZAILY MOHAMED NOOR
27
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 MOHAMED NOOR
28
Base Indexed Relative Addressing Mode