SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes - PowerPoint PPT Presentation

Loading...

PPT – SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes PowerPoint presentation | free to download - id: 7bc8b5-MGMyY



Loading


The Adobe Flash plugin is needed to view this content

Get the plugin now

View by Category
About This Presentation
Title:

SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes

Description:

SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes The Architecture of Computer Hardware and Systems Software: An Information Technology Approach – PowerPoint PPT presentation

Number of Views:30
Avg rating:3.0/5.0
Slides: 38
Provided by: tempp159
Learn more at: http://h222767.temppublish.com
Category:

less

Write a Comment
User Comments (0)
Transcript and Presenter's Notes

Title: SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes


1
SUPPLEMENTARY CHAPTER 2 Instruction Addressing
Modes
  • The Architecture of Computer Hardware and Systems
    Software An Information Technology Approach
  • 3rd Edition, Irv Englander
  • John Wiley and Sons ?2003

2
Little Man Computer
  • Direct, absolute addressing
  • Direct data is reached directly from the
    address in the instruction
  • Absolute address in the instruction field is
    the actual memory location being addressed

3
Additional Addressing Modes
  • Programmer-accessible registers
  • Provide faster execution with register-based
    instructions
  • Alternatives to absolute addressing
  • Allow larger range of addressable memory
  • While using a reasonable number of bits for the
    address field
  • Alternatives to direct addressing
  • Facilitate writing certain types of programs
  • Example loops that use index to address
    different entries in a table or array

4
Register Addressing
  • Does not require a memory access
  • Faster execution
  • Implemented directly as part of the CPU
  • RISC machine instruction set made up almost
    entirely of register operation instructions

5
Register Addressing
Fetch-Execute Cycle for Register-to-Register Move Fetch-Execute Cycle for Register-to-Register Move
PC -gt MAR Transfer the address from the PC to the MAR
MDR -gt IR Transfer the instruction to the IR
contents(IRadd1) -gt contents(IRadd2) Move contents of source register to destination register
PC 1 -gt PC Program Counter incremented
Done in parallel with move only 3 time units
required
6
Additional Addressing Modes
  • Programmer-accessible registers
  • Provide faster execution with register-based
    instructions
  • Alternative to absolute addressing
  • Allow larger range of addressable memory
  • While using a reasonable number of bits for the
    address field
  • Alternative to direct addressing
  • Facilitate writing certain types of programs
  • Example loops that use index to address
    different entries in a table or array

7
Active Area of Memory
  • Code executes in a small area of memory that
    changes as program proceeds
  • Well-written code
  • Small modular subroutines and procedures
  • Local variables
  • Conditional branches

Fig S2.2
8
2 Alternatives to Absolute Addressing
  • Base register addressing
  • Relative addressing
  • Both provide starting address and an offset or
    displacement from the starting point
  • Starting address in register or program counter
  • Offset address in the instruction
  • Programming advantage relocatability

9
Base Register Addressing
  • Base register set to initial address
  • Hardware design special, separate register or
    general-purpose registers
  • Generally large to provide large memory space,
    frequently gigabytes
  • Final address contents of instruction address
    field added to the base address

10
IBM zSystem
  • Base register address creation

Base 1375 1375 1 20 Instruction
Register 1375 20

1395 actual location (absolute address in memory) actual location (absolute address in memory) actual location (absolute address in memory) actual location (absolute address in memory)
11
IBM zSystem
  • 16 64-bit general-purpose registers
  • Load instruction format

op code reg index base displacement
bit 0 7 8 11 12 15 16 19 20 31
12
IBM zSystem Example Load
  • Base-value register general-purpose register 3
  • 1 C 2 5 E 016
  • Displacement for the instruction
  • 3 7 A16
  • Absolute address

1 C 2 5 E 016
3 7 A16
1 C 2 9 5 A16
13
IBM zSystem Example Load
  • Instruction Word

58 6 0 3 37A
14
Fetch-Execute Cycle for Relative Address
PC -gt MAR Transfer the address from the PC to the MAR
MDR -gt IR Transfer the instruction to the IR
IRAddress PC -gt MAR Address portion of the instruction added to the PC and loaded into the MAR
MDR A -gt A Value in the MDR added to the value of the accumulator
PC 1 -gt PC Program Counter incremented
15
Relative Addressing
  • Value in address field added to value in program
    counter
  • Program counter used as the base register
  • Similar to base addressing
  • Constraint address field must be able to store
    and manipulate positive and negative numbers
  • Complementary representation

16
Relative Addressing Example
Program Counter 46 46 1 3 Instruction
Program Counter 46 3

49 actual location (absolute address in memory) actual location (absolute address in memory) actual location (absolute address in memory) actual location (absolute address in memory)
17
Direct Addressing
  • Separates data into location different from
    location of instructions
  • Benefits to programmer
  • Data can be changed without affecting the
    instruction itself
  • Data is available to different instructions

18
Additional Addressing Modes
  • Programmer-accessible registers
  • Provide faster execution with register-based
    instructions
  • Alternative to absolute addressing
  • Allow larger range of addressable memory
  • While using a reasonable number of bits for the
    address field
  • Alternative to direct addressing
  • Facilitate writing certain types of programs
  • Example loops that use index to address
    different entries in a table or array

19
Alternatives to Direct Addressing
  • Immediate addressing
  • Indirect addressing
  • Register Indirect addressing
  • Indexed addressing

