Addressing Modes (30.1) - Addressing Modes - Computer Organisation and Architecture - Vol 1
Students

Academic Programs

AI-powered learning for grades 8-12, aligned with major curricula

Professional

Professional Courses

Industry-relevant training in Business, Technology, and Design

Games

Interactive Games

Fun games to boost memory, math, typing, and English skills

Addressing Modes

Addressing Modes

Enroll to start learning

You’ve not yet enrolled in this course. Please enroll for free to listen to audio lessons, classroom podcasts and take practice test.

Practice

Interactive Audio Lesson

Listen to a student-teacher conversation explaining the topic in a relatable way.

Immediate Addressing

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Let's start with immediate addressing. In this mode, the operand is embedded within the instruction itself. For instance, if we have the instruction LOAD IMMEDIATE 20, what do you think happens?

Student 1
Student 1

The value 20 gets loaded directly into the accumulator without needing to look anywhere else!

Teacher
Teacher Instructor

Exactly, that's correct! This is a very efficient way to load values. Can anyone tell me why we might choose immediate addressing over others?

Student 2
Student 2

Because it’s faster since we don’t have to access memory each time?

Teacher
Teacher Instructor

Correct! Immediate addressing saves time and is used for constants that won't change. Remember, 'I Load Direct Immediate' or 'ILDI' can help you recall this.

Direct and Indirect Addressing

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Next, we have direct and indirect addressing. Who can explain what direct addressing is?

Student 3
Student 3

In direct addressing, we use the instruction to specify a memory location directly. Like LOAD DIRECT 3?

Teacher
Teacher Instructor

Precisely! The data is located directly in memory location 3. How does indirect addressing differ?

Student 4
Student 4

In indirect addressing, we are actually getting the address of the data from another memory location, right? Like LOAD INDIRECT 5, where memory 5 tells us where the actual data is?

Teacher
Teacher Instructor

Exactly! A good way to remember this is: 'I Direct to a location, I Indirectly find data!' Keep these distinctions clear.

Displacement Addressing

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Now, let’s talk about displacement addressing. Why might we need to combine a memory address with a register?

Student 1
Student 1

To access dynamic ranges of data, like arrays or for loops!

Teacher
Teacher Instructor

Exactly right! Displacement addressing allows us to access memory locations based on varying conditions. Can anyone give me an example of how this is used in loops?

Student 2
Student 2

If we have a starting point in a register and we keep adding to get to each subsequent memory location!

Teacher
Teacher Instructor

Precisely, with a base register or an index register, you can efficiently iterate through arrays. Remember that with displacement addressing, we can 'Displace and Replace' data easily!

Examples of Addressing Modes

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Let’s summarize all our addressing modes with examples. What’s the opcode and value for immediate addressing again?

Student 3
Student 3

LOAD IMMEDIATE 20, which loads 20 directly into the accumulator.

Teacher
Teacher Instructor

Correct! And for direct addressing, what do we have?

Student 4
Student 4

LOAD DIRECT 3, accessing whatever is in memory location 3!

Teacher
Teacher Instructor

Exactly! Fantastic recall team! Always remember, 'Load Direct to Address' for direct, and 'Load through Indirect Path' for indirect addressing. Great work today!

Introduction & Overview

Read summaries of the section's main ideas at different levels of detail.

Quick Overview

This section explores various addressing modes, including immediate, direct, indirect, and displacement addressing, as well as the significance of each in computing.

Standard

The section discusses different addressing modes (immediate, direct, indirect, and displacement), providing examples to illustrate how each mode functions. It emphasizes the practical applications of these addressing types in programming, especially in loops and memory management.

Detailed

Addressing Modes

This section discusses the various addressing modes used in computer architecture, which define how the operand of an instruction is accessed or located in memory. The modes include:

Addressing Modes Explained

  • Immediate Addressing: In this mode, the operand is directly embedded in the instruction. For instance, in LOAD IMMEDIATE 20 (mnemonic: LDI), the value 20 is loaded into the accumulator without referencing any memory.
  • Direct Addressing: This mode refers to a specific memory location where the data is stored. For example, LOAD DIRECT 3 retrieves data directly from memory location 3.
  • Indirect Addressing: In indirect addressing, the instruction holds a pointer to a location that contains the actual operand. For example, LOAD INDIRECT 5 means the address in memory location 5 is accessed to retrieve the operand.
  • Register Direct Addressing: This refers to loading data from a specified register directly into the accumulator. For instance, LOAD REGISTER DIRECT 2 uses the content of register 2 (which we assume contains the address 3) for loading data.
  • Register Indirect Addressing: Similar to indirect addressing, but it uses a register to point to the memory location. Here, the content of register 2 needs to be read first to get the actual memory address.

