0% found this document useful (0 votes)
68 views28 pages

18ECC203J - Unit 1 S - 2

The document provides information about the Intel 8086 microprocessor, including its features, register organization, and functional blocks. Some key points: 1) The Intel 8086 is a 16-bit microprocessor introduced in 1978 that can address up to 1MB of memory. It has 16-bit data bus and 20-bit address bus. 2) The 8086 has four general purpose registers (AX, BX, CX, DX), each composed of two 8-bit registers, as well as other registers like the stack pointer, instruction pointer, and four segment registers. 3) The functional blocks of the 8086 include an arithmetic logic unit (ALU), register array, flag register, instruction

Uploaded by

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

18ECC203J - Unit 1 S - 2

The document provides information about the Intel 8086 microprocessor, including its features, register organization, and functional blocks. Some key points: 1) The Intel 8086 is a 16-bit microprocessor introduced in 1978 that can address up to 1MB of memory. It has 16-bit data bus and 20-bit address bus. 2) The 8086 has four general purpose registers (AX, BX, CX, DX), each composed of two 8-bit registers, as well as other registers like the stack pointer, instruction pointer, and four segment registers. 3) The functional blocks of the 8086 include an arithmetic logic unit (ALU), register array, flag register, instruction

Uploaded by

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

18ECC203J – Module 1

Intel 8086 – Architecture, Signals and


Features
S–2

Prepared by,
Dr. R. Manohari
Dr.T.Rajalakshmi

S–2
Features of 8086 microprocessor
& Register organization of 8086
Microprocessor Definition
🠶Microprocessor is a programmable device that takes in
numbers, performs on them arithmetic or logical operations
according to the program stored in memory and then
produces other numbers as a result.
Basic Concepts of Microprocessors

🠶Differences between:

❖Microcomputer –a computer with a microprocessor as its


CPU. Includes memory, I/O etc.

❖Microprocessor –silicon chip which includes ALU, register


circuits, instruction decoder circuits & control circuits
❖Microcontroller –silicon chip which includes
microprocessor, memory & I/O in a single package
A Microprocessor based system (fig 1)
Inside the Microprocessor

Organization of a microprocessor based system


🠶Let’s expand the fig 1 a bit

Microprocessor

Functional blocks
8 Computational Unit; performs arithmetic ALU Register array or
and internal memory
logic operations

Flag
Register Instruction
Various conditions of the results are stored decoding unit
as
status bits called flags in flag register Internal storage of data
Data Bus Generates the fetched from the
address of the memory and send
instructions to be through address
Timing and control unit PC/ IP bus to the memory

Control Bus Address Bus

Generates control signals for internal and external operations Decodes instructions; sends information to the timing and
of the microprocessor control unit

INTEL 8086

🠶 INTEL 8086 is the first 16-bit processor released by INTEL in the year 1978

🠶 Third Generation Microprocessors

🠶 Designed using HMOS technology & now it is


manufactured using HMOS III technology & contains
approximately 29,000 transistors.
🠶 It is available as 40-pin Dual in-line Package (DIP).

INTEL 8086
🠶It is available in four versions:

1. 8086 (5
MHz)
2. 8086-2 (8
MHz)
3. 8086-4 (4
MHz)
4. 8086-1 (10 MHz)
Main Features of 8086
🠶 It is a 16-bit processor. It’s ALU, internal registers work with 16-
bit binary words.
🠶 It has a 16 bit data bus. It can read (or write) data from (or to) a
memory/port, either 16 bits or 8 bits at a time.

🠶 It has a 20-bit address bus which means it can address up to 2 20 =


1 MB memory location.

🠶 Like 8085, 8086 too can do only fixed arithmetic.

✓ Intel had designed the coprocessor 8087 that can do floating point
arithmetic & other complex mathematical operations.

🠶 8086 can work in conjunction with 8087 to do both fixed-point,


floating point & other complex mathematical functions.
Main Features of 8086 cont…
🠶 It is designed to operate in two modes: minimum mode and
maximum mode

✓ In minimum mode, 8086 processor works in a single


processor environment

✓ In maximum mode, it works in a multiprocessor


environment.

✓ In a multiprocessor environment, Control signals for


memory & I/O are generated by an external BUS
controller

🠶 It requires +5 V power supply.

🠶 It uses a 40 pin DIP


Register Organization of 8086
Flag Register

🠶 A flag is a flip-flop that indicates some condition produced by


the execution of an instruction or controls certain operations
of the EU
🠶 A 16-bit flag register in the EU contains nine active flags in
the flag register
Flag Register
🠶 8086 has 9 flags and they are divided into two categories: ⦿Condition Flags

⦿Control Flags
Condition Flags
🠶 Condition flags represent result of last arithmetic or logical
instruction executed. Conditional flags are as follows:

🠶 Carry Flag (CF): This flag is set if there is a carry / borrow after an
integer arithmetic.

🠶 Auxiliary Carry Flag (AF): If an operation performed in ALU


