Theory - 3 | Experiment No. 4: Introduction to 8086 Microprocessor - Architecture and Addressing Modes | Microcontroller Lab
K12 Students

Academics

AI-Powered learning for Grades 8–12, aligned with major Indian and international curricula.

Professionals

Professional Courses

Industry-relevant training in Business, Technology, and Design to help professionals and graduates upskill for real-world careers.

Games

Interactive Games

Fun, engaging games to boost memory, math fluency, typing speed, and English skills—perfect for learners of all ages.

Interactive Audio Lesson

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

Introduction to 8086 Microprocessor

Unlock Audio Lesson

Signup and Enroll to the course for listening the Audio Lesson

0:00
Teacher
Teacher

Welcome to our session on the 8086 microprocessor! Can anyone tell me about the significance of moving from an 8-bit to a 16-bit architecture?

Student 1
Student 1

I think it allows for handling larger amounts of data at once!

Teacher
Teacher

Exactly! The 8086 can process data in 16-bit chunks, improving performance significantly. It can also access up to 1 Megabyte of memory. Does anyone remember how this is achieved?

Student 2
Student 2

Through a 20-bit address bus, right?

Teacher
Teacher

Correct! This is key for its memory access capabilities. Also, the architecture includes the Bus Interface Unit and the Execution Unit, which we will discuss further. We'll use the acronym BIEU to remember these components. B for Bus Interface, I for Interface, E for Execution, U for Unit.

Student 3
Student 3

That’s a great way to remember! What does each unit do?

Teacher
Teacher

Excellent question! The BIU handles all bus operations while the EU performs the instruction execution. Keep this in mind as we proceed.

Teacher
Teacher

In summary, the 8086's architecture provides significant advancements over its predecessors, such as a wider data bus and a greater memory capacity. Let's move on to its segmented memory organization.

Segmented Memory Organization

Unlock Audio Lesson

Signup and Enroll to the course for listening the Audio Lesson

0:00
Teacher
Teacher

Now, let's dive into segmented memory organization. Who can explain why segmentation is useful?

Student 4
Student 4

It helps in organizing memory efficiently and can also enhance protection!

Teacher
Teacher

Absolutely! Each segment can be a maximum of 64KB, and it begins at a memory location that is divisible by 16. Who remembers how to calculate a physical address?

Student 1
Student 1

Isn’t the formula Physical Address equals Segment Multiplied by 10H plus Offset?

Teacher
Teacher

Yes, great recall! This allows us to use a 16-bit segment register to reference a larger memory space. For instance, if the Data Segment register holds 2000H, and the offset is 0050H, the physical address would be 20050H. Remember to visualize the process as combining two parts to create a complete address.

Teacher
Teacher

In summary, segmented memory allows for better structuring and improved utilization of the memory space. Understanding this concept is fundamental for effective programming.

Addressing Modes

Unlock Audio Lesson

Signup and Enroll to the course for listening the Audio Lesson

0:00
Teacher
Teacher

Let’s explore addressing modes! Can anyone define what an addressing mode is?

Student 2
Student 2

It’s the way in which the effective address of an operand is calculated.

Teacher
Teacher

Exactly! The 8086 supports several addressing modes, and understanding them is key for efficient programming. Can someone name an addressing mode and explain it?

Student 3
Student 3

Immediate addressing mode uses values directly within the instruction. For example, MOV AX, 5000H.

Teacher
Teacher

Well done! Immediate addressing is very direct. Now, what about register addressing mode?

Student 4
Student 4

That mode uses data stored in the internal registers, like MOV AX, BX.

Teacher
Teacher

Correct again! The transferring of data between registers is much faster. Let’s think about one more mode: can anyone explain the concept of direct addressing mode?

Student 1
Student 1

That mode specifies the effective address directly in the instruction, like MOV AX, [1234H].

Teacher
Teacher

Very good! Remember, the choice of addressing mode affects how efficiently we access data in our programs. Let’s wrap it all up by reviewing what we’ve learned today.

Introduction & Overview

Read a summary of the section's main ideas. Choose from Basic, Medium, or Detailed.

Quick Overview

This section provides an introduction to the 8086 microprocessor architecture, detailing its segmented memory organization and various addressing modes used for data access.

Standard

The theory section elaborates on the Intel 8086 microprocessor, highlighting its 16-bit architecture, segmented memory organization, and the main functional units, including the Bus Interface Unit and Execution Unit. It explains how to calculate physical addresses and introduces several addressing modes, each crucial for effective assembly programming.

Detailed

Detailed Summary

The Intel 8086 microprocessor marked a significant evolution in microprocessor design, transitioning from the 8-bit 8085 to a robust 16-bit architecture. One of its main features is the 20-bit address bus, which allows it to access up to 1 Megabyte (1 MB) of memory. This section covers the following key aspects:

1. 8086 Architecture

