Load Direct (30.1.2) - 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

LOAD DIRECT

LOAD DIRECT

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.

LOAD IMMEDIATE and Direct Addressing

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Today, we're discussing how to load data into registers. Let's start with LOAD IMMEDIATE. Can anyone tell me what happens during this process?

Student 1
Student 1

Isn't that when we directly load a value into the accumulator from the instruction?

Teacher
Teacher Instructor

Exactly! For example, `LOAD IMMEDIATE 20` puts the value `20` right into the accumulator. Now, what about direct addressing?

Student 2
Student 2

In direct addressing, you access a specific memory location and load its data, right?

Teacher
Teacher Instructor

Correct! For example, `LOAD ACCUMULATOR 3` loads whatever is in memory location `3` directly into the accumulator. Remember the mnemonic 'Direct to Memory' to help you recall this concept.

Student 3
Student 3

So, if memory location 3 has `20`, it just loads that?

Teacher
Teacher Instructor

That's right! Can anyone summarize what we've covered about LOAD IMMEDIATE and LOAD DIRECT?

Student 4
Student 4

Load Immediate is when we load a constant directly, and LOAD DIRECT is used to retrieve data from a specified memory location.

Teacher
Teacher Instructor

Perfect! Great job, everyone!

LOAD INDIRECT Addressing

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Let's move on to LOAD INDIRECT. Can someone explain what happens here?

Student 1
Student 1

In LOAD INDIRECT, we first get a value from one memory location, and then use that value to access another memory location.

Teacher
Teacher Instructor

Exactly! For instance, if we execute `LOAD INDIRECT 5`, we check memory location `5` first. What if memory location `5` contains the value `1`?

Student 2
Student 2

Then we would load the data from memory location `1` next!

Teacher
Teacher Instructor

Yes! If memory `1` held `49`, then `49` is loaded into the accumulator. Remember the phrase 'Indirect Access' to keep this in mind!

Student 3
Student 3

This is like a two-step process to get the actual data!

Teacher
Teacher Instructor

Well summarized! Let’s keep building on this concept.

Register Addressing Modes

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Now, we will cover loading data from registers, starting with LOAD REGISTER DIRECT and then REGISTER INDIRECT. Any thoughts?

Student 4
Student 4

In LOAD REGISTER DIRECT, we load data from a register into the accumulator, right?

Teacher
Teacher Instructor

Exactly! For example, `LOAD REGISTER DIRECT 2` would load data from register `2`. What does `REGISTER INDIRECT 2` do?

Student 1
Student 1

It uses the value in register `2` as an address to load data from memory!

Teacher
Teacher Instructor

Correct! So, if register `2` has the value `3`, you'd load the contents from memory location `3`?

Student 3
Student 3

So, essentially, it's still indirectly loading data just like before?

Teacher
Teacher Instructor

Yes! It's similar, but using register values. Always remember: 'Registers can point to Memory'.

Student 2
Student 2

That will help me remember!

Teacher
Teacher Instructor

Great! Let’s summarize this session thoroughly.

Displacement Addressing

🔒 Unlock Audio Lesson

Sign up and enroll to listen to this audio lesson

0:00
--:--
Teacher
Teacher Instructor

Our next topic is displacement addressing. What can anyone tell me about this mode?

Student 2
Student 2

Doesn't it use both a memory location and a value in a register to find the effective address?

Teacher
Teacher Instructor

Yes! For example, if you have a register containing `2` and you're referencing memory location `3`, you'd add them together to get `5`.

Student 4
Student 4

So, you access memory location `5` for the actual data?

Teacher
Teacher Instructor

Exactly! Displacement addressing is useful for loops and accessing array elements. Remember 'Add to Access!' to recall this.

Student 1
Student 1

That makes sense! It helps in iterating through memory locations.

Teacher
Teacher Instructor

Good understanding! Now, let’s briefly cover the types of addressing within displacement.

Introduction & Overview

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

Quick Overview

This section covers various addressing modes, showcasing how data is loaded into registers and accumulators using immediate, direct, indirect, register indirect, and displacement modes.

Standard

In this section, we explore several addressing modes including LOAD IMMEDIATE, LOAD DIRECT, LOAD INDIRECT, and displacement addressing. Each mode has distinct approaches for accessing data in memory, with examples highlighting their practical applications in programming and computer architecture.

Detailed

LOAD DIRECT