Displacement Addressing

The latter part of the section addresses displacement addressing, which combines a memory location and a register to calculate an effective address. This is particularly useful for accessing data in arrays or managing loops where the address of the operand may need to change dynamically.

Several types of displacement addressing include:
- Relative Addressing: Utilizes the Program Counter (PC) as a register to calculate the effective address, which is useful for control flow instructions like jumps.
- Base Register Addressing: This uses a base register to create effective addresses through a displacement value.
- Indexed Addressing: It uses a general-purpose register as an index to access array elements in a loop.

The discussion concludes with the importance of these addressing modes in optimizing data access and control flow in programming, highlighting specific examples to make concepts clearer.

Youtube Videos

One Shot of Computer Organisation and Architecture for Semester exam
One Shot of Computer Organisation and Architecture for Semester exam

Audio Book

Dive deep into the subject with an immersive audiobook experience.

Immediate Addressing Mode

Chapter 1 of 7

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

LOAD IMMEDIATE 20 means that the value of twenty binary will be in the instruction itself. In immediate mode of instruction, you need not refer to any memory location nor any other register except the accumulator.

Detailed Explanation

In immediate addressing mode, the value that you want to load into the accumulator is directly specified in the instruction. For example, if the instruction is LOAD IMMEDIATE 20, this means that the number 20 is part of the instruction itself. You don't need to look up this number in memory or any registers; it's immediately available to be used by the accumulator. This simplifies the process because there's no extra step of fetching data from another location.

Examples & Analogies

Think of this like a recipe where you have all the ingredients right on the page. When the recipe says to add '20 grams of sugar,' you know exactly how much you need without looking into your pantry. It's right there in front of you, just like the immediate value in the instruction.

Direct Addressing Mode

Chapter 2 of 7

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

LOAD DIRECT 3 means the value present in memory location 3 is loaded into the accumulator. Direct addressing mode refers to the specific memory location where the desired data is stored.

Detailed Explanation

In direct addressing mode, the instruction specifies the exact memory location where the required data is located. For instance, if you have the instruction LOAD DIRECT 3, it indicates that you need to look at memory location 3, find out what value is stored there, and then load that value into the accumulator. This requires an additional step of accessing memory compared to immediate mode.

Examples & Analogies

Imagine you're looking for a book in a library. When the librarian tells you to find 'Book 3' on the shelf, you go directly to that shelf and pick the third book without needing any intermediate steps or hints. This is the same way direct addressing works in accessing memory.

Indirect Addressing Mode

Chapter 3 of 7

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

LOAD INDIRECT 5 means the accumulator will be loaded with the content from the address held in memory location 5. Memory location 5 contains the address of where the actual data is located.

Detailed Explanation

In indirect addressing mode, the instruction does not point directly to the actual data, but rather to a memory location that contains the address of the data. For example, if you have the instruction LOAD INDIRECT 5, this means that the value in memory location 5 is an address itself where the actual data is stored. The process involves first retrieving the address from memory and then going to that address to get the final value to load into the accumulator.

Examples & Analogies

Imagine you receive a letter that says to check 'Box 5' in a storage unit for your lost keys. First, you need to find out what's in Box 5 (which might tell you where the actual keys are) before you can retrieve the keys. This indirect method means you're looking for an address that leads you to the real item.

Register Direct Addressing Mode

Chapter 4 of 7

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

LOAD REGISTER DIRECT 2 means you load the accumulator with the content present in register number 2.

Detailed Explanation

Register direct addressing mode refers to directly accessing the data in a specific register rather than in memory. If you have an instruction like LOAD REGISTER DIRECT 2, this instructs the system to take whatever value is in register 2 and load that directly into the accumulator. This mode is similar to direct addressing but utilizes registers instead of memory locations.

Examples & Analogies

Think of it as pulling a specific ingredient, say sugar, directly from your kitchen counter instead of looking it up on the shelves. It's quicker because you already have it right at your fingertips compared to searching through cabinets.

Register Indirect Addressing Mode

Chapter 5 of 7

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

REGISTER INDIRECT 2 means you refer to the value inside register 2, which contains a memory location, and load the accumulator with the content from that memory location.