20
Immediate Addressing
  • Store data with the instruction itself
  • Example
  • Data is a constant
  • Constraint
  • Address field must be able to store and
    manipulate positive and negative numbers
  • Complementary representation
  • Advantage
  • Additional memory access not required
  • Faster execution

21
Immediate Addressing
  • Modified LMC Example
  • Constant limited to the size of address field

op code addressing mode addressing mode addressing mode address field

1 1 05
(Load) (the number 05)
22
Immediate Addressing
  • Modified LMC Example


PC -gt MAR Transfer the address from the PC to the MAR
MDR -gt IR Transfer the instruction to the IR
IRAddress-gt A Move contents of source register to Accumulator
PC 1 -gt PC Program Counter incremented
23
Indirect Addressing
  • Address field of the instruction contains the
    address of the data
  • Similar to pointers in Pascal or C
  • Frequently used with subscripted data in a table

Memory address Data Table Subscript
77 136 TABLE(1)
78 554 TABLE(2)
79 302 TABLE(3)

24
Little Man Indirect Addressing
a. The Little Man reads in instruction
b. ,,, he finds the address of the data
25
Little Man Indirect Addressing
c. from that address he retrieves the data
d. with a different address in location 45, he
retrieves different data (note In this step the
address of the data has been incremented).
26
Incrementing
  • Treat the instruction as data
  • Modify the address field
  • Pure code does not modify itself during
    execution
  • Incrementing does not modify the instruction
  • Address stored in a separate data region
  • Advantage program can be stored in ROM

27
Mailbox Instruction Instruction Comments
00 LOAD 90 /this actually loads "ADD 60"..
01 STORE 07 /..into mailbox 07
02 LOAD 91 /initialize the totalizer
03 STORE 99
04 LOAD 92 /initialize the counter to 19
05 STORE 98
06 LOAD 99 /load the total
07 0 /ADD 60, ADD 61, etc.
08 STORE 99 /and store the new total
09 LOAD 07 /modify the instruction in 07..
10 ADD 93 /..by adding 1 as though the ..
11 STORE 07 /..instruction were data
12 LOAD 98
13 SUB 93 /decrement the counter
14 STORE 98
15 BRP 06 /loop back if not done
16 LOAD 99 /done..
17 OUT /output the result
18 HALT

90 ADD 60 /initial data for location 07
91 0
92 19
93 1
98 /used to hold the current count
99 /used to hold the current total
Totalizer Loop with Direct Addressing
Instruction in location 07 treated as data,
incremented, and replaced to its original location
28
Mailbox Instruction Instruction Comments
00 LOAD 90 /this time just the initial..
01 STORE 97 /..address is saved..
02 LOAD 91 /as..
03 STORE 99
04 LOAD 92 /
05 STORE 98
06 LOAD 99 /before
07 ADD 97 /this is the indirect instruction
08 STORE 99
09 LOAD 97 /modify the address in 97 (this is direct)..
10 ADD 93 /..by adding 1 to it
11 STORE 97
12 LOAD 98 /as
13 SUB 93
14 STORE 98
15 BRP 06 /
16 LOAD 99
17 OUT /before
18 HALT

90 60 /now this is the initial address
91 0
92 19
93 1
97 /used to hold the address of the data
98 /used to hold the current count
99 /used to hold the current total
Totalizer Loop with Indirect Addressing


Asterisk used to indicate indirect instruction
29
Register Indirect Addressing
  • Also called register deferred addressing
  • Address pointed is stored in a general-purpose
    register
  • Advantage efficient
  • 1 instruction to load pointer address in register
  • Data accessed in the same number of fetch-execute
    instructions as direct addressing
  • Small address field required (3 or 4 bits)
  • Excellent for addressing large memory space with
    small instruction word

30
Register Indirect Addressing Dual Duty
  • Autoincrementing/autodecrementing
  • Direct implementation of Cs and - -
  • Instruction
  • Performs normal function like LOAD or ADD
  • Plus increments or decrements register each time
    instruction executed
  • Advantage simplifies writing program loops
  • Replaces steps 7,9,10, 11 on Slide 28

31
Register Indirect Addressing Obtaining Data
32
Motorola 68000 CPU MOVE
33
Indexed Addressing
  • Use address in the instruction like direct
    addressing
  • But modify address by adding value from another
    register
  • General purpose or special index register

34
Indexed vs. Base Offset
  • Both offset address by amount stored in another
    register
  • Base offset primarily to expand addressing
    range for a given address field size
  • Value of base address likely to be large and
    rarely changed during execution
  • Index register primarily a table offset for
    subscripting
  • Value in index register most like small and
    frequently changing
  • Autoindexing similar to autoincrementing

35
Index Register Modifying an Address
36
Using Both Base Offset and Indexed Addressing
37
Totalizer Loop with Indexed Addressing
Mailbox Instruction Instruction Instruction Comments
00 LDA 91 91 /total is kept in A. This sets A to 0 (not indexed).
01 LDX 92 92 /initialize the counter to 19
02 ADD _at_ 60 60 /ADD 79, ADD 78, etc. as X is decremented
03 DEC X X /Decrement the index19, 18, etc.
04 BRPX 02 02 /test if done (when X decrements from 0 to -1)
05 OUT OUT /done output the result from A
06 HALT HALT
91 0 0
92 19 19
Note _at_ symbol indicates indexed instruction LDX LOAD register
X is the indexed register (offset and counter) LDA LOAD accumulator
About PowerShow.com