8086 Detailed Review Questions Answers
8086 Detailed Review Questions Answers
The 8086 microprocessor is architecturally divided into two major units: the Bus Interface Unit (BIU) and the
Execution Unit (EU). The BIU is responsible for interfacing with memory and I/O devices. It handles all data
and address bus operations and instruction fetching. On the other hand, the EU executes the instructions
decoded by the Control Unit and performs arithmetic and logic operations using the Arithmetic Logic Unit
(ALU).
The instruction queue in the 8086 serves the purpose of pipelining. It is a 6-byte FIFO (First In First Out)
queue that prefetches instructions from memory even before the execution unit is free. This overlap of fetch
and execute cycles increases the speed of operation by allowing the BIU to fetch new instructions while the
Memory segmentation in the 8086 is a technique where memory is divided into different logical segments to
manage code, data, stack, and extra data. Each segment can be up to 64 KB in size, and the processor can
address up to 1 MB of physical memory. Segmentation allows easier program organization and efficient
memory management.
In the 8086 microprocessor, memory is segmented using four segment registers: Code Segment (CS), Data
Segment (DS), Stack Segment (SS), and Extra Segment (ES). Each segment register holds a 16-bit value
that points to the beginning of a 64 KB memory segment. Logical addresses consist of a segment and an
5. How does the 8086 generate a physical address from the segment address?
The 8086 generates a 20-bit physical address by left-shifting the 16-bit segment value by 4 bits (multiplying
by 16) and then adding the 16-bit offset to it. This allows it to address up to 1 MB of memory using 16-bit
registers. Formula: Physical Address = (Segment × 10H) + Offset.
6. What is the function of the ALU in the Execution Unit (EU) of the 8086?
The Arithmetic Logic Unit (ALU) within the Execution Unit is responsible for carrying out all arithmetic
operations such as addition, subtraction, increment, and decrement, as well as logic operations like AND,
OR, XOR, and NOT. It also helps in setting the appropriate flags based on the result of these operations.
7. Explain the difference between Pointer and Index Registers and give examples.
Pointer registers are mainly used for stack operations and include the Stack Pointer (SP) and Base Pointer
(BP). SP is used to access stack data indirectly, while BP helps in accessing parameters passed through the
stack.
Index registers, namely Source Index (SI) and Destination Index (DI), are used for string manipulation and
array operations. They are mainly used with string instructions like MOVS, LODS, and STOS.
The flag register in the 8086 is a 16-bit register containing 9 flags that indicate the status of the processor and
the outcome of operations. It includes status flags (like Zero, Sign, Overflow, Carry, Parity, Auxiliary Carry)
and control flags (Direction, Interrupt, Trap). These flags influence program flow and decision making in
conditional operations.
9. What is the function of the Bus Interface Unit (BIU) in the 8086?
The BIU is responsible for all external communications of the processor. It manages the system bus during
data and instruction fetch operations, handles the segment registers, instruction queue, and generates the
20-bit physical address to access memory. It enables the overlapping of instruction fetch and execution.
10. What is the maximum size of the memory that can be addressed by the 8086?
The 8086 has a 20-bit address bus, which allows it to access a maximum memory size of 2^20 = 1,048,576
bytes or 1 MB.
11. What is the difference between the 8086 and 8088 microprocessor?
The main difference lies in the data bus width and instruction queue size. The 8086 has a 16-bit data bus and
a 6-byte instruction queue, while the 8088 has an 8-bit data bus and a 4-byte queue. The 8088 is compatible
with 8-bit systems, making it more economical and suitable for simpler applications.
12. What are the different types of instruction formats in the 8086 microprocessor?
Instruction formats in 8086 include one-byte, two-byte, and multi-byte formats. These formats may consist of
opcode, addressing mode bits, displacement, and immediate data. The format used depends on the
The 8086 handles both hardware and software interrupts. It supports maskable interrupts (INTR) and
non-maskable interrupts (NMI). When an interrupt occurs, the processor saves the current state and loads
the appropriate ISR (Interrupt Service Routine) from the Interrupt Vector Table located at the start of memory.
14. What is the role of the Control Unit in the Execution Unit of the 8086?
The Control Unit decodes the fetched instruction and generates control signals to orchestrate the execution
of the instruction using the ALU and registers. It ensures the synchronization and proper sequence of
15. What is the significance of the 16-bit flag register in the 8086?
The 16-bit flag register contains status and control flags used to reflect the outcome of operations and control
execution flow. These flags affect conditional jumps, loops, and interrupt handling, and are essential in
16. What are the different addressing modes supported by the 8086 microprocessor? Give 18. 19. 20.
What is the role of String Instructions in 8086? List some common string instructions.
The 8086 supports various addressing modes: Immediate, Register, Direct, Register Indirect, Based,
Indexed, Based-Indexed, and Relative. These modes allow flexibility in accessing operands.
String instructions perform operations on blocks of data and use registers SI and DI. Examples include
MOVS (move string), LODS (load string), STOS (store string), SCAS (scan string), and CMPS (compare
string).
17. Explain the arithmetic operations performed by the 8086. How does the processor handle
The 8086 performs arithmetic operations like ADD, SUB, INC, DEC, NEG, and CMP. For multiplication, it
uses MUL (unsigned) and IMUL (signed), and for division, DIV (unsigned) and IDIV (signed). The results are