The architecture is divided into two units:
- Bus Interface Unit (BIU): This unit manages all external bus operations, fetching instructions, reading/writing data, and handling I/O operations. Key components include segment registers (CS, DS, SS, ES), the Instruction Pointer (IP), an Address Generation Unit, and an instruction queue to improve efficiency via pipelining.
- Execution Unit (EU): This unit is responsible for decoding and executing instructions, containing eight general-purpose registers (AX, BX, CX, DX, SP, BP, SI, DI), a Flags register for condition and control flags, and an Arithmetic Logic Unit (ALU) for performing calculations.

2. Segmented Memory Organization

The 8086 uses a segmented memory model where 1 MB of memory is divided into logical segments, each capable of being 64 KB in size. The concept of segmentation aids in improving memory management and accessing larger memory spaces using 16-bit registers. The calculation of physical addresses combines the value of a segment register with an offset, allowing for efficient data access.

3. Addressing Modes

Various addressing modes available in the 8086 allow programmers to access data flexibly. These include:
- Immediate Addressing: Operand is part of the instruction itself.
- Register Addressing: Operand is located in a register.
- Direct Addressing: Effective address is specified in the instruction.
- Register Indirect Addressing: Effective address is held in a pointer or index register.
- Based and Indexed Addressing: Combines base and index registers to calculate effective addresses.
- String Addressing: Utilizes specific instructions for handling strings embedded in the CPU architecture.

This thorough understanding of the 8086 architecture and its addressing modes is foundational for programming and utilizing this advanced microprocessor effectively.

Audio Book

Dive deep into the subject with an immersive audiobook experience.

Introduction to the 8086 Microprocessor

Unlock Audio Book

Signup and Enroll to the course for listening the Audio Book

The Intel 8086 is a 16-bit microprocessor, a significant advancement over the 8-bit 8085. It features a 20-bit address bus, enabling it to access 220 or 1 Megabyte (1 MB) of memory. Its 16-bit data bus allows it to fetch or store 16 bits of data at a time. A key architectural innovation in the 8086 is its segmented memory.

Detailed Explanation

The 8086 microprocessor represents a leap in technology from its predecessor, the 8085, by enhancing data processing capability from 8 bits to 16 bits. This means it can handle more data at once, leading to better performance. With a 20-bit address bus, it can access a total of 1 Megabyte memory, which is substantial for the time. This allows it to manage larger sets of data effectively. Additionally, the microprocessor introduces segmented memory, which organizes memory into different sections, making it more efficient in accessing and managing data.

Examples & Analogies

Think of the 8086 microprocessor as a modern library compared to an old, compact bookshelf. The bookshelf (8085) can only hold a limited number of books (data), while the library (8086) can store much more, with different sections (segmented memory) for easy organization and retrieval, allowing readers (programs) to find what they need quickly and efficiently.

8086 Architecture and Register Organization

Unlock Audio Book

Signup and Enroll to the course for listening the Audio Book

The 8086 architecture is divided into two main units, enabling pipelining for improved performance:

  • Bus Interface Unit (BIU): Handles all external bus operations like fetching instructions, reading/writing data, and I/O operations. It contains:
  • Segment Registers: CS (Code Segment), DS (Data Segment), SS (Stack Segment), ES (Extra Segment). These are 16-bit registers used for memory segmentation.
  • Instruction Pointer (IP): A 16-bit register holding the offset address of the next instruction within the current code segment.
  • Address Generation Unit: Responsible for calculating the 20-bit physical memory address.
  • Instruction Queue: A 6-byte FIFO (First-In, First-Out) buffer that pre-fetches instructions, enabling pipelining.
  • Execution Unit (EU): Decodes and executes instructions. It contains:
  • General Purpose Registers: Eight 16-bit registers (AX, BX, CX, DX, SP, BP, SI, DI). These can also be accessed as 8-bit registers (e.g., AH/AL for AX).
  • Flags Register: A 16-bit register containing various condition flags (e.g., Zero, Carry, Sign, Overflow, Parity) and control flags (e.g., Direction, Interrupt, Trap).
  • Arithmetic Logic Unit (ALU): Performs arithmetic and logical operations.

Detailed Explanation

The architecture of the 8086 microprocessor is split into two primary units: the Bus Interface Unit (BIU) and the Execution Unit (EU). The BIU manages how the processor interacts with memory and input/output devices, while the EU is responsible for carrying out the instructions provided by the programs. The BIU utilizes segment registers to facilitate memory segmentation, making memory management more tractable. The Instruction Pointer (IP) helps the processor determine where the next instruction for execution resides in memory. The EU includes general-purpose registers that are used for various calculations and operations, as well as the ALU, which handles the actual arithmetic and logic computations.

Examples & Analogies

Imagine the 8086 microprocessor as a company with a division for planning (BIU) and a division for execution (EU). The planning division is like the BIU, setting up meetings, scheduling tasks, and keeping everything organized in a shared database, while the execution division (EU) is where the real work happens, implementing decisions made by the planning division. Each team (register) has its own role, ensuring everything runs smoothly, just like in a well-oiled machine.

Segmented Memory Organization

Unlock Audio Book

Signup and Enroll to the course for listening the Audio Book

