Supplementary chapter 2 instruction addressing modes
Sponsored Links
This presentation is the property of its rightful owner.
1 / 37

SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on
  • Presentation posted in: General

The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3rd Edition, Irv Englander John Wiley and Sons  2003. SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes. Little Man Computer. Direct, absolute addressing

Download Presentation

SUPPLEMENTARY CHAPTER 2 Instruction Addressing Modes

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


The Architecture of Computer Hardware and Systems Software: An Information Technology Approach

3rd Edition, Irv Englander

John Wiley and Sons 2003

SUPPLEMENTARY CHAPTER 2Instruction Addressing Modes


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

Supplementary Chapter 2 Instruction Addressing Modes


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

Supplementary Chapter 2 Instruction Addressing Modes


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

Supplementary Chapter 2 Instruction Addressing Modes


Register Addressing

*Done in parallel with move; only 3 time units required

Supplementary Chapter 2 Instruction Addressing Modes


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

Supplementary Chapter 2 Instruction Addressing Modes


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

Supplementary Chapter 2 Instruction Addressing Modes


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

  • Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    IBM zSystem

    • Base register address creation

    Supplementary Chapter 2 Instruction Addressing Modes


    IBM zSystem

    • 16 64-bit general-purpose registers

      • Load instruction format

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Op code

    Base register

    Destination register

    Displacement

    IBM zSystem Example: Load

    • Instruction Word

    Supplementary Chapter 2 Instruction Addressing Modes


    Fetch-Execute Cycle for Relative Address

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Relative Addressing Example

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Alternatives to Direct Addressing

    • Immediate addressing

    • Indirect addressing

    • Register Indirect addressing

    • Indexed addressing

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Immediate Addressing

    • Modified LMC Example

      • Constant limited to the size of address field

    Supplementary Chapter 2 Instruction Addressing Modes


    Immediate Addressing

    • Modified LMC Example

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Little Man Indirect Addressing

    a. The Little Man reads in instruction

    b. ,,, he finds the address of the data

    Supplementary Chapter 2 Instruction Addressing Modes


    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).

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Totalizer Loop

    with

    Direct Addressing

    Instruction in location 07 treated as data, incremented, and replaced to its original location


    Totalizer Loop

    with

    Indirect Addressing

    Asterisk used to indicate indirect instruction


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Register Indirect AddressingDual Duty

    • Autoincrementing/autodecrementing

      • Direct implementation of C’s “++” 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

    Supplementary Chapter 2 Instruction Addressing Modes


    Register Indirect AddressingObtaining Data

    Supplementary Chapter 2 Instruction Addressing Modes


    Motorola 68000 CPU MOVE

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    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

    Supplementary Chapter 2 Instruction Addressing Modes


    Index Register: Modifying an Address

    Supplementary Chapter 2 Instruction Addressing Modes


    Using Both Base Offset and Indexed Addressing

    Supplementary Chapter 2 Instruction Addressing Modes


    Totalizer Loop with Indexed Addressing

    Supplementary Chapter 2 Instruction Addressing Modes


  • Login