Pipelining 8086
Pipelining 8086
Address Bus: 8086 has a 20-bit address bus, hence it can access 220 Byte memory i.e. 1MB. The
address range for this memory is 00000H … FFFFFH.
Data Bus: 8086 has a 16-bit data bus i.e. it can access 16 bit data in one operation. Its ALU and
internal data registers are also 16-bit.
Hence 8086 is called as a 16-bit µP.
Control Bus: The control bus carries the signals responsible for performing various operations such
as RD , WR etc.
7) 8086 has a 16-bit IO address ∴ it can access 216 IO ports (216 = 65536 i.e. 64K IO Ports).
www.BharatAcharyaEducation.com
All the best J Watch Video Lectures of all topics by Bharat Acharya Page 6
8086 MICROPROCESSOR
Author: Bharat Acharya
Sem IV – Electronics
Mumbai 2018
ARCHITECTURE OF 8086
www.BharatAcharyaEducation.com
All the best J Watch Video Lectures of all topics by Bharat Acharya Page 7
BHARAT ACHARYA EDUCATION
Videos | Books | Classroom Coaching
E: [email protected]
M: 9820408217
As 8086 does 2-stage pipelining, its architecture is divided into two units:
1. Bus Interface Unit (BIU)
2. Execution Unit (EU)
a) SEGMENT REGISTERS:
1) CS Register
CS holds the base (Segment) address for the Code Segment.
All programs are stored in the Code Segment.
It is multiplied by 10H (16d), to give the 20-bit physical address of the Code Segment.
Eg: If CS = 4321H then CS × 10H = 43210H è Starting address of Code Segment.
CS register cannot be modified by executing any instruction except branch instructions
2) DS Register
DS holds the base (Segment) address for the Data Segment.
It is multiplied by 10H (16d), to give the 20-bit physical address of the Data Segment.
Eg: If DS = 4321H then DS × 10H = 43210H è Starting address of Data Segment.
3) SS Register
SS holds the base (Segment) address for the Stack Segment.
It is multiplied by 10H (16d), to give the 20-bit physical address of the Stack Segment.
Eg: If SS = 4321H then SS × 10H = 43210H è Starting address of Stack Segment.
4) ES Register
ES holds the base (Segment) address for the Extra Segment.
It is multiplied by 10H (16d), to give the 20-bit physical address of the Extra Segment.
Eg: If ES = 4321H then ES × 10H = 43210H è Starting address of Extra Segment.
www.BharatAcharyaEducation.com
All the best J Watch Video Lectures of all topics by Bharat Acharya Page 8
8086 MICROPROCESSOR
Author: Bharat Acharya
Sem IV – Electronics
Mumbai 2018
Viva Question: Explain the real procedure to obtain the Physical Address?
The Segment address is left shifted by 4 positions, this multiplies the number by 16 (i.e. 10h) and then the offset address is
added.
Eg: If Segment address is 1234h and 0ffset address is 0005h, then the physical address (12345h) is calculated as follows:
1234h = (0001 0010 0011 0100)binary
Left shift by four positions and we get (0001 0010 0011 0100 0000)binary i.e. 12340h
Now add (0000 0000 0000 0101)binary i.e. 0005h and we get (0001 0010 0011 0100 0101)binary i.e. 12345h.
Time
F1 E1 F2 E2 F3 E3 F4 E4 F5 E5
Time
F1 E1 E2 E3 E4 E5
F2 F3 F4 F5
Overlapping fetching
and execution
www.BharatAcharyaEducation.com
All the best J Watch Video Lectures of all topics by Bharat Acharya Page 9
BHARAT ACHARYA EDUCATION
Videos | Books | Classroom Coaching
E: [email protected]
M: 9820408217
AX Register (16-Bits)
It holds operands and results during multiplication and division operations.
All IO data transfers using IN and OUT instructions use A reg (AL/AH or AX).
It functions as accumulator during string operations.
BX Register (16-Bits)
Holds the memory address (offset address), in Indirect Addressing modes.
CX Register (16-Bits)
Holds count for instructions like: Loop, Rotate, Shift and String Operations.
DX Register (16-Bits)
It is used with AX to hold 32 bit values during Multiplication and Division.
It is used to hold the address of the IO Port in indirect IO addressing mode.
www.BharatAcharyaEducation.com
All the best J Watch Video Lectures of all topics by Bharat Acharya Page 10
8086 MICROPROCESSOR
Author: Bharat Acharya
Sem IV – Electronics
Mumbai 2018
c) ALU (16-Bits)
It has a 16-bit ALU. It performs 8 and 16-bit arithmetic and logic operations.
d) Operand Register
It is a 16-bit register used by the control register to hold the operands temporarily.
It is not available to the Programmer.
e) Instruction Register and Instruction Decoder (Present inside the Control Unit)
The EU fetches an opcode from the queue into the Instruction Register. The Instruction
Decoder decodes it and sends the information to the control circuit for execution.
It has 9 Flags.
These flags are of two types: 6-Status (Condition) Flags and 3-Control Flags.
Status flags are affected by the ALU, after every arithmetic or logic operation. They give the status
of the current result.
The Control flags are used to control certain operations.
They are changed by the programmer.
www.BharatAcharyaEducation.com
All the best J Watch Video Lectures of all topics by Bharat Acharya Page 11
BHARAT ACHARYA EDUCATION
Videos | Books | Classroom Coaching
E: [email protected]
M: 9820408217
STATUS FLAGS
CONTROL FLAGS
www.BharatAcharyaEducation.com
All the best J Watch Video Lectures of all topics by Bharat Acharya Page 12