8086 Microprocessor Overview

Table of Contents

Principal Features

Architecture

Basic architecture for 8086 Microprocessor

Bus Interface Unit

Execution Unit

Registers for General Purpose

Stack Pointer Register

Instruction set

The microprocessor is a computer with all of its CPU contained in one integrated circuit. A microprocessor’s most important characteristics are its widths, its clock rate, and its instruction set.

Major Features8086 The microprocessor is 16-bit. It is capable of carrying the most data out of 8086. It can however handle 8-bit information. There are 20 address line for 8086. The processor’s access to memory is determined by the address lines. It is 220=1Mb in this instance.

Operating frequency = 5 Mhz

It features 14 16-bit registers.

ArchitectureBasic architecture for 8086 MicroprocessorThe 8086 Microprocessor’s internal architecture is basically divided into two parts:

Bus Interface Unit (BIU)

Execution Component (EC)

Bus Interface UnitIt controls all addresses and data on buses used by the Execution Unit. It sends addresses and fetches instructions from memory. BIU also generates the physical 20-bit address.

The BIU includes a variety of functional groups and parts like:

Instruction Queue. It transfers 6 instructions bytes from the memory to the processor’s queue. It is a FIFO-type buffer.

The following flow of operations is possible: Memory -> Queue-> EU

It simply retrieves the instruction from a queue when the EU can accept it. It’s much quicker than sending the address to system memory, then fetching it. Queue uses the pipelining concept.

Segmentation. Segmentation refers to the breaking down of memory into smaller pieces.

BIU contains four 16-bit registers, namely:

Code Segment: Used to address a memory area where executable programs are stored.

Data Segment DS (Data Segment): Contains most program data. It contains the offset address.

Stack Segment – (SS): A section in memory that stores addresses, data and executes subprograms.

Extra Segment (ES),: This data segment can hold additional destination data. Each register can store 64kb of data.

Instruction Pointer: It’s located below the segment register. The 16-bit address for the next codebyte within the code segment is held by the IP.

Execution UnitIt performs arithmetic calculations and logic calculations. It tells BIU from where to retrieve instructions. It decodes the instructions then executes them.

BIU also includes the EU.

Arithmetic & Logic Unit – Performs all arithmetic as well as logical calculations.

Control Unit: Performs internal operations.

Registers are also part of the EU.

General Purpose Registry: Used to temporarily store 8-bit data Ii.

Flag Register: This is a flip-flop that indicates any condition occurred during the execution of an instruction.

There are two types: one is Control Flags, the other is Conditional Flags

General Purpose Registers8 general purpose registers:

AX Register: This register stores operands that are used in arithmetic calculations.

BX Registry: Base register holding the starting address to memory region.

CX Register is used to store loop counters for loop instruction.

DX Register: Includes i/o port addresses for i/o instruction.

Stack Pointer RegisterThe 16-bit offset between the start of a segment and the location in which a word was last stored on the stack is called the stack pointer register (SP). The stack’s most recent address is stored at the top.

Other registers like SI, DI or BP can also be used temporarily for storage purposes.

Flag Register:

Conditional flags: They indicate the occurrence or a combination of mathematical operations. These are:

Carry Flag: Indicates that carry has been generated in MSB.

Auxiliary flag (AF): Converts binary to BCD.

Parity Flag – (PF): This indicates parity in the result.

Zero Flag: If the operation results in zero, it is considered high.

Sign Flag, (SF): This indicates the sign magnitude.

Overflow Flag: OF indicates that the machine’s maximum capacity is exceeded.

Control Flags: These are the flags that can be used to reset or set the processor’s operations according to specific instructions provided by the user. These are:

Trap Flag or TF: This allows you to execute just one instruction at a given time

Interrupt Flag: Allows/prohibits interrupting a program

Direction Flag: This is used for string operations.

Instruction SetThe 8086 microprocessor is capable of executing 8 types instruction. These are:

Guidelines for Moving Data. These instructions allow you to transfer data from one operand to another. These instructions are listed below.

Move

To copy the word or bit from the source to destination.

PPUSH- To place a word at end of the stack.

POP is a way to send a message from the top to the designated location.

PUSHA- This is the key to putting all registers on the stack.

Arithmetic instructions. These instructions can be used for arithmetic operations (subtraction, multiplication or division).

ADD Used to multiply the given byte by byte/word by word.

SUB is used to subtract byte/word/word.

MUL – Useful for multiplying unsigned byte bybyte/word to word.

DIV – Useful for dividing unsigned words by bytes or unsigned double words by word.

Instructions for bit manipulation. These instructions are used for operations that require data bits to be performed, i.e. operations like logical, shift, etc.

NOT – To invert every bit of a word or byte.

AND This can be used to add each bit into a byte/word with another bit.

OR – Used for multiplying each bit in a bit/word with another bit/byte.

Exclusive-OR Operation Using XOR to compare each bit of a bit/word with the corresponding one in another byte/word.

Provide instructions in writing. String Instructions.

REP – This is used to continue the instruction until CX. 0.

REPE/REPZ is a method to keep repeating the instructions until CX = 0.

REPNE/REPNZ- Use this to repeatedly follow the instructions until CX = 0.

MOVS/MOVSB/MOVSW: Used to move a byte/word between strings.

COMS/COMPSB/COMPSW- Useful for comparing two strings bytes/words.

Author

  • davidwong

    David Wong is a 29-year-old educator and blogger who focuses on helping students learn in creative and interesting ways. He has a background in teaching and has been blogging since 2006. David's work has been featured on a variety of websites, including Lifehack, Dumb Little Man, and The Huffington Post.