The 8086's 1 MB physical memory is divided into logical segments. Each segment can be up to 64 KB in size and starts at an address divisible by 16 (a paragraph boundary). This segmentation allows for flexible memory management, protection, and allows a 16-bit register to access a larger memory space.

Physical Address Calculation:
A 20-bit physical address is generated by combining a 16-bit segment address (from a segment register) and a 16-bit offset address (from a general-purpose register, pointer, or index register, or immediate value). The formula for physical address calculation is:

Physical Address = (Segment Register Value * 10H) + Offset Address
Or, equivalently:
Physical Address = (Segment Register Value << 4) + Offset Address.

Detailed Explanation

The 8086 microprocessor organizes its memory into segments, which are logical divisions of memory addressing. Each segment can house up to 64 KB of data and starts at a memory address that is a multiple of 16—this helps keep the memory organized and efficient. To retrieve data from memory, the 8086 generates a 20-bit physical address by combining the segment address from a segment register and an offset. This calculation uses a formula that effectively shifts the segment address to provide a broader address range, allowing the processor to tap into more memory than would normally be possible with just a 16-bit number.

Examples & Analogies

Imagine a large office building where each floor (segment) can hold multiple rooms (data). Each room has a unique number that denotes its position on the floor. To find a specific room, you would first need to get to the correct floor and then count down the rooms. In computing, the segment points you to the right area of memory (the floor), and the offset tells you which byte of data to access within that segment (the room). This way, the system can efficiently manage space and access the required data without confusion.

Addressing Modes

Unlock Audio Book

Signup and Enroll to the course for listening the Audio Book

Addressing modes define how the effective address of an operand is calculated. The 8086 supports various addressing modes, providing flexibility and efficiency in accessing data... Immediate Addressing Mode:
- The operand is a part of the instruction itself. No memory access is required for the operand.
- Syntax: MOV AX, 5000H (Loads the value 5000H directly into AX).
- Use Case: Loading constant values into registers.

Register Addressing Mode:
- The operand is located in one of the 8086's internal registers.
- Syntax: MOV AX, BX (Copies the content of BX into AX).
- Use Case: Fast data transfer between registers.

Detailed Explanation

The 8086 microprocessor employs various addressing modes, allowing it to effectively calculate the location of data in memory. Each addressing mode serves a specific use case, enhancing the flexibility of programming and data management. For instance, in Immediate Addressing Mode, the data is included directly in the instruction, which allows for quick loading of constants. In Register Addressing Mode, the data resides in the processor's registers, making data transfer quick and efficient. These modes are essential for executing instructions and performing operations on data efficiently.

Examples & Analogies

Consider each addressing mode like different ways of sending a package to a friend. Immediate Addressing is like handing a gift directly to your friend (the value is included with the instruction). Register Addressing is similar to putting the package in your own bag and then handing the bag to your friend (the data is stored temporarily in your bag (register)). Each method provides a unique advantage depending on the situation, allowing for efficient package delivery (data access) in different scenarios.

Definitions & Key Concepts

Learn essential terms and foundational ideas that form the basis of the topic.

Key Concepts

  • Segment Registers: Four primary registers (CS, DS, SS, ES) that assist in managing memory segments.

  • Instruction Pointer (IP): A register that holds the offset address of the next instruction to be executed.

  • Physical Address Calculation: Combining segment and offset to access memory.

  • Addressing Modes: Different methods to access data in memory, impacting program efficiency.

Examples & Real-Life Applications

See how the concepts apply in real-world scenarios to understand their practical implications.

Examples

  • An example of immediate addressing mode: MOV AX, 5000H directly loads the value 5000H into AX without needing memory access.

  • When using direct addressing mode, executing MOV AX, [1234H] retrieves data directly from memory at the address determined by DS:1234H.

Memory Aids

Use mnemonics, acronyms, or visual cues to help remember key information more easily.

🎵 Rhymes Time

  • The 8086 is a chip so cool, it breaks down memory into segments to rule.

📖 Fascinating Stories

  • Once upon a time in a microprocessor land, the 8086 came along. It danced along the data highway, allowing 1MB of memory to expand, making programmers sing a happy song!

🧠 Other Memory Gems

  • Remember the acronym BIEU: B for Bus Interface, I for Interface, E for Execution, U for Unit.

🎯 Super Acronyms

PSA

  • Physical Segment Addressing means how we calculate memory addresses using segments and offsets.

Flash Cards

Review key concepts with flashcards.

Glossary of Terms

Review the Definitions for terms.

  • Term: 8086 Microprocessor

    Definition:

    A 16-bit microprocessor developed by Intel, known for its segmented memory architecture.

  • Term: Bus Interface Unit (BIU)

    Definition:

    Part of the 8086 architecture responsible for managing all bus operations.

  • Term: Execution Unit (EU)

    Definition:

    Component of the 8086 that decodes and executes instructions.

  • Term: Segmented Memory

    Definition:

    Memory organization in the 8086 that divides memory into segments for better management.

  • Term: Addressing Modes

    Definition:

    Techniques used to specify the effective address of an operand.

  • Term: Physical Address

    Definition:

    The actual address in memory calculated from a segment and offset.