0% found this document useful (0 votes)
167 views10 pages

Part I: Introduction To Intel 8086/8088 Microprocessor

The document provides an introduction and overview of the Intel 8086/8088 microprocessor. It discusses the history and evolution of Intel microprocessors leading up to the 8086/8088. It then describes the fundamental components of the 8086/8088 including the execution unit, arithmetic logic unit, internal storage, and bus interface unit. It also discusses the system bus and other supporting hardware used in IBM PCs, including how the 8086/8088 communicates with memory and I/O devices via the system bus. Finally, it covers the basic storage elements of bits, bytes, words used by the 8086/8088 microprocessor and its memory.

Uploaded by

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

Part I: Introduction To Intel 8086/8088 Microprocessor

The document provides an introduction and overview of the Intel 8086/8088 microprocessor. It discusses the history and evolution of Intel microprocessors leading up to the 8086/8088. It then describes the fundamental components of the 8086/8088 including the execution unit, arithmetic logic unit, internal storage, and bus interface unit. It also discusses the system bus and other supporting hardware used in IBM PCs, including how the 8086/8088 communicates with memory and I/O devices via the system bus. Finally, it covers the basic storage elements of bits, bytes, words used by the 8086/8088 microprocessor and its memory.

Uploaded by

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

Part I: Introduction to Intel 8086/8088 Microprocessor

1
Microprocessor is a processor (cpu) that is contained on a single silicon chip.

1 A Historical Background of Microprocessors (Intel)

 Intel 4004: the world’s first microprocessor developed by Intel Corporation in 1971.
- 4-bit cpu
- 4096 4-bit memory locations
- 45 instructions
- Speed: 50k 1ps (instructions per second)
 Other Intel Microprocessors
1) 8008 (later in 1971): and extended 8-bit version of 4004, memory size: 16k bytes, 48
instructions, 50k 1ps.
2) 8080 (1973): 8-bit cpu, 64k byte memory, 500k 1ps.
3) 8088/8086 (1977,1978): 16bit cpu, 1M byte memory, 2.5M 1ps.
4) 80186: a similar version of 8086, it has more instructions.
5) 80286 (1983): an extended 16M-byte memory of 8086, 8MHz cpu, 4M 1ps.
6) 80386 (1986): fully 32-bit cpu, up to 4G byte memory, hardware memory
management and memory assignment. Pipelined instruction execution, 33M 1ps.
7) 80486 (DX, SX) (1989): an improvement of 80386, 50M 1ps, with built-in math
processor (for floating-point and extended-precision number operations)
8) Pentium (1993): P5 or 80586, 60-133M2, 16k cache, 4G memory, 2 integer units.
9) Pentium with MMX
10) Pentium Pro (1995): P6, 150-166 M2, 16k cache, 156k-second level cache, three
integer units.
11) Pentium 4
12) …

2 8086/8088 Microprocessor Fundamentals


2.1 Introduction
The 8086/8088 refers to microprocessors developed by Intel Corporation, which was used by
IBM personal computers (XT, 1981). 8088 and 8086 are functionally identical (8-bit cpu) except

2
that 8088 uses 8 dada lines in its data bus while 8086 uses 16 data lines in its data bus.

2.2 Fundamental components of 8086/8088


The 8086/8088 microprocessor consists of four functional units.
1) Execution unit (EU): decodes and executes machine instructions.
2) Arithmetic and logic unit (ALU): performs math and logical operations on command by
the EU.
3) Internal storage (sometime called registers): is used for internal data storage.
4) Bus interface unit (BIU): handles all communications with the I/O via the system bus and
maintains instruction queue.

2.3 Execution Unit (EU)


The Execution Unit controls the activity within the processor. It is responsible for retrieving
binary machine-language instructions from the Instruction Queue maintained by the Bus
Interface Unit deciphering them, and seeing to it that the correct steps are performed within the
processor to carry out each instruction. If an instruction requires the use of data that is stored
internally, in a register, then the Execution Unit retrieves the data from the correct register; if the
instruction requires external data, from memory perhaps, then the EU requests the data from the
Bus Interface Unit.

Whenever an instruction calls for an arithmetic or logical function, the EU passes the data to
Arithmetic and Logic Unit together with a command telling the ALU what to do with the data.
The EU then accepts the resulting data from the ALU and sees to it that it is stored into correct
location (register or memory), as designated by the instruction.