In this section, we delve into various methods of loading data into registers within a computer architecture framework. The key concepts include:

  1. LOAD IMMEDIATE (LDI): The instruction LOAD IMMEDIATE 20 brings the value 20 directly from the instruction into the accumulator, avoiding memory references.
  2. LOAD DIRECT: This mode (e.g., LOAD ACCUMULATOR 3) accesses data directly from memory location 3. Here, if the memory contains 20, that value gets loaded into the accumulator.
  3. LOAD INDIRECT: The instruction LOAD INDIRECT 5 first references memory location 5, retrieves the value there (which could be an address), and then loads that value from the address it points to into the accumulator. For example, if memory 5 holds 1, and memory 1 holds 49, then 49 is loaded into the accumulator.
  4. REGISTER ADDRESSING: The functions like LOAD REGISTER DIRECT 2 use the content of another register as the source for loading data into the accumulator. Similarly, REGISTER INDIRECT 2 uses the value in register 2 to find an address in memory from which to load the data.
  5. DISPLACEMENT ADDRESSING: This advanced mode combines a fixed address and a value from a register to form an effective address for data retrieval. It's particularly useful for accessing consecutive memory locations during loops or when working with arrays. Types include relative addressing, base register addressing, and indexed addressing, each with unique applications integrated into programming logic. The section closes with concrete examples to clearly illustrate how these modes function within real-world contexts, emphasizing their role in optimized memory access and data manipulation.

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.

Introduction to Load Instructions

Chapter 1 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

So, now let us go to some concrete examples that is let us take a very simple memory which has location from 0 to 7 and the content are 2, 49, 5, 20, 12 like this way. And let us assume that you have a register whose content is 3.

Detailed Explanation

This chunk introduces the concept of memory locations and the example scenario. A memory has locations numbered from 0 to 7, with specific values stored in each location. The text suggests a hypothetical situation in which we also have a register with a value of 3. This setup provides the context for further discussions about load instructions and memory addressing.

Examples & Analogies

Imagine your classroom where each student has a desk (memory location) numbered from 0 to 7. Each desk holds a specific book (content). The teacher (register) has a specific book in hand (value 3), ready to replace or compare it with what's on the students' desks.

LOAD IMMEDIATE Instruction

Chapter 2 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

So, let us write an instruction LOAD IMMEDIATE 20 that is may be the opcode can be something like LDI. Generally here I have discussed in a more linguistic manner, but we always have a mnemonic for that so it may be LDI that is load immediate or you can put some times a person may call it load indirect also. So, this is LOAD IMMEDIATE 20.

Detailed Explanation

The LOAD IMMEDIATE instruction allows a value to be loaded directly into the accumulator without referring to any memory location. Here, the value 20 is embedded in the instruction itself, which is represented with an opcode (like LDI). This means the CPU can access and load this value immediately into the accumulator.

Examples & Analogies

Think of LOAD IMMEDIATE as a teacher directly handing a book (value 20) to a student (the accumulator) without looking at the desks (memory), where the books are usually stored.

LOAD DIRECT Instruction

Chapter 3 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

LOAD DIRECT 3 is a direct addressing mode. Direct addressing modes means this 3 actually refer to the memory location 3 where the data is present in the memory location 3 so, direct. So, load accumulator 3; that means, to the accumulator you load the data which is present in memory location 3 that is 20.

Detailed Explanation

In direct addressing mode, specifying 'LOAD DIRECT 3' means to retrieve the value stored in memory location 3 and load it into the accumulator. In our example, memory location 3 contains the value 20, which will be transferred to the accumulator.

Examples & Analogies

Imagine the teacher (the CPU) checking desk 3 directly and taking the book (value 20) from there to give it to the student (the accumulator) instead of picking it from a bookshelf (indirectly referencing).

LOAD INDIRECT Instruction

Chapter 4 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

LOAD INDIRECT 5. Now this is interesting load indirect 5 means accumulator will be loaded with something which is present in memory location 5 memory location 5 has value 1 now it’s an indirect. So, 1 is not the data the data is actually present in memory location one. So, what is memory location 1 present; that is 49.

Detailed Explanation

The LOAD INDIRECT instruction means to read from memory indirectly. When we specify 'LOAD INDIRECT 5', we first check the content of memory location 5, which holds the address 1. Then, we go to memory location 1 to find the actual data, which is 49, and load this value into the accumulator.

Examples & Analogies

This is like telling a student (the accumulator) to look for a book not directly on their desk (desk 5), but to first go check another student's desk (memory location 1) where the actual book (value 49) is located. The student retrieves this book and brings it back.

LOAD REGISTER DIRECT Instruction

Chapter 5 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

LOAD REGISTER DIRECT 2. In this case it is referring to register it is saying load register direct 2 that is you load to the accumulator what is available in register number 2.

Detailed Explanation

