You are on page 1of 10

Shanto Mariam University of Creative Technology

Department of Computer Science and Engineering

Course Name: Microcontroller and Microprocessor

Course Code: CSE 3135


Submitted to: Syed Jamaluddin Ahmad

Submitted by: Rakibul Hasan Rakib

Department: CSE
ID: 181071019
Batch: 17th
Semester: 7th
Date of Submission: 12 June 2020.
ASSESSMENT

What type of architecture used in 8086 microprocessor?


8086 Microprocessor is an enhanced version of 8085Microprocessor
that was designed by Intel in 1976.
• A Microprocessor is an Integrated Circuit with all the functions of
a CPU however, it cannot be used stand alone since unlike a
microcontroller it has no memory or peripherals.
• 8086 does not have a RAM or ROM inside it.
• it has internal registers for storing intermediate and final results
and interfaces with memory located outside it through the System
Bus.
• In case of 8086, it is a 16-bit Integer processor in a 40 pin, Dual
Inline Packaged IC.
• 8086 provides the programmer with 14 internal registers, each 16
bits or 2 Bytes wide.
• It is a 16-bit Microprocessor having 20 address lines and16 data
lines that provides up to 1MB storage.
• It consists of powerful instruction set, which provides operations
like multiplication and division easily.
• It supports two modes of operation, i.e. Maximum mode and
Minimum mode. Maximum mode is suitable for system having
multiple processors and Minimum mode is suitable for system
having a single processor.
The following diagram depicts the architecture of a 8086
Microprocessor −

What is the function of accumulator?


In the central processing unit, or CPU, of a computer,
the accumulator acts as a special register that stores values and
increments of intermediate arithmetic and logic calculations.
The accumulator is a temporary memory location that is accessed
speedily by the CPU.
An accumulator is a register for short-term, intermediate storage of
arithmetic and logic data in a computer's CPU (Central Processing
Unit).In an arithmetic operation involving two operands, one operand
has tobe in this register. And the result of the arithmetic operation will
be stored or accumulated in this register. Similarly, in a logical
operation involving two operands, one operand has to be in the
accumulator. Also, some other operations, like complementing and
decimal adjustment, can be performed only on the accumulator.
What are the different types of flags in 8086 microprocessor?
Flag Register
It is a 16-bit register that behaves like a flip-flop, i.e. it changes its
status according to the result stored in the accumulator. It has 9 flags
and they are divided into 2 groups − Conditional Flags and Control
Flags.
Conditional Flags
It represents the result of the last arithmetic or logical instruction
executed. Following is the list of conditional flags −
• Carry flag − This flag indicates an overflow condition for
arithmetic operations.
• Auxiliary flag − When an operation is performed at ALU, it results
in a carry/barrow from lower nibble (i.e. D0 – D3) to upper nibble
(i.e. D4 – D7), then this flag is set, i.e. carry given by D3 bit to D4
is AF flag. The processor uses this flag to perform binary to BCD
conversion.
• Parity flag − This flag is used to indicate the parity of the result,
i.e. when the lower order 8-bits of the result contains even
number of 1’s, then the Parity Flag is set. For odd number of 1’s,
the Parity Flag is reset.
• Zero flag − This flag is set to 1 when the result of arithmetic or
logical operation is zero else it is set to 0.
• Sign flag − This flag holds the sign of the result, i.e. when the
result of the operation is negative, then the sign flag is set to 1
else set to 0.
• Overflow flag − This flag represents the result when the system
capacity is exceeded.
Control Flags
Control flags controls the operations of the execution unit. Following is
the list of control flags −
• Trap flag − It is used for single step control and allows the user to
execute one instruction at a time for debugging. If it is set, then
the program can be run in a single step mode.
• Interrupt flag − It is an interrupt enable/disable flag, i.e. used to
allow/prohibit the interruption of a program. It is set to 1 for
interrupt enabled condition and set to 0 for interrupt disabled
condition.
• Direction flag − It is used in string operation. As the name
suggests when it is set then string bytes are accessed from the
higher memory address to the lower memory address and vice-a-
versa.
What are the types of general purpose registers in 8086?
General purpose register
There are 8 general purpose registers, i.e., AH, AL, BH, BL, CH, CL,
DH, and DL. These registers can be used individually to store 8-bit data
and can be used in pairs to store 16bit data. The valid register pairs are
AH and AL, BH and BL, CH and CL, and DH and DL. It is referred to
the AX, BX, CX, and DX respectively.
• AX register − It is also known as accumulator register. It is used
to store operands for arithmetic operations.
• BX register − It is used as a base register. It is used to store the
starting base address of the memory area within the data segment.
• CX register − It is referred to as counter. It is used in loop
instruction to store the loop counter.
• DX register − This register is used to hold I/O port address for
I/O instruction.
What is the memory size of 8086 microprocessor?
• To increase execution speed and fetching speed, 8086 segments
the memory.
• It’s 20 bit address bus can address 1MB of memory, it segments it
into 4 64kB segments.
• 8086 works only with four 64KB segments within the whole 1MB
memory.