generates a carry / borrow from lower nibble (i.e. D0 – D3) to
upper nibble (i.e. D4 – D7), then AF is set. It is used in BCD
Addition.

🠶 Parity Flag (PF): This flag is used to indicate the parity of result. If
the result contains even number of 1’s, the Parity Flag is set and
for odd number of 1’s, the Parity Flag is reset
Condition Flags

⦿ Zero Flag (ZF): It is set; if the result of arithmetic or logical


operation is zero else it is reset.

⦿ Sign Flag (SF): In sign magnitude format, the sign of number is


indicated by MSB bit. If the result of operation is negative, sign
flag is set.

⦿ Overflow Flag (OF): It occurs when signed numbers are


added or subtracted. An OF indicates that the result has
exceeded the capacity of machine that is result is out of
range
Control Flags

⦿ Control flags are set or reset deliberately to control the


operations of the execution unit. Control flags are as
follows:

⦿ Trap Flag (TP):

⦿It is used for single stepping through a program

⦿It allows user to execute one instruction of a program at a


time for debugging.

⦿When trap flag is set, program can be run in single


step mode.
Control Flags

🠶 Interrupt Flag (IF):

⦿It is an interrupt enable / disable flag.

⦿If it is set, the INTR interrupt of 8086 is enabled and if it


is reset then INTR is disabled.
Control Flags

🠶 Directional Flag (DF):


⦿It is used with string operations.

⦿If it is set, string bytes are accessed from higher


memory address to lower memory address.

⦿When it is reset, the string bytes are accessed from


lower memory address to higher memory address.
General Purpose Registers
🠶 EU has eight general purpose registers,
labeled AH, AL, BH, BL, CH, CL, DH &
DL
🠶 These registers can be used
individually for temporary storage of
8-bit data.

🠶 The AL register is also called the


accumulator

🠶 Certain pairs of these general purpose


registers can be used together to store
16- bit data words

✓ AH-AL pair --- AX register

✓ BH-BL pair --- BX register

✓ CH-CL pair --- CX register

✓ DH-DL pair --- DX register


General Purpose Registers

⦿ AX Register: AX register is also known as accumulator register


that stores operands for arithmetic operation like divided, rotate.

⦿ BX Register: This register is used as an offset storage for forming


physical addresses in case of certain addressing modes.

⦿ CX Register: It is used as a default counter in case of string and


loop instructions.

⦿ DX Register: DX register is used to contain I/O port address for


I/O instruction.
Pointer and Index Registers
🠶Stack Pointer (SP)

🠶Base Pointer (BP)

🠶Source Index (SI)

🠶Destination Index (DI)


Pointer and Index Registers

🠶 Stack Pointer (SP):

⦿The function of SP is same as the function of SP in Intel 8085.


⦿It stores the address of top element in the stack.

🠶 BP, SI & DI are used

✓ for temporary data storage just as the general purpose registers ✓ in

memory address computation. (later)

Base Pointer (BP), Source Index (SI),


Destination Index (DI) Registers

🠶 BP : We can use it instead of SP for accessing the stack using based


addressing mode.
✓ In this case, the 20-bit physical stack address is calculated from BP and
SS

🠶 SI : It can be used to hold the offset of source data in the data


segment

✓ In this case, the 20-bit physical data address is calculated from SI and
DS

🠶 DI: It is used to store the offset of destination in data or extra segment

✓ String instructions always use ES and DI to determine the 20-bit


physical address for the destination
Instruction Pointer (IP)

🠶 The Instruction Pointer (IP) in


8086 acts as a Program
Counter.

🠶 IP register holds the 16-bit


address or offset of the next
code byte within the code
segment

✓ The value contained in the IP is


referred to as an offset
because the 20-bit physical
code byte address is
calculated from IP and CS
Cont.
🠶 The instruction pointer register contains a 16-bit offset
which tells, where in that 64-Kbyte code segment the next
instruction byte is to be fetched from.
Stack Pointer Register

🠶 The SP register in the EU holds


the 16-bit offset from the start
of the stack segment to the top
of the stack

🠶 For stack operation, the content


of the SS register and the
content of the SP register are
used to produce the 20-bit
physical address.
Segment
Registers

Unlike 8085, the


8086 addresses a
segmented
memory

🠶 A segment
register points to
the starting
address of a
memory
segment.
Segment Registers

🠶 Four Segment registers in the BIU are used to hold the


upper 16 bits of the starting addresses of four memory
segments that the 8086 is working with at a particular time
Segment Registers
🠶 Code Segment Register: Used to hold the upper 16 bits of the
starting address of code segment from which the BIU is currently
fetching instruction code bytes

🠶 Data Segment Register & Extra Segment Register: Used to hold the
upper 16 bits of the starting addresses of data segment and extra
segment that are used for data

🠶 Stack Segment Register: Used to hold the upper 16 bits of the


starting addresses of stack segment which is used to store stack
data
References
🠶 Advanced Microprocessors and Peripherals by A K Ray & K
M Bhurchandi

🠶 Microprocessors and Interfacing by Douglas V Hall &


SSSP Rao
Thank You

You might also like