CSE 2006 – Microprocessors and
Interfacing
Module – 1
Introduction
Dr. K. Chitra
Professor
School of Electronics Engineering
VIT University, Chennai
1
Introduction
• Apple's A11 Bionic system-on-chip, also used in the iPhone 8
and 8 Plus, which is a six-core processor with two cores
optimized for performance
• Qualcomm Snapdragon. The Snapdragon was theTegra 2 of
last year, as it was the first to market with 1 GHz speeds.
• The Snapdragon was based on the ARM Cortex-A8
• Tegra processors used in smartphone and tablet markets
2
• Broadcom BCM2835 SoC used in the first generation Raspberry
Pi includes a 700 MHz ARM11 76JZF-S processor, VideoCore
IV graphics processing unit (GPU), and RAM
• Arduino Uno is a microcontroller board based on the
ATmega328P
• Intel Core i5 used in laptops
3
Features of 8086
• It is an 16-bit microprocessor i.e. 8086 μp can read or
write or perform any arithmetic & logical operation on
16-bit data at a time
• It is a 40 pin IC
• It can perform arithmetic operation on 8-bit or 16-bit
data including multiplication & division
• It can operate in single mode (Minimum mode) & in
multiprocessor mode (Maximum mode)
4
• It requires external clock generator
• It works on maximum clock frequency of 10
MHz & Minimum clock frequency of 5 MHz
• It has 16-bit data bus
• It provides 20 address line so 8086 μp can
access (220) = 1Mbytes of memory
• It requires single +5V power supply
• It contains 16-bit flag register
• It support multiprocessing
5
8086 Architecture
6
7
8086 Architecture
8
Internal Features
• It has ALU, flags, registers, instruction byte queue and segment
registers
• 8086 is divided into two independent functional parts namely
– The Bus Interface Unit (BIU)
– Execution Unit (EU)
• Dividing work between two units speeds up the processing
9
BIU
-It is a interface to the outside world
(memory & I/O)
-has 16 bit data bus and 20 bit address bus
BIU FUNCTIONS:
Sends address of memory or I/O
Fetches instruction from memory
Reads data from port/memory
Writes data from port/memory
Instruction queuing
10
BIU Contains
• Instruction Queue
• Segment Registers
• Instruction Pointer
• Address Summer &
• Bus control logic
INSTRUCTION QUEUE:
Fetches 6 instruction byte ahead of time from
memory
Group of registers called queue
FIFO queue (in order) 11
Segment Registers
• These are special purpose registers which acts
as pointer to the memory blocks
• It works together with general purpose
register to access the memory values
Code Segment(CS): points at the segment
containing the current program
12
Data Segment (DS):points at segment where
variables (data)are defined
Extra Segment (ES):points at the segment where
extra data are used
Stack Segment (SS):points at the segment
containing stack
Instruction Pointer (IP):
It points the next code byte
with in the code segment
-It is referred as offset
13
Execution Unit (EU)
Contains
• General Purpose register
• Pointer & Index Register
• Flag Register
• ALU
• Instruction Decoder &
• Control unit
14
• EU has 8 general purpose registers AH, AL,BH,
BL, CH, CL, DH, DL
• These are used a individual 8 bit data storage
• Pair of 8 bit register are used for 16 bit storage
AX, BX, CX, DX
15
Stack Pointer(SP):
• Contains 16 bit offset of the start of the
segment
• Physical address is found by adding the SP
register to Stack Segment SS register
Base Pointer(BP): can be used for data storage
• Used instead of SP for accessing stack
16
• Source Index(SI):used to store offset of source data in DS
• Destination Index(DI):used to store offset of destination in DS
& ES
• These registers useful for string manipulation
17
Flag Register of 8086
8086 has 9 flags and they are divided into two categories
Condition code or status Flags
Machine Control Flags
Carry Flag(CF):indicates an overflow condition for
unsigned integer arithmetic
Auxiliary Flag(AF):is set when carry/barrow from the
lower nibble. It is internally used by processor during
binary to BCD conversion
18
Parity Flag (PF):Indicates parity of the result. Set if lower byte
of result has even no of ones
Zero Flag(ZF):is set, if the result of arithmetic or
logical operation is zero
Sign Flag(SF):Indicates sign of result. Set if negative
Overflow Flag(OF):indicates that the result has
exceeded the capacity of
machine
Control Flag: used to control the operation of
execution unit. T, I, D 19
Trap Flag (TP): It is used for Single step execution
mode & used while debugging
Interrupt Flag(IF):It is used to enable/disable the
interrupts.
Direction Flag(DF):It is used in string operation
– If it is set, string bytes are accessed from higher
memory address to lower memory address else
from lower memory address to higher memory
address
20
Memory Segmentation
• Physical address of 8086 is 20 bit wide to
access 1Mbyte memory.
• But the register and data line width are only
16 bit.
• Hence 1 MB memory can be divided into 16
segments.
• Each segment maximum size is 64 Kbytes.
• With in this segment 16 bit address are
accessed.
21
22
• Address of segment may be assigned as 0000H
to F000H
• The offset address ranges from 0000H to
FFFFH
• So the physical address range from 00000H to
FFFFFH
• Above segments are Non-Overlapping
segments
• There may be overlapping segments
23
Generation of 20 bit Physical Address
• Content of the segment register is multiplied
by 16 (i.e.)Left shift the 4 bits by inserting
zeros.
For eg:-
Segment address->348AH-0011 0100 1000 1010
4 bit Left shifted ->0011 0100 1000 1010 0000
=348A0H
• Content of the Pointer register is summed
with shifted segment register
24
25
Example:
CS register value is 348AH and the offset value
(IP) is 4214H .Find the Physical address?
Given: CS=348AH
Left shift by 4 bits then CS=348A0H
Physical address=CS+IP
348A0 +
4214
-----------
38AB4H (20 bit physical address)
-----------
26
Note:
• Stack Pointer(SP) holds the offset summed
with Stack Segment (SS) register
• Base Pointer(BP) can be used as offset for SS
• Source Index (SI) offset is used with Data
Segment (DS)
• Destination Index(DI) offset is used with Extra
Segment (ES) in finding the physical address
27