0% found this document useful (0 votes)
25 views

Microprocessors Module 1 Summary

The document provides an introduction to microprocessors, detailing their main tasks, historical development, and key terminology. It covers the evolution from mechanical devices to modern microprocessors, including significant milestones such as the invention of the first microprocessor, the Intel 4004, and the advancements in programming languages. Additionally, it explains the architecture of the 8086 microprocessor, its functional units, and various addressing modes used in instruction execution.

Uploaded by

ernest
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
25 views

Microprocessors Module 1 Summary

The document provides an introduction to microprocessors, detailing their main tasks, historical development, and key terminology. It covers the evolution from mechanical devices to modern microprocessors, including significant milestones such as the invention of the first microprocessor, the Intel 4004, and the advancements in programming languages. Additionally, it explains the architecture of the 8086 microprocessor, its functional units, and various addressing modes used in instruction execution.

Uploaded by

ernest
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

INTRODUCTION TO MICROPROCESSORS (LESSON 1)

MICROPROCESSOR – also referred to as the CPU, the controlling element in a computer


system.

 Performs 3 MAIN TASKS:


1. Data transfer between itself and the memory or the I/O systems.
2. Simple arithmetic and logic operations.
3. Program flow via simple decisions.

HISTORICAL BACKGROUND
Mechanical Age.

 500 BC: Babylonians invented the Abacus.


 1642: Blaise Pascal invented a calculator with gears and wheels.
Electrical Age.

 1889: Herman Hollerith developed the punch card for storing data
 Punch cards were used in early computer systems are referred to as Hollerith
Cards w/ a 12-bit code called Hollerith Code.
 1946: ENIAC – The 1st general-purpose, programmable electronic computer
system with vacuum tubes was developed at the University of Pennsylvania.
 1947: The development of transistor at Bell Labs by John Bardeen, William Shockley,
and Walter Brattain.
 1958: The invention of integrated circuit by Jack Kilby.
Programming Advancements.

 Machine Language: The 1st such language, replaced the practical rewiring of circuits
and began the programming revolution.
 John Von Neuman: 1st person to develop a system that accepted instructions and
stored them in memory.
 Assembly Language: This language simplified programming using mnemonic codes.
UNIVAC use this language in the early 1950s.
 1957: High level programming language.
- FLOW-MATIC: Invented by Grace Hopper.
- FORTRAN (FORmula TRANsistor): developed by IBM.
 COBOL: The 1st successful and widespread programming language for business
applications.
Microprocessor Age.

 INTEL 4004(1971): World’s 1st microprocessor and has a 4-bit microprocessor-