2.4 Arithmetic and Logic Unit (ALU)


The ALU contains circuitry that is capable to perform arithmetic (+, -, *, /) operations and logic
operations (AND, OR, NOT, XOR) operations. As the ALU completes a requested operation, it
also controls individual bits of Flags register (sometimes called the program status register). It
sets (1) or clear (0) the correct bits to reflect specific characteristics of the result of the operation,
such as whether the result was zero or non-zero, whether it was positive or negative, or if the

3
result is too big to be stored in a byte or word. The EU checks the status of those Flag bits
whenever executing conditional jump instructions.

2.5 Bus Interface Unit (BIU)


BIU is a circuitry to response memory access and communicate with I/O devices. In most
microprocessors, these functions are performed by EU, and some times the EU has to be idle due
to different speed and serial execution.
In the design of the 8086/8088, Intel introduces BIU in order to avoid idle time and hold an
instruction queue such that instructions can be executed in a pipeline fashion.

2.6 System Bus and Other Support Hardware Devices in IBM PC


2.6.1 In order to build a complete computer, there are a number of other hardware devices (chips)
in the IBM PC. Some of them are:

Memory
Up to one megabyte of system memory, including that which is on the system board, the
video adapter card, and any add-on memory boards.
Timer chip
Generates an external interrupt every fifty-five milliseconds to allow the PC to keep track
of real time (system data and time).
8259 Interrupt Controller chip
Processes hardware (external) interrupts.
6845 CRT Controller
Located on the video adapter card. Controls the video signals to the monitor.
NEC D765 or Intel 8272 Floppy Disk Controller
Located on the disk adapter card. Acts as an interface between the processor and the disk
drive.
Inter 8237 Direct Memory Access (DMA) Controller
Located on the system board. Used by the disk controller to transfer data between disk
and memory.

4
8250 Asynchronous Communications Element or Universal Asynchronous
Receiver/Transmitter (UART)
Located on each serial communications adapter card (COM1, COM2, etc.).

2.6.2 System Bus: is a series of conductive traces of signal lines on the system board, which is
used to communicate between 8086/8088 (cpu) and all other devices.

The system bus is made up of three functional parts:


1) Data bus
2) Address bus
3) Control bus

8086/8088 Memory I/O port1 I/O portn


BIU

System bus

To read from memory, for example, the Bus Interface Unit puts the correct memory address onto
the Address Bus and puts the command to read from memory onto the Control Bus. All devices
connected to the bus see this address and command simultaneously, but only the memory-control
circuitry respond to it. The memory-control circuitry is then responsible for decoding the
address, retrieving the data from the appropriate memory chips, and placing the data onto the
Data Bus for retrieval by the BIU.

To write to memory, the BIU puts the memory address onto the Address Bus, the byte of data
onto the Data Bus, and a command to write data onto memory of the control bus. The memory-
control circuitry decodes the command and the address, retrieves the data from the Data Bus, and
stores it into the correct memory chips. All other circuitry simply ignores the command.

5
Communication with the many special-purpose microprocessors attached to the System Bus is
accomplished through I/O ports. I/O ports are used for the transfer of data between the
8086/8088 processor and the other support hardware within the system. The In and OUT
instructions tell the processor to input or output data through the I/O ports.

When executing an IN instruction, the BIU puts the I/O port address onto the Address Bus and
puts the command to input data onto the Control Bus. The circuitry on some peripheral device
attacked to the bus recognizes the red command and decodes the I/O port as the address of some
register within the peripheral device. It then retrieves the data from the register and places it onto
the Data Bus from which it is retrieved by the BIU and fed to the Execution Unit within the
processor.

To execute an OUT instruction, the BIU puts the command to output data onto the Control Bus,
and I/O address onto the Address Bus, and the data to be output onto the Data Bus. The circuitry
of a peripheral device is then responsible for recognizing the output command and the I/O
address and for retrieving the data from the data bus.

3 Memory and Internal Storage


3.1 Storage Elements
 Bits: The smallest storage element on any computer is the bit, which can have a value of
0 or 1.
 Nibbles: A nibble is a sequence of 4 bits.

e.g.
1 1 0 1

