Microprocessors
Microprocessors
Link:
h ps://mybillbook.in/store/maanyasmgbpublica ons N. DHANANJAYA
(OR)
https://flostore.page.link/BYcH N. DHANANJAYA
Maanyas M.G.B Publica ons
Hyderabad Cell: 9290 429 549 & Tirupa . Cell: 9000 3050 79
Maanya’s
M.G.B Publications
This is the Reference copy for the LECTURERS to conduct
ONLINE Classes. - Maanyas MGB Publications
AP
Microprocessors
For D.E.C.E II Year (4th Semester)
N. Dhananjaya * D. V Ramana
T. Muralikrishna * P. Srinivas
M.G.B Publications
Hyderabad & Tirupati. Cell: 9290429549 & 9000305079
ii
Microprocessors
Second Edition: Nov – 2018
Acknowledgement
First of all, I would like to thank God, the almighty of giving me skills to write
this book.
I am very thankful to Smt. N.DEEPA for giving me an opportunity to write
this book.
I specially grateful to my mom, Smt. T. Geetha, My dad Late. Sri. T. Subba
reddy, My Uncle Sri. C. Yerrama Reddy, Sri. K. Chandra Mouli Reddy, Sri. K.
Bhaskar Reddy, Sri. Dr. K. Kumara Swamy Reddy & My brother T. Jagadeesh
and the rest of my family, who supported and encouraged me in spite of all the time
it took me away from them.
I express my sincere gratitude to Sri. Dr. N. Sudhakar Reddy, Sri.
Dr. D. Srinivasulu Reddy, Sri. Dr. C. Chandrasekhar, Smt. V. Madhurima, Smt.
N. Suguna and Sri. P. Suresh Babu for their keen interest and encouragement in
bringing out this book.
Finally, I wish to thank Sri. N. Giri Babu and the entire team of for bringing
out this book in a short time with quality printing.
Any suggestions for the improvement of this book and inclusion of new topics
will be acknowledged and appreciated.
Author - T. Murali Krishna
.
iv
Table of Contents
TIME SCHEDULE
DEDICATED
TO
My Daughter MAANYA
Author
N. Dhananjaya
1
Overview of 8085
OBJECTIVES
Fig. 1.3(a)
Fig. 1.3(b)
2. De-multiplexing of Address and Data Bus
The de-multiplexing of address/data bus (separation of address and data) is done
by using 8-bit D latch IC (74LS373) along with ALE signal. The De-multiplexing
process is illustrated in fig.1.3.
Fig. 1.4(a)
1.4.2. Special Function Registers
a) Accumulator (A)
The accumulator is a special purpose 8-bit register and it is a part of ALU because it
often serves as one of the inputs to the ALU.
It is extensively used in arithmetic, logical and store operations, as well as in the
input and output operations.
Accumulator acts as the destination for results of all arithmetic and logical
operations that are performed by the ALU.
Fig. 1.4(b)
The conditions of the flags are tested through software instructions.
If the flip-flop for a particular flag is set, it indicates 1. When it is reset it indicates 0.
Carry Flag Carry flag is set if carry results out of bit D7 during arithmetic addition
or if borrow needed by bit D7 during subtraction or comparison
operations. Otherwise it is reset.
Parity Flag The parity flag is set if the result of an arithmetic or logical operation
contains even number of 1s. It is reset if the result contains odd
number of 1s.
Auxiliary In an arithmetic operation when a carry (occurs from lower nibble to
Carry upper nibble) is generated by digit D3 and passed to digit D4, the
auxiliary carry flag is set. Otherwise it is reset.
Note: This flag is used internally for BCD operations. It is not available
for programmer.
Fig. 1.5(a)
Fig. 1.5(b)
Note: The microprocessor is works at 3MHz of clock frequency. The crystal has to
generate 6MHz of clock frequency because the frequency is divided by two
internally.
d) CLK (output): Pin number 37 is used for output the clock signal. The
processor supply system clock to the other devices through this pin. The
frequency is half of the crystal frequency.
1 1 Opcode fetch
1 0 Read
0 1 Write
0 0 Halt
Note: When S1 and S0 is combined with IO/ M we get status of all the machine cycles
operations performed by 8085 as shown in Table.
Table : 8085 machine cycle status and control signals
Machine cycle status
IO/ M S1 S0 Status Control signal used
0 1 1 OPCODE RD 0
fetch
0 1 0 Memory read RD 0
0 0 1 Memory WR 0
write
1 1 0 I/O read RD 0
1 0 1 I/O write WR 0
1 1 1 Interrupt INTA 0
acknowledge
Z 0 0 Halt
Z X X Hold RD, WR Z and INTA 1
Z X X Reset
Note: Z-Tristate (High impedance ) condition
X- Unspecified condition
Group 5: Serial IO Signal
SID (input): Serial input data line. This line is used in serial data communication.
Through this pin, the serial data is received by the processor. The data on this line is
loaded into accumulator bit 7. Whenever a RIM instruction is executed.
SOD (output): Serial output data line. This line is used in serial data
communication. Through this pin, the serial data is transmitted by the processor.
The output SOD is set or reset as specified by the SIM instruction.
Maanya’s M.G.B Publications Microprocessors
1‐16 Overview of 8085
Group 6: Externally initiated Signals
a. Interrupt signals TRAP,RST7.5, RST6.5,
RST5.5, INTR and INTA ,
b. DMA signals HOLD and HLDA,
c. Reset signals Re set IN , Reset OUT, and
Ready.
a) Interrupt signals:
The 8085 has 5 hardware interrupt signals that can be used to interrupt a
program execution.
Interrupt Description
TRAP (Input) This is non mask able interrupt and has highest priority.
Note:
1. The INTR and INTA signals are basically used to expand interrupt system to
more than 5.
2. The order of priorities of interrupts is as follows.
TRAP Highest priority
RST 7.5
RST 6.5
RST 5.5
INTR Lowest priority
Additional Information
Pin diagram of 8085
8085 microprocessor was introduced by INTEL in the year 1976. It is an 8-
bit general purpose microprocessor. It has forty pins and requires +5V single
power supply. Previously it was designed with NMOS technology and present
it is designed with HMOS technology. The fig.1.5 (a) shows the pin diagram of
8085.
Pin No / Type Pin Name Function
1,2 X1, X 2 A tuned circuit like LC, RC or Crystal is connected
(Input) (Crystal or RC between These two pins to provide timing signal to
network processor.
connection)
Maanya’s M.G.B Publications Microprocessors
1‐18 Overview of 8085
3 Reset OUT It can be used to reset other peripherals connected in
(Output) (Peripherals the system.
reset)
4 SOD This is an output signal which enables the
(Output) (Serial Output transmission of serial data bit by bit to the external
Data) device.
5 SID This input signal is used to accept serial data bit by
(Input) (Serial Input bit from the external device.
Data)
6 TRAP This is an active high level, edge triggered, non
(Input) (Non maskable maskable, highest priority interrupt.
interrupt request)
7 RST 7.5 These are active high, edge (RST 7.5) or level (RST 6.5
(Input) (Restart interrupt and RST 5.5) triggered maskable interrupts.
7.5) These are also called vectored interrupts.
8 RST 6.5
(Input) (Restart interrupt
6.5)
9 RST 5.5
(Input) (Restart interrupt
5.5)
10 INTR INTR is an active high, level triggered general
(Input) (Interrupt purpose interrupt.
request) Among interrupts it has lowest priority and non
vectored interrupt.
11 INTA It is an output signal from microprocessor to
(Output) (Interrupt acknowledge the interrupt.
acknowledge)
12 to 19 AD0 AD7 These 8 pins are used to carry the lower order 8-bit
(Bidirectional (Multiplexed address. These are bidirectional.
tristate) Address/data
bus)
20 VSS It is ground terminal of 5volts supply
(Ground)
21 to 28 A8 A15 These pins are used to carry the higher order 8-
(Output, (Address bus) addresss bits (A15-A8) of 16- bit address. These are
tristate) unidirectional.
29,33 S0 S1 These pins are status pins. These pins indicate the
(Output) (Status signals) status of processor. They indicates which machine
Fig.1.5 (a)
Fig. 1.6
The operand or data indicated in the instruction is in the forms such as:
o 8-bit or 16-bit data/address,
o Internal registers or a register and
o Memory location.
In some cases, the operand or address/data may be absent, in the instruction.
Example: Let us consider an instruction LDA 8100 H. In this instruction LDA is
op-code and 8100 H (16-bit address) is an operand.
Note: LDA is load the accumulator direct. The meaning of this instruction is load
the contents of a memory location whose address is 8100 H into the accumulator.
Instruction
Comment
Op-code Operand
ADI 17H The operand may be 8-bit data
LDA 8100H The operand may be 16-bit address
MOV A,B The operand may be general
purpose registers
INR M The operand may be memory
location
CMA --- In this instruction operand is not
given, it is implied.
Fig. 1.7(a)
During the first clock cycle, the microprocessor unit (MPU) places the address of
the instruction on the address bus.
During the 2nd and 3rd clock cycle the MPU receives the instruction (op-code) from
the memory.
2. Execute Cycle (EC)
The total time required to decode the instruction fetched and execute it is known as
execute cycle.
For simple instructions, one clock cycle is enough for decoding and execution.
A typical execute cycle is shown in the fig. 1.7(b).
The MPU takes one clock cycle for decoding. After Decoding, the MPU executes the
instruction. It takes two clock cycles for execution.
Fig. 1.7(b)
Note:
Note that if an instruction contains data or operand and address which are still in
the memory, the processor has to perform one or two memory read operations to
get the desired data.
After the execution, it may be necessary that the write operation. For this memory
write operation is performed.
So the execution of an instruction may have one or two memory READ or WRITE
or both the cycles.
Hence the execute cycle depends on the addressing mode and size of the
instruction.
Fig. 1.7
Additional Information
Machine Cycle and T-state
1. Machine Cycle
The time required to complete the operation of accessing either memory or I/O is
known as machine cycle.
In the 8085, the machine cycle may consist of 3 to 6 T-states.
In a machine cycle one basic operation such as op-code fetch, memory read,
memory write, I/O read or I/O write is performed.
An instruction cycle consists of 1 to 5 machine cycles.
2. T-State
The time required to complete a sub step in a machine cycle is known as T-state.
So one cycle of the system clock is referred to as a T-state.
Additional Information
Instructions of 8085
An instruction is a group of binary bits (binary pattern) to perform a specific
task/work/function. The group of all instructions, called instruction set, determines
entire range of operations that are performed by the microprocessor. The 8085 has 74
important instructions. The instruction set of the 8085 can be classified based on their
size and their function.
1-byte
Examples for 1-byte instructions are MOV B, A (content of accumulator copied
into register B), XRA B (the content of the register B exclusive ORed with content of the
register A (accumulator).
Maanya’s M.G.B Publications Microprocessors
Overview of 8085 1‐25
b) 2-Byte Instructions
In a 2-byte instruction the 1st byte specifies the op-code and the 2nd byte specifies
8-bit data or 8-bit address (I/O port address).
Op-code Operand
1-byte 2-byte
This instruction occupies two memory locations. Examples for 2-byte
instructions are ADI A, 44H (the 8-bit data 44H is added with data in the register A),
MVI B, 99H (The 8-bit data 99H is transferred into the register B). All the immediate
instructions are two byte instructions. IN 23H (transfers the data present at the 8-bit
address 23H(I/O Port address) into the accumulator)
c) 3-byte Instructions
The total size of the instruction is 3-bytes. In a 3-byte instruction first byte
specifies the op-code and remaining two bytes specifies the 16-bit address. This
instruction occupies three memory locations.
Op-code Operand Operand
1.8 Give the syntax and function of STA, LDA, IN, OUT
instructions.
1.8.1. Execution of STA instruction
STA means store accumulator directly.
The general format of this instruction is STA addr16.
This instruction stores the content of the accumulator in the memory location whose
address is specified in the instruction.
STA addr16 : (addr16) (A )
It is a 3-byte instruction.
It requires 4 machine cycles (or) 13 T-states to execute.
After execution of this instruction, no flags are affected.
Example 1:
Instruction STA 2050 H
Operation (2050H) (A)
Description The content of accumulator is moved to memory location whose address
is 2050H.
Example 2:
Instruction STA C200H
Example 3:
Address Mnemonics Op-code
41FF H STA 526A H 32 H
4200 H 6A H
4201 H 52 H
Execution:
o STA means Store Accumulator -The content of the accumulator is stored in the
specified address (526A H).
o Opcode Fetch machine cycle: The opcode of the STA instruction is said to be 32 H.
It is fetched from the memory 41FF H.
Maanya’s M.G.B Publications Microprocessors
1‐28 Overview of 8085
o Memory Read Machine Cycle: The lower order memory address (6AH) is read
from the memory 4200H.
o Memory Read Machine Cycle: Read the higher order memory address (52H) is read
from the memory 4201H.
o Memory Write Machine Cycle: The combination of both the addresses are
considered and the content from accumulator is written in 526A H.
o Assume the memory address for the instruction and let the content of accumulator
is C7 H. So, C7 H from accumulator is now stored in 526A H.
1.8.2. Execution of LDA instruction
LDA means Load the accumulator directly.
The general format of this instruction is LDA addr16.
The data present in the memory location, specified by a 16-bit address in the
instruction is copied to the accumulator.
LDA addr16 : (A) (addr16)
It is a 3-byte instruction.
After execution of this instruction, no flags are affected.
It requires 4 machine cycles (or) 13 T-states to execute.
Example 1:
Instruction LDA 205DH
Operation (A) (205DH)
Description The content of memory location whose address is 2050H is moved to
accumulator.
Example 2:
Instruction LDA C100H
Example 3:
Address Mnemonics Op-code
8000 H LDA 8500 H 3A H
8001 H 00 H
8002 H 85 H
Execution:
o LDA means Load Accumulator. The content of the memory location whose address
is 8500 H is copied into the accumulator.
o Opcode Fetch machine cycle: The opcode of the LDA instruction is said to be 3A H.
It is fetched from the memory 8000 H.
o Memory Read Machine Cycle: The lower order memory address (00H) is read from
the memory 8001H.
o Memory Read Machine Cycle: Read the higher order memory address (85H) is read
from the memory 8002H.
o Memory Write Machine Cycle: The combination of both the addresses are
considered and the content from memory location 8500 H is written into
accumulator.
o Assume the memory address for the instruction and let the content of accumulator
is C7 H. So, C7 H from accumulator is now stored in 526A H.
o Let the content of memory location (8500H) is 82 H. So, 82 H from memory location
is now stored in A.
1.8.3. Execution of IN instruction
The general format of this instruction is IN addr8.
The data available at the port, whose address is mentioned in the instruction, is
copied to the accumulator.
IN addr8 : (A ) (8 bit port address)
Note:
(1) Contents of A 0 A 7 A8 A15 i.e. same in both IN
and OUT instruction.
(2) The differentiation between IN/OUT is made by
RD and WR .
The LDA 3330H loads the A register with data from memory location. The address
of memory location is 3330H.
To perform this, 8085 requires 4 machine cycles.
1. OPCODE Fetch: The program counter places the address on the higher order and
the lower order address bus. This cycle will fetch OPCODE from program memory
using PC. The PC is then incremented by 1 to point to the next byte.
The data available in the accumulator is copied to the out port, whose address is
20 H. Assume the data available in the accumulator before execution is 37 H.
The function of this instruction can be understood from the following example.
Example 1: Draw the Timing diagram for STA 3090H
Solution:
Address Mnemonics Hex code
3054 H STA 3090 H 32 H
3055 H 90 H
3056 H 30 H
Let A = 99 H (data)
OBJECTIVES
Upon completion of the chapter the student should be able to Understand
the working of Transmission Lines
80286
80386
4th Generation 32-bit
80486
Pentium - I
Pentium - II
5th Generation 32-bit
Pentium - III
Pentium - IV
Fig. 2.3
Advantage: The processor which uses sequential processing requires less
hardware and system cost is very low.
Disadvantages: It requires more time, so the processing speeds slow; the
processor efficiency which uses sequential processing is low.
2.3.2 Parallel Processing
Parallel processing is also called parallel computing.
The simultaneous use of more than one CPU (processor) to execute a program is
known as parallel processing (see fig. 2.2).
Parallel processing used to provide simultaneous data processing tasks for
increasing computational speed of computer system.
Ideally, parallel processing makes programs run faster.
Fig. 2.2
Advantage: It improves cost performance ratio of the system.
Disadvantage: The amount of hardware increases with parallel processing and
with it the cost of system increases.
2.3.3 Pipelining
Pipelining is the advanced feature of parallel processing.
Definition: The process of fetching the next instruction while current instruction
is under execution is called pipelining.
Pipelining has become possible due to the use of queue.
It is useful to speed up program execution.
A pipeline allows multiple instructions to be processed at the same time.
When CPU contains more than one functional units and each functional unit
performs a part of the task identically, this technique is called pipelining.
The fetch unit fetches instruction from memory and execution unit performs
execution of instruction simultaneously as shown in fig. 2.3
Fig. 2.3
Maanya’s M.G.B Publications Microprocessors
2‐8 Architecture of 8086
Advantage: The computing speed is very high than the first two methods.
*Note: The pipeline method is implemented in the most advanced microprocessors like
Intel Pentium, Pentium Pro etc.
Fig. 2.4
The complete 1 MB memory divided into 16 segments and each of 64 KB of size.
Each segment is assigned a base address that identifies the starting address of the
segment.
Fig. 2.6
This can be divided into two independent functional units. These are:
o Bus interface Unit (BIU)
o Execution Unit (EU)
BIU communicates with the devices outside the microprocessor and fetches the
instructions from memory and stores them in instruction queue register.
EU is responsible for executing the instructions fetched by BIU.
*Note:
1. These two functional units (BIU & EU) can work simultaneously to increase
system speed and hence the throughput.
2. Throughput is a measure of number of instructions executed per unit time.
Functional Units of 8086 Architecture:
Basically the 8086 µp (microprocessor) consists of two functional units. These are:
1. Bus Interface Unit (BIU)
2. Execution Unit (EU).
Maanya’s M.G.B Publications Microprocessors
Architecture of 8086 2‐11
Fig. 2.12
2.12.1. Pointer Registers
The 8086 processor has two pointer registers. These are:
1. Stack Pointer (SP)
2. Base Pointer (BP
1. Stack Pointer (SP)
It is a 16-bit register.
Stack pointer (SP) is used with stack segment (SS) to access the stack.
To generate 20-bit physical address the contents of the SS register are shifted four
bits left (multiply by 10H) and the contents of SP are added to the shifted result.
If the contents of SP are 9F20H and SS are 4000H then the physical address is
calculated as follows.
After shifting four bits left, SS = 40000H.
Now SS = 40000H
+ SP = 9F20H
PhysicalAddress = 49F20 H
Fig. 2.14
2.14.1. Conditional Flags
These flags are set according to some results of arithmetic operation.
1. Carry Flag (CF)
In case of addition this flag is set if there is a carry out of the MSB.
The carry flag also serves as a borrow flag for subtraction. In case of subtraction
it is set when borrow is needed.
*Note: It can be set by executing instruction STC (set carry flag) and can be cleared by
executing CLC (clear carry flag) instruction.
2. Parity Flag (PF)
It is set to 1 (PF=1) if result of operation contains an even number of 1’s otherwise
parity flag is zero.
a) SF (Signal Flag) = 1
b) ZF (Zero Flag) = 0
c) PF (Parity Flag) = 1
d) CF (Carry Flag) = 0
e) AF (Auxiliary Carry Flag)= 0
f) OF (Over flow Flag) = 1
Fig. 2.15
2.15.1. Pins are Common for both Modes
The signals common for minimum and maximum mode are listed in table.
Table 2.1: COMMON SIGNALS
Name Description / Function Type
AD15 – AD0 Address/Data Bidirectional, Tristate
A19/S6 to A16/S3 Address/Status Output, Tristate
BHE /S7 Bus High Enable /Status Output, Tristate
Fig. 2.15
Fig. 2.15
2.15.4. Pin Description of 8086 p
Pin number Symbol Description
1 & 20 GND Used as the grounding purpose.
2-16 & 39 AD15 –AD0 Address Data bus: These are the time
multiplexed memory.
17 NMI Non Maskable Interrupt:
Maanya’s M.G.B Publications Microprocessors
2‐24 Architecture of 8086
NMI is the non-maskable interrupt input.
It is positive edge triggered interrupt (A
transition from low to high initiate the
interrupt).
It is type 2 interrupt.
It is vectored interrupt.
NMI has higher priority than INTR.
18 INTR Interrupt Request:
INTR is the maskable interrupt input.
It is a level triggered interrupt. (INTR must
be held high until it is recognized to generate
an interrupt signal).
It is non-vectored interrupt.
It can be enabled or disabled.
It can be enable by STI instruction and
disabled by using the instruction CLI.
19 CLK Clock input:
The clock input provides the basic timing for
the processor and the bus control.
The 8086 does not have on-chip clock
generation circuit.
Hence 8284 clock generator chip is used to
generate the required clock.
The CLK output of 8284 is connected to the
8086 CLK pin.
Note :
1. A clock signal is asymmetrical square wave
with the 33%duty cycle.
2. The 8284 also provides the RESET and
READY signals to 8086.
3. The range of frequency for different 8086
versions is from 5MHz to 10MHz.
21 RESET Reset terminates the processor activity.
When the processor is reset, CS contains
FFFFH and IP contains 0000H.
Therefore the physical address (PA) is
Maanya’s M.G.B Publications Microprocessors
Architecture of 8086 2‐25
FFFF0H.
Now the processor will start fetching
instruction from 20-bit physical address
FFFF0H.
*Note: After reset, DS, SS, ES and flags are
cleared and queue is emptied.
22 READY It is used by the microprocessor to identify
whether a peripheral is ready to transfer data
or not.
A slow peripheral may be connected to the
microprocessor through this pin.
If this pin is high the peripheral is ready.
23 TEST TEST is an input signal for microprocessor.
This signal is used for testing of
microprocessor.
When this pin goes low the microprocessor
continues execution else, processor remains
in idle state.
This pin is used for synchronizing the 8086
with external hardware such as a
coprocessor.
24 INTA Interrupt Acknowledge:
This is related to the non-vectored interrupt
INTR.
When this pin goes low, the processor
accepted the interrupt request by the
peripheral.
25 ALE Address Latch Enable: It is used to de-
multiplex the address and data lines using
external latches.
24 & 25 QS1 & QS0 Queue Status: The processor provides
information about the status of the code pre-
fetch queue on these lines.
QS1 QS0 Operation
0 0 No operation.
26, 27 and 28 S0 , S1 and S2 These are the status lines which reflect the type
of operation.
S2 S1 S0 Indication
0 0 0 Interrupt Acknowledge
0 0 1 Read I/O Port
0 1 0 Write I/O Port
0 1 1 Halt
1 0 0 Instruction fetch
1 0 1 Read memory
1 1 0 Write memory
1 1 1 Inactive
Fig. 2.16
Trans-receivers are the bidirectional buffers they are also called as data amplifiers;
these are used to separate the valid data from the multiplexed address/data bus.
Trans-receivers are controlled by the DEN DEN & DT / R .
Memory devices are used for the Monitor storage, Program storage.
Usually EPROMS are used for monitor storage and RAMs are used for program
storage.
I/O devices are used for communication with the processor as well as some
special purpose peripherals.
The clock generator 8284 is used to generate the clock, reset, and ready signals for
the processor.
8086 µp has 20 address lines and 16 data lines so 8086 CPU requires three octal
address latches and two octal data buffers.
2.16.2. Maximum Mode Operation of 8086 µp system
This is a Multi-processor mode in which a co-processor is used along with an
8086.
Definition: The arrangement of microprocessor based system in which we are
using multi microprocessors is called as maximum mode.
Fig. 2.16
The bus controller chip has input lines S 2 , S1 , S 0 and CLK which are driven by the
CPU.
The basic function of the bus controller chip 8288 is to derive control signals like
ALE, DEN, DT / R , MRDC, MWTC, IORC, & IOWC .
Maanya’s M.G.B Publications Microprocessors
2‐32 Architecture of 8086
IORC, IOWC are I/O read command and I/O write commands signals
respectively.
The MRDC, MWTC are memory read command and memory write commands
signals respectively.
2.16.3. Differences between Minimum Mode & Maximum Mode
Sl.No Minimum mode Maximum mode
1. The arrangement of The arrangement of microprocessor based
microprocessor based system in system in which we are using multi
which we are using only one microprocessors is called as maximum
microprocessor is called as mode.
minimum mode.
2. MN/ MX pin is connected to logic MN/ MX pin is connected to ground.
1.
3. In this mode, all control signals Control signals for memory and I/O are
for memory and I/O are generated by an external BUS Controller
generated by the microprocessor (8288).
chip itself.
4. In this all the instructions of 8086 In this all the instructions of 8086 can be
can be utilized except the utilized including the instruction LOCK .
instruction LOCK .
5. This mode is not used when This mode can be used for multiplexed
multiplexed operations are to be operations.
performed.
6. The pins from 24 to 31 in this The pins from 24 to 31 in this mode are:
mode are: INTA , ALE, DEN , QS1 , QS 2 , S0 , S1 , S 2 , LOCK , RQ / GT1 and
DT/ R , M/ IO , WR , HLDA and RQ / GT0
HOLD
Fig. 2.17
The internal registers of 8086processor are 16-bit (4 hex digit) wide, whereas the 1-
MByte main memory locations require 20 bit (5 hex digit) wide physical address
(PA).
So before performing any operation related to memory the 20-bit physical address
is generated.
2.17.2 Generation of Physical Address
Fig. 2.17
Example 2: Find the physical address of the first and last locations as a segment. The
segment base is 2000H.
Ans:
1) To physical address of the first location:
Let CS = 2000 H and IP = 0000 H (first location)
CS: IP 2000 H: 0000 H.
Physical address of the first location is,
= (2000 H 10 H) + 0000 H= 20000H
2) To physical address of the last location:
Let CS = 2000 H and IP = FFFF H (last location)
CS: IP 2000 H: FFFF H.
Physical address of the last location is,
= (2000 H 10 H) +FFFF H = 2FFFF H.
Example 3: If the segment registers CS, DS and SS have values 1000H, 2000H and
3000H respectively. What will be the 20-bit start and end addresses of the code, data
and stack segments?
Ans:
Let CS = 1000 H, DS = 2000 H and SS = 3000 H
1. Code Segment:
20-bit start address = (CS 10 H) + 0000 H = 10000 H
20-bit end address = (CS 10 H) + FFFF H = 1FFFF H
2. Data Segment:
20-bit start address = (DS 10 H) + 0000 H =20000 H
20-bit end address = (DS 10 H) + FFFF H =2FFFF H
3. Stack Segment:
20-bit start address = (SS 10 H) + 0000 H = 30000 H
20-bit end address = (SS 10 H) + FFFF H = 3FFFF H
Example 4: Calculate the offset value required to point to absolute address 05AC4 H if
the corresponding contents of the segment register are 0514 H.
Ans:
Given data: Physical address
(or) 05AC4 H
Absolute address
CS = 0514 H
IP (or) segment =?
Fig: The timing diagram for 8086 minimum mode memory write
Fig. 2.20
When an interrupt occur the following actions takes place.
Step 1: Decrements the stack pointer by 2 and saves the flags onto the stack.
(SP) (SP) – 2 (SP) Flags
Step 2: Disables the INTR interrupt by clearing the interrupt flag (IF) in the flag
register.
(IF) 0
Step 3: Clears the trap flag (TF) in the flag register to stop the generation of the
single step interrupt.
(TF) 0
Step 4: Decrements the stack pointer by 2 and saves the contents of code
segment (CS) register onto the stack.
(SP) (SP) – 2 (SP) (CS)
Step 5: Decrements the stack pointer by 2 again and saves the contents of the
instruction Pointer (IP) onto the stack.
(SP) (SP) – 2 (SP) (IP)
Step 6: Loads the code segment (CS) with the segment address of the interrupt
service routine [ISR].
(CS) Segment address of ISR
Step 7: Loads instruction pointer (IP) with the offset address of the interrupt
service routine (ISR) in the code segment of ISR.
(IP) Offset of ISR
INTR
OBJECTIVES
Op-code : 100010
D=1 : AX as destination register.
W=1 : To indicate 16-bit (word) operation.
(AX & BX are 16-bit registers)
MODE = 11 : Register addressing mode.
REG = 000 : Destination register address (i.e. AX)
R/M = 011 : Source register address (i.e. BX)
The complete 2-byte machine code for the assembly language instruction MOV
AX, BX is shown in fig. 3.2.(a)
Fig. 3.2(a)
Therefore the machine code is, 8BC3H.
Case-II: Here, we have to specify BX using REG field.
First byte for the above instruction is of the form:
Op-code D W
100010 0 1
Second byte for the above instruction is of the form:
Op-code : 100010
D=0 : BX as source register.
W=1 : To indicate 16-bit (word) operation.
(AX & BX are 16-bit registers)
MODE = 11 : Register addressing mode.
REG = 011 : Source register address (i.e. BX)
R/M = 000 : Destination register address (i.e. AX)
The complete 2-byte machine code for the assembly language instruction MOV
AX, BX is shown in fig. 3.2.(b).
Fig. 3.2(b)
Therefore the machine code is, 89D8H.
Example 2: Generate code for an instruction MOV CL, [SI]. [Consider the op-code
for MOV is 100010].
Solution:
MOV CL, The contents of a memory location whose 16-bit effective address (offset)
[SI] is stored in SI are transferred to the CL.
It may be noted that the above instruction is specified in register indirect
addressing mode.
We can specify either of CL (or) [SI] using the REG field.
Here, we have to specify CL using REG field.
First byte for the above instruction is of the form:
Op-code D W
Op-code : 100010
D=1 : CL as destination register.
W=0 : To indicate 8-bit (byte) operation.
(CL is 8-bit register)
MODE = 00 : Register indirect addressing mode.
REG = 001 : Destination operand register address
(i.e. CL)
R/M = 100 : Source operand register address (i.e.
[SI] )
The complete 2-byte code for an instruction MOV CL, [SI] is shown in fig. 3.2.(c)
Fig. 3.2(c)
Therefore the machine code is, 8A0CH.
Example 3: Generate code for the instruction
MOV 7C89H [BP], DX.
Solution:
MOV 7C89H The contents of DX are moved to a memory location whose 16-bit
[BP], DX effective address is obtained by adding the contents in BP and the 16-bit
displacement C6A2H.
Op-code : 100010
D=0 : DX as source register.
W=1 : To indicate 16-bit (byte) operation.
(DX is 16-bit register)
MODE = 10 : Based addressing with 16-bit
displacement.
REG = 101 : Source operand register address (i.e.
DX)
R/M = 110 : Destination operand register address
(i.e. [SI] )
16-bit : 7C89H
displacement
The complete 2-byte code for an instruction MOV 7C89H [BP], DX is shown in fig.
3.2.(d)
Fig. 3.2(d)
Fig. 3.3(a)
*Note:
1. In case of 8-bit displacement the effective address is obtained by sign extending
the 8-bit displacement to 16-bit.
2. Usually the contents of DS or SS registers are used to calculate the 20-bit physical
address.
Fig. 3.3(b)
Examples:
MOV The contents of a memory location who’s 16-bit EA provided in the register
CX, [SI] SI is transferred to the register CX.
EA = (SI), BA DS 1610 , MA BA EA
CX MA [MA = Memory Address] (or)
CL MA and CH MA 1
ADD The contents of a memory location who’s 16-bit EA provided in the base
AX, [BX] register BX is added to the contents of the register AX. Result is placed in
AX.
Fig. 3.3(c)
*Note:
1. When BX is used to hold base value for EA then we use DS.
2. When BP is used to hold base value for EA then we use SS.
Examples:
MOV AX, The effective address is calculated by sign extending the 8-bit
[BX + 08H] displacement given in the instruction to 16-bit and adding to the content
of BX register.
The content of memory location is moved to AL register and the content
of next memory location is moved to AH register.
Sign Extend
0008H 08H
EA BX 0008H
BA DS 16 10 ; MA BA EA
AX MA (or)
AL MA and AH MA 1
MOV AX, The contents of a memory location who’s 16-bit EA is obtained by
1234H [BX] adding the contents of BX and the 16-bit displacement 1234H is
transferred into AX.
*Note: An 8-bit displacement, can be extended to 16-bit by making all of the bits in the
higher order byte equal the most significant bit in the lower order byte. This is known as
sign extension.
Fig. 3.3(d)
Examples:
MOV CX, This instruction will copy a byte from a memory location whose
[SI+0A2H] address is calculated by adding the displacement to the content of
source index register (SI) in to the CX register.
Sign Extend
FFA2H A2H
EA SI FFA2H
BA DS 16 10 ; MA BA EA
CX MA (or)
CL MA and CH MA 1
MOV CX, The contents of a memory location who’s 16-bit EA is obtained by
9848H [SI] adding the contents of SI and the 16-bit displacement 9848H is
transferred into CX.
7. Based index Addressing Mode
This mode is the combination of both based addressing mode and indexed
addressing mode.
In this addressing mode the effective address is given by sum of base value, index
value and an 8-bit or 16-bit displacement specified in the instruction as shown in
fig. 3.3 (e)
The base value is stored in BX or BP register.
The index value is stored in SI or DI register.
Fig. 3.3(e)
Examples:
MOV DX, [BX This instruction copies the content of a memory location whose
+ SI + 0AH] effective address is [BX + SI + 0AH] in to DX register.
Sign Extend
000AH 0AH
EA BX SI 000AH
BA DS 16 10 ; MA BA EA
Fig. 3.3(f)
The segment register used for calculating base address for source data is DS and
can be overridden.
The segment register used for calculating base address for destination is ES and
cannot be overridden.
The data transfer instructions of 8086 are listed in below table, with a brief
description about each instruction.
Group -1: General purpose byte or word transfer instructions
1. MOV Copying data (byte/word) from the specified source to
destination.
2. PUSH Pushing the data (word) from the specified register on to top of
stack.
3. POP Fetching the data (word) from top of the stack to the specified
location.
4. XCHG Exchange of data (byte or word) between source and destination
operands.
5. XLAT The content (8-bit) of memory is transferred to AL. The effective
address of memory is given by sum of BX and AL.
Group - 2: Special address transfer instructions
1. LEA Load effective address into the specified register.
2. LDS Load the specified register and DS register from the consecutive
word locations of memory.
3. LES Load the specified register and ES register from the consecutive
word locations of memory.
Group - 3: Flag transfer instructions
1. LAHF Load AH register with the low byte of the flag register.
2. SAHF Store (copy) the AH register to low byte of the flag register.
3. PUSHF Pushing the flag register on to top of the stack.
4. POPF Fetching the data from top of the stack to the flag register.
Group - 4: Simple input and output port transfer instruction
1. IN Copying a data (byte or word) from the specified port to
accumulator (AL or AX)
2. OUT Copying a data (byte or word) from the accumulator (AL or AX)
to the specified port.
The arithmetic instructions of 8086 are listed in below table, with a brief
description about each instruction.
Group -1: Addition instructions
1. ADD Add two operands (byte to byte or a word to word) specified in the
instruction.
2. ADC Add two operands specified in the instruction along with the carry
(CY).
3. INC It increments the byte or word by one. The operand can be a
register or memory location.
4. AAA It adjusts AL so that it contains a correct unpacked BCD digit.
The logical instructions of 8086 are listed in below table, with a brief description
about each instruction.
Group – 1: Bit Manipulation Instructions
1. NOT Invert each bit of a byte/word.
2. AND AND each bit in byte/word with corresponding bit of other
byte/word.
3. OR OR each bit in a byte/word with corresponding bit of other
The processor control instructions of 8086 are listed in below table, with a brief
description about each instruction.
Group -1: Flag Manipulation Instructions
1. STC Set carry flag, CF=1.
2. CLC Clear carry flag, CF=0.
3. CMC Complement the state of carry flag.
4. STD Set direction flag, DF=1.
5. CLD Clear direction flag, DF=0.
6. STI Set interrupt flag, IF=1.
7. CLI Clear interrupt flag, IF=0.
Group -2: Machine Control Instructions
1. HLT It will cause the 8086 to stop fetching and executing instructions.
2. WAIT Wait until signal on test pin is low.
3. LOCK An instruction prefix, prevents another processor from taking the bus
while the adjacent instruction executes.
4. ESC Escape to external co-processor i.e. 8087 or 8089.
5. NOP No operation.
The control transfer instructions of 8086 are listed in below table, with a brief
description about each instruction.
Group 1: Unconditional transfer instructions
1. CALL Call a procedure and save return address on stack
2. RET It returns the control from procedure to calling program.
3. JMP Jump unconditionally from one place to another.
Group 2: Iteration control instructions
1. LOOP Loop through a sequence of instructions until CX=0
2. LOOPE/LOOPZ Loop through a sequence of instructions while ZF=1, and
CX≠0
3. LOOPNE/LOOPNZ Loop through a sequence of instructions while ZF=0 and
CX≠0
Group 3: Interrupt Instructions
1. INT Interrupt program execution, call service procedure
2. INTO Interrupt program execution if, OF=1
3. IRET Return from interrupt service processor to main program.
The string instructions of 8086 are listed in table 3.13, with a brief description
about each instruction.
REP An instruction prefix repeat following instruction until
CX=0.
MOVS/MOVSB/MOVSW Move byte/word from one string to another.
CMPS/CMPSB/CMPSW Compare two string byte /word.
SCAS/SCASB/SCASW Scan string, compare a string byte with a byte in AL or a
string word with a word in AX.
LODS/LODSB/LODSW Load string byte/word into AL/AX.
STOS/STOSB/STOSW Store byte/word from AL/AX into string.
OBJECTIVES
Upon completion of the chapter the student should be able to Understand the working of
Transmission Lines
ORG 1000 H This directive informs the assembler that the statements
following ORG 1000H should be stored in memory starting
with effective address 1000H.
2. EVEN
The directive EVEN will inform the assembler to store the program/data
segment starting from even address.
The 8086 requires one bus cycle to access a word at even address and two bus
cycles to access a word at odd address.
The even alignment with EVEN directive help in accessing a series of
consecutive memory words quickly.
4.1.4. Programs End Directives
This directive is used to inform the assembler, the physical end of a program.
It is performed using the directive END.
END:
END directive is placed after the last statement of a program to tell the assembler
that this is the end of the program module.
The assembler will ignore any statement after an END directive.
Fig. 4.2
4.2.3. Linker
A Linker is a software tool which is used to combine object files of program
modules and library functions into a single executable file.
Thus a linking program which basically converts an *.OBJ file(s) to a single *.EXE
file(s) as shown in fig. 3.12.
Examples: LINK (Microsoft’s linker), TLINK (Borland’s Turbo linker) etc.
4.2.4. Locater
A Locator is a program, used to assign the specific address of where the segments
of object code are to be loaded into the memory.
4.2.5. Debugger
The debugger is also a software tool that allows the execution of program.
The process of locating and correcting the errors in a program using a debugger is
known as debugging.
The program execution in single step mode or break point mode.
In single step mode debugger stops the program execution after each instruction.
Maanya’s M.G.B Publications Microprocessors
4‐10 Programming with 8086
User can check the result after execution of each instruction and proceed to the
execution of next instruction.
In break point mode the debugger allows the user to set a break point at any
point in the program.
The debugger allows the execution of program up to the break point and then
stop.
User can check the results at this point and proceed to execution of rest of the
program if results are as per his lines.
The debugger also allows the user to look at the contents of different registers
and memory locations.
So with this instruction, 16 bit data location whose physical address is 16CA5 H is
transferred to register AX as shown below:
Example 1:
Output Input
CARRY SUM 8 BIT DATA-2 8 BIT DATA-1
4003H 4002H 4001H 4000H
00H 35H 12H 23H
Example 1:
Output Input
BORROW DIFFERENCE 8 BIT DATA-2 8 BIT DATA-1
4003H 4002H 4001H 4000H
00H 22H 12H 34H
Example 2:
Output Input
BORROW DIFFERENCE 8 BIT DATA-2 8 BIT DATA-1
4003H 4002H 4001H 4000H
01H 67H ABH 12H
INT 03H
Input:
16 bit data-2 16 bit data-1
4003H 4002H 4001H 4000H
43H 44H 12H 34H
Output:
SUM
4005H 4004H
55H 78H
Program 6: 16-BIT ADDITION with carry
Method- I
Flow Chart:
Fig. 3.13
Method- II
Program:
Label Instructions Comments
Input:
16 bit data-2 16 bit data-1
4003H 4002H 4001H 4000H
F1H 23H 20H 17H
Output:
CARRY SUM
4006H 4005H 4004H
01H 11H 3AH
Fig. 3.14
Program:
Fig.
Fig. 3.17
Program:
Label Instructions Comments
Result:
Initial Count: 00H
Length of the string CX: 05H
Program 2: To reverse the given string
ASSUME CS: CODE
CODE SEGMENT
ORG 2000H
START: MOV SI, 4000H
MOV DI, 5000H
MOV CL, 05H
ADD DI, 04H
REPEAT: LODSB
MOV [DI], AL
DEC DI
LOOP REPEAT
INT 3H
CODE ENDS
END START
This structure says that, IF the stated conditional is found to be true, the series of
actions following THEN will be executed.
Otherwise, execution will skip over the actions after the THEN and proceed with
the next main line instruction.
Example:
IF carry THEN
Increment register AH
The simple IF-THEN is implemented with a conditional jump instruction.
This structure can be understood by the following assembly language program.
A program using IF-THEN
A program to add two 8-bit values with carry
MOV AH, 00H Clear register AH.
MOV BL, 99H
MOV BH, 99H
ADD BH, BL BH=BH+BL.
MOV AL, BH Store LSB in AL.
JNC END Jump if CF=0.
INC AH Store carry in AH.
END: INT 3 End of program.
Result: 99H+99H=0132H
AH=01H AL=32H
4.9.2. IF-THEN-ELSE
This type of statement is used to indicate a choice between two alternative courses
of actions.
The IF-THEN-ELSE structure has the following format:
IF condition THEN
action
action
ELSE
action
action
This is different situation from the simple IF-THEN, because here either one series
of actions or another series of actions is done before the program goes on with the
next main line instruction.
This structure can be understood by the following assembly language algorithm
and flow chart.
Algorithm:
Read Temperature
IF Temperature 300 THEN
Light Green Lamp
ELSE
Light Yellow Lamp
Read pH Sensor
Flow Chart:
Fig.
Maanya’s M.G.B Publications Microprocessors
4‐32 Programming with 8086
A program using IF-THEN-ELSE
A program to determine the largest of two 16-bit values store
the largest value in register AX.
MOV BX, 9901H
MOV CX, 9902 H
CMP BX, CX Compare BX and CX.
JA COPY_B Jump if BX is above CX.
COPY _C: MOV AX, CX Store CX in AX.
JMP END Jump to label END.
COPY_B: MOV AX, BX Store BX in AX.
END: INT 3 End of program.
Result: AX=CX=9902H
*Note:
IF B>C THEN
A=B
ELSE
A=C
IF condition1 THEN
action1
ELSE IF condition2 THEN
action2
ELSE
action3
Flow Chart:
Fig. 3.24
Maanya’s M.G.B Publications Microprocessors
4‐34 Programming with 8086
A program using Multiple IF-THEN-ELSE structure
A program to read a key press from keyboard display it on a ASCII display.
IN AL, 80H Read from keyboard.
MOV BL, AL Copy data to register BL.
CHK_3: CMP BL, 03H Compare BL with 3.
JNE CHK_2 Jump if BL not equal 3.
MOV AL, 33H Store ASCII code for ‘3’ in AL.
JMP DISP Display AL on ASCII display.
CHK_2: CMP BL, 02H Compare BL with 2.
JNE SET_1 Jump if BL not equals 2.
MOV AL, 32H Store ASCII code for 2 in AL.
JMP DISP Display AL on ASCII display.
STEP_1: MOV AL, 31H Store ASCII code for 1 in AL.
DISP: OUT 81H, AL Display AL on ASCII display.
END: INT 3 End of program.
*Note:
IF B=3 THEN
A = 33H
ELSE IF B=2 THEN
A = 32H
ELSE
A = 31H
4.9.4. REPEAT-UNTIL
Repeat-Until structure has the following format:
REPEAT
action
action
UNTIL some condition is present
Fig. 4.10
Program:
Label Instructions Comments
Fig. 4.10
Program:
Label Instructions Comments
INC SI
CMP AL, [SI] Compare with next element
of array in memory.
JC AHEAD If AL is lesser than memory,
then go to AHEAD.
XCHG AL [SI] If AL is less than memory
then exchange the content of
XCHG AL, [SI-1] memory pointed by SI and
the previous memory
location.
AHEAD: DEC CH Decrement the count for
comparisons.
JNZ REPCOM Repeat comparison until CH
count is zero.
DEC CL Decrement the count for
repetitions.
JNZ REPEAT Repeat N-1 comparisons
until CL count is zero.
HLT Stop execution of the
program.
Fig. 4.11
Main PROC
.
.
.
Main ENDP
SUB PROC
.
.
.
Sub ENDP
Advantages:
o Procedures occupy less memory space.
o It saves the programmer’s time.
Disadvantages:
o In procedures the program flow is interrupted.
o Takes more time to execute.
Maanya’s M.G.B Publications Microprocessors
4‐42 Programming with 8086
o The overhead time is required to call the procedure and return to the
calling program.
o Procedure needs the stack.
Main Program
MOV AL, DATA Data to be passed is
loaded in the AL register.
CALL Pro_Name Call procedure Pro_Name.
CODE ENDS Assembler directive.
Pro_Name PROC NEAR
MOV INPUT, AL Procedure access the data
Procedure
from AL register.
RET Return back to main
program.
Pro_Name ENDP Assembler directive.
HLT Stop execution of the
program.
Example 2:. Write an ALP for addition of two 16-bit numbers using parameters
passing through registers.
CODE SEGMENT Assembler directive.
Procedure for
ADD AX, BX Add the two data; sum will be in AX.
addition
RET Return back to main program.
ADD ENDP Assembler directive.
HLT Stop execution of the program.
4.14.2. Passing Parameters using Memory
Example 1:. Write an ALP for addition of two 16-bit numbers using parameters
passing through registers.
CODE SEGMENT Assembler directive.
MOV AX, Data1 Load the first 16-bit data in AX register.
Main Program
locations 1000H and 1001H.
Procedure for
ADD AX, [BX] Add the contents of AX and memory
addition
location pointed by BX; sum will be in AX.
Fig. 4.14
Program:
Label Instructions Comments
OBJECTIVES
Fig. 5.2
1. Bus Unit (BU)
1. The bus unit provides a 16-bit data bus, a 24-bit address bus and the signals
needed to control bus operations.
2. It performs bus operations such as memory and I/O read / write operations.
Fig. 5.4
*Note:
1. In 80286,
The number of descriptors = 16KB
The maximum size of the segment = 64 KB
The virtual memory space = 16KB 64KB = 1GB.
Virtual Memory = No. of descriptors Maximum size of the segment
2. The descriptor is a block of contiguous 8 memory locations (8 8 = 64bits). It
containing:
Information of segment (segment base address, segment size and type).
Descriptor type (Global Descriptor Table (GTD) & Local Descriptor Table
(LTD).
Privilege level bits.
3. Since descriptor can define size of segment, the size of segment in 80286 is not
uniform as in 8086.
4. The size of the segment is from 1 KB to 64 KB.
Fig. 5.6
1. Bus Interface Unit (BIU)
1. The bus interface unit generates signals for memory and I/O interface.
2. This unit provides a 32-bit data bus, 32-bit address bus and the signals needed to
control transfers over the bus.
3. The physical address of memory and I/O are output through bus interface unit.
2. Code Pre Fetch Unit (CPFU)
1. The function of this unit is that fetching of instructions from memory when bus
interface unit is free.
2. The code pre fetch unit consist a 16-byte pre fetch queue, in which fetched
instructions are stored.
Maanya’s M.G.B Publications Microprocessors
5‐10 Advanced Microprocessors
*Note: A 16-byte pre fetch queue holds the pre fetched instruction bytes until the
decoder needs them.
3. Instruction Decode Unite (IDU)
1. The instruction decode unit takes instruction bytes from 16-byte pre fetch queue
and decodes them.
2. The decoded instructions are then stored in instruction queue in instruction
decode unit.
3. The instruction queue in decoded unit holds the three decoded instructions.
*Note: The queues in code pre-fetch and instruction decode units are FIFO (First In
First Out) queues.
4. Execution Unit
1. The execution unit read the decoded instructions from decode unit and processes
them.
2. The execution unit of 80386 consists the following sub units:
a) Control unit b) Data unit c) Protection test unit
3. The control unit consists of a ROM, which stores the micro codes and this unit
generates required control signals.
4. The data unit includes an ALU, a 64 bit barrel shifter and eight general purpose
registers.
The data unit performs the operations requested by the control unit.
The barrel shifter is used for fast shift, rotate, multiply and divide operations.
5. The protection test unit checks for segmentation violation under the control of the
microcode.
5. Segmentation Unit
1. The segmentation unit translates logical addresses into linear addresses at the
request of the execution unit.
2. The segmentation unit compares the effective address for the length limit
specified in the segment descriptor.
3. The segment unit adds the segment base and the effective address to generate
linear address.
4. Before calculation of linear address it also checks for access rights. The violation of
access rights causes a protection exception to be generated.
6. Paging Unit
1. When the 80386 paging mechanism is enabled, the paging unit translates linear
addresses generated by the segmentation unit or the code pre-fetch unit into
physical addresses.
Fig. 5.6
Fig. 5.8
Fig. 5.10
As shown in fig. 5.10 instruction processing is divided into 4 stages hence the
name it is known as 4 stage instruction pipeline.
The 4 stages are: fetch (F), decode (D), execute (E) and write (W). A separate
hardware unit is provided to perform each of these steps.
Fig. 5.13
The internal block diagram of Intel 80486 is shown in fig. 5.13.
The major functional parts of Intel 80486 are:
1. Bus interface unit
2. Data processing unit
Fig. 5.15
The internal block diagram of Intel Pentium microprocessor is shown in fig.5.15
The functional parts of Pentium are:
1. Core execution unit
2. Integer pipe line unit
3. Floating point pipe line unit