programmable controller.
 INTEL 8080((1973): The 1st modern 8-bit microprocessor and was used in MITS
ALTAIR 8800 one of the 1st personal computers.
 INTEL 8086(1978) and INTEL 8088(1979): These devices have 16-bit
microprocessors which executed at least 2.5 million of instruction per second.
These two led many sophisticated applications which improved the Instruction Sets of
their predecessors.

MOORE’S LAW – Named after the co-founder of Intel, Gordon Moore. Transistor count in
dense circuit doubles every 2 years.

TERMINOLOGY
1. BIT – A digit of the binary number or code.
2. NIBBLE – The 4-bit binary number or code.
3. BYTE – The 8-bit binary number or code.
4. WORD – The 16-bit binary number or code.
5. DOUBLE WORD – The 32-bit binary number or code.
6. Data – The quantity (binary number/code) operated by an instruction of a program.
7. Address – This is an identification number in binary for memory locations.
8. Memory Word Size – The size of binary information that can be stored inn a memory
location.
9. Bus – Is a group of conducting lines that carries data, address, and control
signals.
 3 Classification of Busses
 Data Bus.
 Address Bus.
 Control Bus.
10. CPU bus – The group of conducting lines that are directly connected to the
microprocessor.
11. System Bus- The group of conducting lines that carries data, address, and control
signals in a microcomputer system.
12. RISC Processor – Reduced Instruction Set Computer. Designed to reduce the
execution time by simplifying the instruction set of the computer.
13. CISC Processor – Complex Instruction Set Computer. Designed to minimize the
number of instructions per program, ignoring the number of cycles per instruction.

BUS CONNECTIONS
I. MWTC – Memory Write Control.
II. MRDC – Memory Read Control.
III. IOWC – I/O Write Control.
IV. IORC – I/O Read Control.

8086 MICROPROCESSOR ARCHITECTURE (LESSON 2)


INTRODUCTION
Microprocessor – a program-controlled semiconductor IC which fetches (from memory),
decodes, and executes instructions.

 Basic Functional Blocks of a Microprocessor:


1. Arithmetic Logic Unit (ALU) – The computational unit of the
microprocessor which performs the arithmetic and logical operations on
binary data.
2. Flag Register – Stores the status of the various computational results
from the ALU.
3. Register Array – The internal storage device and is also called as the
internal memory. Input and output data for the ALU and other binary
information needed for processing are stored in the register array.
4. Instruction Decoding Unit – Decodes the instruction codes sent by the
memory from the data bus. It sends Information to the timing and
control unit.
5. PC/IP – Generates the address of the instructions to be fetched from the
memory and sends it through the address bus to the memory.
6. Timing and Control Unit – Generates the necessary control signals for
internal and external operations of the microprocessor.

8086 MICROPROCESSOR – Has a pipelined architecture. The processor will have several
functional units and the execution time of each unit overlaps. Each functional unit works
independently most of the time.
2 Functional Units of 8086:
1. Bus Interface Unit (BIU).
- Contains the segment registers, instruction pointer, instruction queue, address
generation unit, and bus control unit.
- Contains instruction queue, which is a FIFO (First-in-First-Out) group of
registers.
- Gets up to 6 bytes of instructions and stores them in the instruction queue.
- Pipelining – fetching the next instruction while the current instruction executes.
- BIU has 4 segment buses:
1. Code Segment (CS) Register.
2. Data Segment (DS) Register.
3. Stack Segment (SS) Register.
4. Extra Segment (ES) Register.
- The 4 segment registers are used to hold 4 segment base addresses.
- The contents of the segment registers are programmable.

2. Execution Unit (EU).


 Gives instruction to the BIU stating from where to fetch the data and decode and
execute those instructions
 Consists of the ALU, flag register, and general-purpose register.
 A decoder in the EU control system translates the instructions.
 There is a 16-bit ALU to perform arithmetic and logical operations.
 The general purpose-registers can be used for data storage, when they are not
involved in special functions assigned to them.
 There are 8 16-bit general-purpose registers, the AX, BX, CX, DX, SP, BP, SI, and
DI.

 The Flag Register of the 8086 is 16-bit and 9 of those bits are defined as flags.
 The six flags are used to indicate the status of the result of the arithmetic or logical
operations and are called the conditional flags.
1. Zero Flag – It is set to 1 if the result is zero and is cleared to zero to any non-
zero result.
2. Sign Flag – It is set to 1 if the most significant bit of the result is 1 and is
cleared to zero for a non-negative result.
3. Overflow Flag – It is set to 1 if the size of the result exceeds the capacity of
the destination location.
4. Carry Flag – It is set to 1 if there is a carry from the addition or borrow from
the subtraction.
5. Parity Flag – It is set to 1 if the result has even parity and is cleared to zero
for odd parity.
6. Auxiliary Flag – It set to 1 if there is a carry from low nibble to high nibble of
the low order 8-bit of 16-bit number.
 The three flags are used to control the processor operations and are called control
flags.
1. Trace Flag – It is set to 1 to place the 8086 in the single-step mode.
2. Interrupt Flag – It is set to 1 to cause the 8086 to recognize external
maskable interrupts and cleared to zero to disable the interrupts.
3. Direction Flag – It is set to 1 for autodecrement and is cleared to zero for
autoincrement of SI and DI registers during string data accessing.
8086 MICROPROCESSOR ADDRESSING MODES (LESSON 3)

INTRODUCTION
The job of the microprocessor is to execute a set of instructions stored in memory to perform
specific task. These operations require the following:
1. The operator or opcode – which determines what will be done.
2. The operand – which defines the data to be used in the operation.

THE MOV INSTRUCTION

 The most important command in the 8086 microprocessors.


 It moves data from one location to the other (from source to destination).
 Referred to as the copy instruction.

QUICK REVIEW AND TERMINOLOGIES


1. The 8086 is a 16-bit microprocessor. Other features are:
- The size of the data registers is 16-bit (AX, BX, CX, DX, SI, DI, SP, BP).
- The address bus is 20-bits long.
- The memory can be accessed up to 1MB
2. The “register” or “register + constant” enclosed by square brackets [] in the operands
refer to the method of effective address calculation of memory.
3. The 16-bit constant enclosed by square brackets in the operands refer to the effective
address of memory data.
4. The 8-bit/16-bit constants which are not enclosed by square brackets in the operands
refer to immediate data.
5. The term MA refers to the physical memory address of the data segment, MAS refers to
the physical memory address of the stack segment, and the MAE refers to the physical
memory address of the extra segment.
6. For hexadecimal constants (data/address), the letter H is included at the end of the 8-
bit/16-bit constants. The numeral 0 is included in the front of the hexadecimal
constants starting with A through F.

ADDRESSING MODES – The methods to designate the effective address of these operands or
get them directly from the register.

 7 Fundamental Addressing Modes:


1. Register Addressing Mode
- The instruction will specify the name of the register which holds the
data to be operated by the instruction.
- The most common form of data addressing.
- Never mix an 8-bit register with a 16-bit register and vice versa.
- MOV BX, DX
2. Immediate Addressing Mode
- An 8-bit or 16-bit data is specified as part of the instruction.
- Immediately follow the opcode into memory.
- MOV AX, 1345H
3. Direct Addressing Mode
- An unsigned 16-bit displacement or signed 8-bit displacement will
be specified in the instruction.
- The displacement is the effective address or offset.
- 20-bit physical memory address is calculated by multiplying of the
DS register.
- 8-bit is the size limit of the operand.
- MOV DX, [08H]
4. Register Indirect Addressing Mode
- The name of the register which holds the effective address (EA)
will be specified in the instruction.
- The registers used to hold the EA are the BX, BP, SI and DI
registers.
- Allows data to be addressed at any memory location through an
offset address.
- MOV CX, [BX]

5. Based Addressing Mode


- The BX or BP register is used to hold a base value for the effective
address and a signed 8-bit or unsigned 16-bit displacement will
be specified in the instruction.
- Recall when BX is used, the MA is calculated using DS. When BP
is used, the MA is calculated using SS.
- MOV AX, [BX + 08H]
6. Indexed Addressing Mode
- the SI or DI register is used to hold an index value for memory and
a signed 8-bit or unsigned 16-bit displacement will be specified
in the instruction.
- the EA = Reference + Modifier.
- MOV CX, [SI+0A2H]
7. Based Index Addressing Mode
- The effective address is given by the sum of the base value,
index value, and an 8-bit or 16- bit displacement specified in the
instruction.
- The base value is stored in the BX/BP register. The index value is
stored in the SI/DI register.
- In case of an 8-bit displacement, it is sign extended to 16-bits before
adding to the base value.
- This type of addressing will be useful in addressing two
dimensional arrays where two modifiers are required.
- MOV DX, [BX+SI+0AH]

You might also like