bit 3 bit 0

 Bytes: A byte is a sequence of 8 bits.

6
e.g.
1 0 1 0 1 1 0 1

bit 7 bit 0

 Words: in 8086/8088, a word consists of 16 bits that can be viewed as:


1) A horizontal sequence of 16 bits or.
e.g.
1 0 1 0 1 1 0 1 1 0 1 0 1 1 0 1

bit 15 bit 0

2) A vertical sequence of 2 bytes e.g..

1 0 1 0 1 1 0 1

bit 15 bit 8

1 0 1 0 1 1 0 1

bit 7 bit 0
Note: in memory, the least significant bye (bits 0-7) is stored in lower numbered memory
location, and the most significant byte (bits 8-15) is stored in the next higher
numbered location.

 Double words: Two words represents a double word which is viewed as


1) A horizontal sequence of 32 bits or
2) A vertical sequence of 2 words or
3) A vertical sequence of 4 bytes

7
Note: in memory, its 0-7 bits would come first; bits 8-15 would be in the next higher
numbered byte and so on.

 Quadword: A quadword is 2 double words, hence 4 words or 8 bytes.


 Tenbytes: A tenbyte is a sequence of 10 bytes.

3.2 Memory
Computer memory consists of an ordered sequence of storage units (8-bits called bytes), each
with its own address.
 8086/8088’s memory is bytes-addressable, which means that each byte has its own
address, e.g. if A is the address of a word (16 bits), then A is actually the address of the
first byte (bits 0-7) of the word, A+1 is the address of the second byte (bits 8-15) of the
word, and A+2 is the address of the next word.
 Memory address space: (MAS): 220= 1,048,576= 1M(bytes) (address space: 0—220- 1,
i.e.00000-fffff: in hexadecimal)
 Map of the memory address space (MAS)
The whole MAS is organized by a 216 * 24 matrix: there are 216 paragraphs, each of which
with 16 (24) bytes.

Paragraph numbers:

0000 00000 00001 0000E 0000F


… … …
0001 00010 00011 00C1E 0001F
… … …
0002
00020 00021 0002E 0002F
… … …
. . . .
. . . .
. . . .
FFFE FFFE0 FFFE1 FFFEE FFFEF
FFFF FFFF0 FFFF1 FFFFE FFFFF

… address space (MAS) of the 8086/8088.


Figure 1: Map of the memory

8
 Hexadecimal number system
The hexadecimal number system uses sixteen characters to represent umbers:0 through 9
and A through F; A is worth ten, B is worth eleven, …, and F is fifteen. In assembly
program, the hexadecimal will be indicated by the letter h.

Example: 7Fh is the number 127(7*16+15*1) and its equivalent binary number is
01111111b.

The conversion between binary and hexadecimal is simple. To covert from hexadecimal
to binary: just represent each hexadecimal digit by four binary digits: Example: 74Dh =
011101001101b

To convert from binary to hexadecimal: break the binary number into groups of four
digits, and convert each group into one hexadecimal digit:
Example: 101001001110b = A4Fh

 Character representation
Each character is represented by a byte or two hexadecimal digits according to ASCII
code.

For example: ASCII code Letter

41h A
42h B
. .
. .
5Ah Z
61h a
62h b
. .

9
. .
7Ah z
30h 0
. .
. .
39h 9

In assembly the ASCII representation of character can be defined by enclosing the


characters in paired single (‘) or double (“) quotes.
Example: ‘A’ ‘e’ “9”
Note ‘A’ = 41h, ‘a’ = 61h and “9” = 39h

 Segment-relative addresses.
1) There are 16 bits in a segment register. The content of the segment register
represents the paragraph number of the paragraph at which it begins.
2) All memory address are formed by segment-relative format which is computed as
follows:

Absolute address=(segment register)*16 + offset (16-bit) denoted by segment


register: where the offset can be content of a register (16-bit) and a 16-bit value.

e.g.
CS: 1110000000000000
CS*16: 11100000000000000000 (Beginning of code segment)
IP: 0000000000001101 (offset)
--------------------------------------------------------------------------
CS : IP = 11100000000000001101 (Actual location (absolute
address) in memory)

where CS is the code segment register, IP is the instruction pointer register

be executed. The absolute address of the next instruction = CS : IP.

10

You might also like