What are the various interrupts in 8086 microprocessor?


Which is the highest priority
When microprocessor receives any interrupt signal from peripheral(s)
which are requesting its services, it stops its current execution and
program control is transferred to a sub-routine by
generating CALL signal and after executing sub-routine by
generating RET signal again program control is transferred to main
program from where it had stopped.
When microprocessor receives interrupt signals, it sends an
acknowledgement (INTA) to the peripheral which is requesting for its
service.
Interrupts can be classified into various categories based on different
parameters:
• Hardware and Software Interrupts –
When microprocessors receive interrupt signals through pins
(hardware) of microprocessor, they are known as Hardware
Interrupts. There are 5 Hardware Interrupts in 8085
microprocessor. They are – INTR, RST 7.5, RST 6.5, RST 5.5, TRAP
Software Interrupts are those which are inserted in between the
program which means these are mnemonics of microprocessor.
There are 8 software interrupts in 8085 microprocessor. They are
– RST 0, RST 1, RST 2, RST 3, RST 4, RST 5, RST 6, RST 7.
• Vectored and Non-Vectored Interrupts –
Vectored Interrupts are those which have fixed vector address
(starting address of sub-routine) and after executing these,
program control is transferred to that address.

• Non-Vectored Interrupts are those in which vector address is not


predefined. The interrupting device gives the address of sub-
routine for these interrupts. INTR is the only non-vectored interrupt
in 8085 microprocessor.

• Maskable and Non-Maskable Interrupts –
Maskable Interrupts are those which can be disabled or ignored by
the microprocessor. These interrupts are either edge-triggered or
level-triggered, so they can be disabled. INTR, RST 7.5, RST 6.5, RST
5.5 are maskable interrupts in 8085 microprocessor.
Non-Maskable Interrupts are those which cannot be disabled or
ignored by microprocessor. TRAP is a non-maskable interrupt. It
consists of both level as well as edge triggering and is used in
critical power failure conditions.
Priority of Interrupts –
When microprocessor receives multiple interrupt requests
simultaneously, it will execute the interrupt service request (ISR)
according to the priority of the interrupts.

Name High order / Low order Register in 8086


microprocessor?
In the 8086 Microprocessor, the registers are categorized into mainly
four types:
• General Purpose Registers
• Segment Registers
• Pointers and Index Registers
• Flag or Status Register
1) General Purpose Registers
The use of general-purpose registers is to store temporary data. While
the instructions are executed in the control unit, they may work on
some numeric value or some operands. These need to be stored
somewhere so that the processor can operate on them easily. So, these
registers are used in these cases. There are 4 general-purpose registers
of 16-bit length each. Each of them is further divided into two subparts
of 8-bit length each: one high, which stores the higher-order bits and
another low which stores the lower order bits.
• AX = [AH:AL]
• BX = [BH:BL]
• CX = [CH:CL]
• DX = [DH:DL]
2) Segment Registers
There are 4 segment registers in 8086 Microprocessor and each of
them is of 16 bit. The code and instructions are stored inside these
different segments.
• Code Segment (CS) Register:
The user cannot modify the content of these registers. Only the
microprocessor's compiler can do this.
• Data Segment (DS) Register:
The user can modify the content of the data segment.
• Stack Segment (SS) Registers:
The SS is used to store the information about the memory
segment. The operations of the SS are mainly Push and Pop.
• Extra Segment (ES) Register:
By default, the control of the compiler remains in the DS where
the user can add and modify the instructions. If there is less space
in that segment, then ES is used. ES is also used for copying
purpose.
3) Pointers and Index Registers
The pointers will always store some address or memory location.
In 8086 Microprocessor, they usually store the offset through which
the actual address is calculated.
• Instruction Pointer (IP):
The it also acts as an offset for CS register.pointer usually stores
the address of the next instruction instruction that is to be
executed. Apart from this,
• Base Pointer (BP):
The Base pointer stores the base address of the memory. Also, it
acts as an offset for Stack Segment (SS).
• Stack Pointer (SP):
The Stack Pointer Points at the current top value of the Stack. Like
the BP, it also acts as an offset to the Stack Segment (SS).
The indexes are used with the extra segment and they usually are
used for copying the contents of a particular block of memory to a
new location.
• Source Index (SI):
It stores the offset address of the source.
• Destination Index (DI):
It stores the offset address of the Destination.
4) Flag or Status Register
The Flag or Status register is a 16-bit register which contains 9 flags, and
the remaining 7 bits are idle in this register. These flags tell about the
status of the processor after any arithmetic or logical operation. IF the
flag value is 1, the flag is set, and if it is 0, it is said to be reset.

You might also like