The LOAD REGISTER DIRECT instruction allows the CPU to load the value found in a specific register (in this case, register 2) directly into the accumulator. If register 2 contains the value 3, this means we are transferring the value of the register to the accumulator.

Examples & Analogies

Imagine the teacher getting a book (value in register 2) from another student's desk (register) and directly giving it to the student (accumulator) without looking anywhere else.

Register Indirect Addressing

Chapter 6 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

But in case of register indirect we first refer to register 2, register 2 has the value 3; 3 is not the data over here we have to look at the memory location 3 is there where the content of 20 is there the 20 will go to the accumulator.

Detailed Explanation

In register indirect addressing mode, we use the value in a register (in this case, register 2 which equals 3) to determine a memory location. Therefore, we check memory location 3 and load its content (which is 20) into the accumulator.

Examples & Analogies

Think of this as asking the teacher for the desk number (register 2 has value 3), and then the teacher goes directly to that desk (memory location 3) to fetch the correct book (value 20) for the student (the accumulator).

Displacement Addressing Mode Overview

Chapter 7 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

Wherever you talk about displacing displacement basically you will find that there are two components of addresses which will be used together to get the effective one. So, what is the displacement mode it says it has 2 address field one contains an explicit address of main memory say that is a it has some explicit value and the other address field refers to a register whose content something say R.

Detailed Explanation

Displacement addressing mode combines two address components: one is a fixed address in memory and the other refers to a register containing an offset. When we add these two together, we get the effective memory address where the desired data is located. This method is versatile and useful in various situations, including loops and accessing arrays.

Examples & Analogies

Imagine you have a map (the memory address) and instructions that tell you to add a few blocks from your current location (the register value). By combining the two, you can find the exact spot you need to reach.

Advantages of Displacement Addressing

Chapter 8 of 8

🔒 Unlock Audio Chapter

Sign up and enroll to access the full audio experience

0:00
--:--

Chapter Content

So, there are lot of advantages of this means compared to the other one there are lot of applicability of this one first is if you think of loops then actually it will go say I want to access 10 memory locations one after the another.

Detailed Explanation

Displacement addressing is particularly beneficial in programming loops because it allows for the efficient access of consecutive memory locations. By simply adjusting the value in the register, it can incrementally access multiple addresses without needing specific instructions for each one.

Examples & Analogies

This is akin to a librarian using a catalog to find books – instead of searching for each book individually, they can move down the row of bookshelves (displacement) using the catalog (register) to access each book (memory location) in succession.

Key Concepts

  • LOAD IMMEDIATE: Instruction to place an immediate value directly into an accumulator.

  • LOAD DIRECT: Command that retrieves data from a specified memory location directly.

  • LOAD INDIRECT: Accesses data via an address obtained from a designated memory location.

  • REGISTER INDIRECT: Uses a register content to determine a memory location for data retrieval.

  • Displacement Addressing: Combines values from a register and a memory address to generate an effective address.

Examples & Applications

LOAD IMMEDIATE 20 results in the value 20 being loaded into the accumulator.

LOAD DIRECT 3 retrieves the data from memory location 3, say 20, and loads it into the accumulator.

LOAD INDIRECT 5 first gets a value from memory location 5. If it’s 1, then it loads data from memory location 1 into the accumulator.

Displacement Addressing can add a fixed address to the value of a register to access differing memory locations dynamically.

Memory Aids

Interactive tools to help you remember key concepts

🎵

Rhymes

Load it now or load it slow, immediate comes, as you know!

📖

Stories

Once upon a time in Spotlandia, LOAD IMMEDIATE was a hero who directly brought treasures (values) into the castle (accumulator) without any delay.

🧠

Memory Tools

D.I.R.E: Direct Immediate Register Indirect Engagement to remember the four types of addressing.

🎯

Acronyms

D.I.D. for Direct, Immediate, and Displacement addressing.

Flash Cards

Glossary

LOAD IMMEDIATE

An instruction that loads a constant value directly into an accumulator.

LOAD DIRECT

An instruction that loads data from a specified memory location directly into an accumulator.

LOAD INDIRECT

An instruction that first reads an address from memory before retrieving the actual data from the referenced location.

REGISTER INDIRECT

An addressing mode where a register is used to point to a memory location for data retrieval.

Displacement Addressing

An addressing mode that combines values from a register and a memory location to calculate an effective address.

Relative Addressing

A displacement mode that uses the program counter as a base for calculating addresses.

Base Register Addressing

An addressing mode that uses a base register to calculate effective addresses in combination with memory addresses.

Indexed Addressing

An addressing mode in which a register, typically a general-purpose register, is used to modify a memory address.

Reference links

Supplementary resources to enhance your learning experience.