Microprocessor Architecture and
Concepts
a) Internal Architecture of 8086 Microprocessor
The 8086 microprocessor has a 20-bit address bus and 16-bit data bus, allowing it to
address up to 1MB of memory. It consists of two main units:
1. Bus Interface Unit (BIU): Handles all data and address transfers on the buses. It also
performs instruction fetching.
2. Execution Unit (EU): Decodes and executes instructions fetched by the BIU.
The BIU contains the instruction queue, segment registers, and address generation circuitry.
The EU contains the ALU, general-purpose registers, flag register, and instruction decoder.
a) Stack Memory Addressing Modes
Stack memory addressing modes refer to accessing data through the stack using specific
instructions like PUSH, POP, CALL, and RET. These operations use the Stack Pointer (SP)
and Base Pointer (BP) registers along with the Stack Segment (SS) register.
- PUSH: Decreases SP by 2 and stores data on the stack
- POP: Retrieves data from the stack and increases SP by 2
- CALL: Pushes the return address on the stack
- RET: Pops the return address from the stack
b) Block Diagram of Microprocessor-Based Personal Computer System
A microprocessor-based personal computer system typically includes:
- Microprocessor (CPU)
- Memory (RAM and ROM)
- Input devices (keyboard, mouse)
- Output devices (monitor, printer)
- Storage devices (hard disk, SSD)
- System buses (data bus, address bus, control bus)
- I/O ports
These components are interconnected to facilitate data communication and processing.
a) Program Memory Addressing Modes
Program memory addressing modes in 8086 specify how the operand of an instruction is
chosen. Common modes include:
- Immediate Addressing: Operand is part of the instruction. e.g., MOV AX, 1234H
- Direct Addressing: Operand is in memory and its address is given. e.g., MOV AX, [1234H]
- Register Addressing: Operand is in a register. e.g., MOV AX, BX
- Register Indirect: Address of operand is in a register. e.g., MOV AX, [BX]
- Indexed and Base-Indexed: Combines registers with displacement values to calculate
address.
a) BCD Instructions in 8086
BCD (Binary-Coded Decimal) instructions in 8086 are used to perform operations on BCD
numbers. Examples include:
- AAA (ASCII Adjust after Addition)
- AAS (ASCII Adjust after Subtraction)
- AAM (ASCII Adjust after Multiply)
- AAD (ASCII Adjust before Division)
- DAA (Decimal Adjust after Addition)
- DAS (Decimal Adjust after Subtraction)
These instructions help ensure the result of arithmetic operations is a valid BCD number.
b) Computer Data Formats
Computer data formats define how data is represented and stored. Common formats
include:
- Binary: Basic format using 0s and 1s
- Octal and Hexadecimal: More compact representations of binary
- ASCII: Represents text using numeric codes
- Unicode: Extended character set for global text representation
- Floating Point: Represents real numbers using mantissa and exponent
- Integer: Represents whole numbers