0% found this document useful (0 votes)
2 views

Introduction To The 8086 Microprocessor

Uploaded by

abhigyankumar268
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Introduction To The 8086 Microprocessor

Uploaded by

abhigyankumar268
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 8

Introduction to the

8086 Microprocessor
This document delves into the intricacies of the Intel 8086 microprocessor, a foundational component in
the history of personal computing. We will explore its architecture, register system, memory
organization, instruction set, and key functionalities. The 8086 laid the groundwork for the x86
architecture that powers countless devices today, and understanding its fundamentals is crucial for
anyone interested in computer engineering and systems programming.
Architecture
Overview
The 8086 is a 16-bit microprocessor, meaning it processes data in units of 16 bits. It operates on a
segmented memory architecture, where physical memory is divided into 64 KB segments. This allows the
8086 to address a larger memory space than a purely linear address scheme. It employs a Harvard
architecture that allows for simultaneous fetching of instructions and data, improving performance.

The 8086 consists of two main units: the Execution Unit (EU) and the Bus Interface Unit (BIU). The EU is
responsible for executing instructions, while the BIU manages communication with the system bus and
fetches data and instructions. This separation of tasks enhances efficiency.
Registers and Their
Functions
The 8086 utilizes a set of general-purpose registers, segment registers, and special-purpose registers to
manage data and program execution.

General-purpose registers (AX, BX, CX, DX): Used for arithmetic and logical operations, data storage, and
addressing.
Segment registers (CS, DS, SS, ES): Used to define segments in memory. They hold the base
addresses of memory segments.
Special-purpose registers (IP, SP, BP, FLAGS): Used for program execution control, stack operations, and
status flags.
Register Description

AX Accumulator - Used in arithmetic and logical


operations.

BX Base Register - Used for addressing and


data manipulation.

CX Count Register - Used for loop control and


string operations.

DX Data Register - Used for data transfer and I/O


operations.
Memory
Organization
The 8086 employs a segmented memory organization, where the entire memory space is divided into 64 KB
segments. Each segment is a contiguous block of memory identified by its base address. The 8086 can
access up to 1 MB of physical memory through a combination of segment registers and offset addresses.

The 8086 uses a combination of segment registers (CS, DS, SS, ES) and offset addresses to access data
within memory. Each segment register holds the base address of a segment, and the offset address
specifies the location within that segment. The effective address is calculated by adding the segment base
address multiplied by 16 to the offset address.
Instruction Set and Addressing
Modes
The 8086 instruction set consists of a comprehensive set of instructions for data manipulation, program
control, and input/output operations.

Data transfer instructions: MOV, PUSH, POP,


XCHG Arithmetic instructions: ADD, SUB,
MUL, DIV Logical instructions: AND, OR, XOR,
NOT
Jump instructions: JMP, JE, JNE, JZ,
JNZ Loop instructions: LOOP, LOOPZ,
LOOPNZ String instructions: MOVS,
CMPS, SCAS

The 8086 supports several addressing


modes, including:

1. Register addressing: Operands are


located in registers.
2. Immediate addressing: Operands are
constants specified within the
instruction.
3. Direct addressing: Operands are
located at a fixed memory address.
Interrupt
Handling
Interrupts are hardware or software events that interrupt the normal flow of program execution. The 8086
uses an interrupt vector table to handle interrupts. This table stores the addresses of interrupt service
routines (ISRs) that are called when an interrupt occurs.

The 8086 has several types of interrupts, including:

Hardware interrupts: Triggered by external events, such as a timer, keyboard,


or mouse. Software interrupts: Triggered by instructions, such as INT.

When an interrupt occurs, the 8086 saves the current instruction pointer (IP) and flags in the stack and
then jumps to the address specified in the interrupt vector table.
Input/Output
Operations
The 8086 supports several methods for interacting with external
devices, collectively known as input/output (I/O) operations. These
methods include programmed I/O, interrupt-driven I/O, and direct
memory access (DMA).

Programmed I/O involves the CPU directly controlling I/O devices


through I/O ports. The CPU sends commands and reads data from I/O
devices using instructions like IN and OUT. Interrupt-driven I/O allows
I/O devices to interrupt the CPU when they are ready to send or
receive data. DMA allows data transfer between memory and I/O
devices without CPU intervention, increasing efficiency.
Applications and Use
Cases
The 8086 was a revolutionary processor that paved the way for the widespread adoption of personal
computers. It found applications in a wide range of systems, including early PCs, embedded systems, and
industrial controllers.

The 8086's key applications included:

Personal computers: The 8086 was the cornerstone of IBM's original personal computer, the IBM PC/XT,
which set the stage for the modern PC era.
Embedded systems: Its flexibility and efficiency made it suitable for embedded systems such as
industrial control systems, robotics, and automotive applications.
Data acquisition and control: Its ability to interact with external devices made it well-suited for data
acquisition systems and control applications.

The 8086 legacy lives on in the x86 architecture, which is used in billions of devices today. It represents a
significant step forward in microprocessor technology and a foundational component in the development of
modern computing.

You might also like