Detailed Explanation

In register indirect addressing mode, the address of the data is held in the register. For instance, if the instruction is LOAD REGISTER INDIRECT 2, it means the system checks the value in register 2. If register 2 contains the number 3, the system then looks up memory location 3 to get the actual value and loads it into the accumulator. This adds an extra layer since you first need to read the register before accessing memory.

Examples & Analogies

Imagine you're given an address to find someone's house: you first need to read that address from your GPS before you can navigate to the actual location. Similarly, register indirect addressing requires looking up the register value for the crucial address that leads to your data.

Displacement Addressing Mode

Chapter 6 of 7

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

Displacement mode uses two address fields: one explicit memory address and another that refers to a register. The effective address is calculated by adding these two together.

Detailed Explanation

Displacement addressing combines two pieces of information to find the effective address where data is stored. This involves adding a constant value (an explicit memory address) to the value contained in a register. For example, if the instruction indicates memory location 3 (the explicit address) and register 4 contains the value 2, the effective address becomes 3 + 2 = 5, meaning the data will be fetched from memory location 5. This method enhances flexibility since you can easily iterate through memory locations by changing the register’s value.

Examples & Analogies

Consider this like navigating with a map where you have a starting point (your current location) and instructions to move a certain number of blocks. If you are at block 3 and the instruction tells you to move 2 blocks forward, you will find yourself at block 5. This method allows for dynamic adjustments as you move along the route.

Types of Displacement Addressing

Chapter 7 of 7

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

Displacement addressing has variations like relative addressing, base register addressing, and index register addressing. The differences lie primarily in the type of register being used and their corresponding applications.

Detailed Explanation

Displacement addressing can be categorized into three main types: relative addressing, which uses the program counter for the calculation; base register addressing, which uses a special base register; and indexed addressing, which utilizes a general-purpose register. Each of these types serves different purposes but relies on the same concept of combining the two address fields to determine the effective memory address.

Examples & Analogies

Think of different types of GPS devices: a standard device gives you directions based on your current location (relative addressing), a sophisticated one might take your home address as a base from which to navigate (base register), and a specialized device might be tailored for athletes, measuring distances using a pedometer (indexed addressing). Each method is efficient for its particular context, much like how the various displacement addressing types are optimized for different computing needs.

Key Concepts

  • Immediate Addressing: Directly embeds the operand in the instruction.

  • Direct Addressing: References a specific memory location for the operand.

  • Indirect Addressing: Retrieves the operand's address from another memory location.

  • Displacement Addressing: Combines a constant and register value to compute an effective address.

  • Relative Addressing: Displacement using the Program Counter to determine operand location.

  • Base Register Addressing: Uses a base register for effective address calculation.

  • Indexed Addressing: Uses a general register as an index for memory accesses.

Examples & Applications

LOAD IMMEDIATE 20: Loads value 20 directly into the accumulator.

LOAD DIRECT 3: Loads value from memory location 3 into the accumulator.

LOAD INDIRECT 5: Loads value from memory location pointed to by the contents of memory location 5.

LOAD REGISTER DIRECT 2: Loads value from register 2 into the accumulator.

LOAD INDIRECT 2: Uses the contents of register 2 to access a specific memory location.

Memory Aids

Interactive tools to help you remember key concepts

🎵

Rhymes

To load it immediate, just follow my lead,; The value is here; just a direct speed.

📖

Stories

Imagine you're sending a letter to a friend's house (direct addressing) vs sending it to their mailbox where they can pick it up (indirect addressing).

🧠

Memory Tools

DAI - Directly Addressing Index: Direct Addressing to location, Indirect from pointer.

🎯

Acronyms

DICE - Displacement Index Combination for Effective addressing.

Flash Cards

Glossary

Immediate Addressing

An addressing mode where the operand value is directly specified in the instruction.

Direct Addressing

An addressing mode that specifies the exact memory location of the operand in the instruction.

Indirect Addressing

An addressing mode where the instruction specifies a memory location that contains the address of the operand.

Displacement Addressing

Combines a constant address with a register content to find the effective address of the operand.

Relative Addressing

Uses the program counter to determine the address of the operand based on the current instruction location.

Base Register Addressing

An addressing mode that uses a base register to calculate the effective address with an added displacement.

Indexed Addressing

An addressing mode using a general-purpose register as an index, typically used for accessing array elements.

Reference links

Supplementary resources to enhance your learning experience.