microprocessor application (introduction)

45
06/16/22 1 Micro Processors and Applications

Upload: mukiibi-ismail

Post on 06-May-2015

304 views

Category:

Education


5 download

DESCRIPTION

Computers are not complicated device, They are not infinitely intelligent They do not think better than people. A computer can only do what a programs instruct through programs

TRANSCRIPT

Page 1: Microprocessor application (Introduction)

04/11/23 1

Micro Processors and Applications

Page 2: Microprocessor application (Introduction)

04/11/23 2

Introduction and Basics

Computers are not complicated device, They are not infinitely intelligent They do not think better than people. A computer can only do what a

programs instruct through programs A program is just a sequence of simple

commands that help a computer solve a problem

Computers execute instructions very fast .

Page 3: Microprocessor application (Introduction)

04/11/23 3

Basics The power and magic of a computer

lies in the speed at which it executes instructions without a mistake

The sequence of instructions executed per second are very many (millions steps) appears complicated altogether.

These are considered to be a series of very simple steps or commands

Page 4: Microprocessor application (Introduction)

04/11/23 4

Basics (Cont’n) The microprocessor is a simple integrated

circuit (IC). Or very small computer have the same commands or instructions they can perform.

The names used to describe the commands make them vary.

Microprocessors have commands that can, move data around, do maths (add,multiply etc) bring data in side the microprocessor from out side the system and also send it out side the system

Page 5: Microprocessor application (Introduction)

04/11/23 5

Basic A typical Microprocessor has three basic parts

inside it: the program counter (PC) ,memory and input/output (I/O).

The program counter keeps track of which program is to be executed

The memory contains commands to be executed. The I/O deals with transferring of data from and to

the out systems. Microprocessors are housed inside chips. A microprocessor encounter branches during

program execution.Both conditional and non conditional branches.

Page 6: Microprocessor application (Introduction)

04/11/23 6

Basics The most difficult part of

programming a microprocessor is to define the problem to solve.

This is called the logical thought process

It is a good understanding of the problem.

Page 7: Microprocessor application (Introduction)

04/11/23 7

Decimal, Binary and Hex Microprocessors use binary numbering

system rather than the decimals for counting ., and its why the computers are called binary computers.

Decimal is base 10 and binary is base 2. Hex-decimal is base 16.

The base of a system defines how many possible numbers can be in each digit positionDecimal: 0 to 9Binary: 0 or 1Hex 0 to 9, A, B C, D, E and F.

Page 8: Microprocessor application (Introduction)

04/11/23 8

Microprocessor Instructions

Microprocessors have instructions that they send. The decimal, binary and hexadecimal number indicated earlier are key to the instruction execution.

There are many kinds of memories in a system. There is the unrear memory called the flags.

These are single bit numbers that are used to indicate different conditions in a system.

Ther are flags coz they flag the program of events or conditiond

Page 9: Microprocessor application (Introduction)

04/11/23 9

Instructions If a flag is raised or has a 1 in it, then it is

said to be SET, otherwise if its 0 then it is said to b RESET

In 8-bit byte, referred to as bit 0 through 7, 0 is right most and the least significant bit(LSB) and 7 the most significant bit.

Inside a microprocessor there are many registers. These vary from one CPU to CPU. All have a register called the accumulator, sometimes called the A register.

Page 10: Microprocessor application (Introduction)

04/11/23 10

Instructions The accumulator is used in for

temporary results and is 8 bits wide or a byte .

In the CPU we will be using there are four types of instructions, with a number of variations. These four types are Arithmetic, Logical, Branching, and Data Transfer. We look at them independently next:

Page 11: Microprocessor application (Introduction)

04/11/23 11

Arithmetic These include, addition, subtraction,

multiplication division, incrementing and decrementing. In most early CPUs the multiplications and division are not available.

There are two flags used in Arithmetic that tell the program the outcome of an instruction.

These are- Carry (C) flag- Zero (Z) flag

the Z flag if set, indicates that the instruction left a value 0 in the accumulator.

Page 12: Microprocessor application (Introduction)

04/11/23 12

Logical These are also mathematical

instructions, and they include-OR, AND, XOR, ROTATE,

COMPLEMENT and CLEAR These commands are concerned

with the value or state of each bit in the data rather than the value of the data they work with.

Page 13: Microprocessor application (Introduction)

04/11/23 13

Branching These are jumps or branches that help

the program flow commands. They are termed differently depending on the way a jump is done or the condition under which it is done, e.g. overflow or underflow., zero result or not zero.

But all stop the normal sequential execution of the program, and jump to another location, other than the next instruction in sequence

Page 14: Microprocessor application (Introduction)

04/11/23 14

Data Transfer These use Moving and Exchanging Moving helps move data across

registers and memory Exchange is a variation on the

move instruction. Data is moved between two positions

Page 15: Microprocessor application (Introduction)

04/11/23 15

Memory and Addressing There are several different types of

memory in a micro. One is Program memory. This is where the program is

located. Another is Data memory. Where data, that might be used by

the program, is located.

Page 16: Microprocessor application (Introduction)

04/11/23 16

Memory and Addressing-cont’n

They both reside in the same memory space and can be changed by the program.

That’s right, a program can actually alter itself if that was necessary.

Two terms are used when talking about memory.

Reading (load) is getting a value from memory and Writing (store) is putting a value into memory.

Page 17: Microprocessor application (Introduction)

04/11/23 17

Types of Buses & their functions

There are three system buses associated with the memory subsystem.

address bus, data bus, control bus. It's important for you to know exactly how they

work, because these busses transport data and addresses everywhere within the system.

All these buses are connected to the memory system, which makes them interact with the microprocessors.

Page 18: Microprocessor application (Introduction)

04/11/23 18

Functions We have different types of microprocessors:

8085, 8086 and other more types…. In the 8085 microprocessor, the address bus

is 16-bits wide. It selects one of locations in the 216 memory locations.

The control bus determines whether this will be a read or a write

In the case of an instruction fetch, the control bus is set up for a read operation.

Data is read or written through the data bus, which is 8 bits wide. Explains why registers and memory is 8-bits wide.

Page 19: Microprocessor application (Introduction)

04/11/23 19

Bytes and Microprocessors A byte is the most used number in a

microprocessor because each memory location or register is one byte wide.

Memory has to be thought of as a sort of file cabinet with each location in it being a folder in the cabinet.

To get to each memory location, a different method is used, that is

a unique address is assigned to each location.

Page 20: Microprocessor application (Introduction)

04/11/23 20

Bytes In most microprocessors the

address is a word or 16 bits, or 4 digit hex.

This allows for a maximum of 65536 (216 or 64K) unique addresses or memory locations that can be accessed.

Page 21: Microprocessor application (Introduction)

04/11/23 21

Program Counter The Program Counter is what holds this

address when the microprocessor is executing instructions.

The reason instructions are read sequentially, is because the program counter automatically increments after fetching the current instruction.

It does this even before the current instruction is acted upon.

Page 22: Microprocessor application (Introduction)

04/11/23 22

Program Counter The sequence is that the program

counter's contents are placed on the memory address bus.

this allows the instruction to be fetched from memory through the data bus, and immediately the program counter is incremented by 1.

Then the microprocessor looks at the instruction and starts processing it

Page 23: Microprocessor application (Introduction)

04/11/23 23

8086 Microprocessor Program, data and stack memories occupy the

same memory space. The total addressable memory size is 1MB KB. As the most of the processor instructions use

16-bit pointers the processor can effectively address only 64 KB of memory.

To access memory outside of 64 KB the CPU uses special segment registers to specify where the code, stack and data 64 KB segments are positioned within 1 MB of memory

Page 24: Microprocessor application (Introduction)

04/11/23 24

8086 Microprocessor 16-bit pointers and data are stored as:

address: low-order byteaddress+1: high-order byte

32-bit addresses are stored in "segment:offset" format as:

address: low-order byte of segmentaddress+1: high-order byte of segmentaddress+2: low-order byte of offsetaddress+3: high-order byte of offset

Physical memory address pointed by segment:offset pair is calculated as:

address = (<segment> * 16) + <offset>

Page 25: Microprocessor application (Introduction)

04/11/23 25

8086 Memory Program memory - program can be

located anywhere in memory. Jump and call instructions can be used for

short jumps within currently selected 64 KB code segment, as well as for far jumps anywhere within 1 MB of memory.

All conditional jump instructions can be used to jump within approximately +127 to -127 bytes from current instruction.

Page 26: Microprocessor application (Introduction)

04/11/23 26

Memory-Cont’n Data memory - the processor can access data in

any one out of 4 available segments, which limits the size of accessible memory to 256 KB (if all four segments point to different 64 KB blocks).

Accessing data from the Data, Code, Stack or Extra segments can be usually done by prefixing instructions with the DS:, CS:, SS: or ES:

Some registers and instructions by default may use the ES or SS segments instead of DS segment.

Page 27: Microprocessor application (Introduction)

04/11/23 27

Memory- cont’n Word data can be located at odd or even byte

boundaries. The processor uses two memory accesses to

read 16-bit word located at odd byte boundaries. Reading word data from even byte boundaries requires only one memory access.

Stack memory can be placed anywhere in memory. The stack can be located at odd memory addresses, but it is not recommended for performance reasons.

Page 28: Microprocessor application (Introduction)

04/11/23 28

Reserved Locations Reserved locations:

0000h - 03FFh are reserved for interrupt vectors.

Each interrupt vector is a 32-bit pointer in format segment:offset.

FFFF0h - FFFFFh - after RESET the processor always starts program execution at the FFFF0h address.

Page 29: Microprocessor application (Introduction)

04/11/23 29

InterruptsThe processor has the following interrupts: INTR is a maskable hardware interrupt. The interrupt

can be enabled/disabled using STI/CLI instructions or using more complicated method of updating the FLAGS register with the help of the POPF instruction.

When an interrupt occurs, the processor stores FLAGS register into stack, disables further interrupts, fetches from the bus one byte representing interrupt type, and jumps to interrupt processing routine address of which is stored in location 4 * <interrupt type>.

Interrupt processing routine should return with the IRET instruction

Page 30: Microprocessor application (Introduction)

04/11/23 30

Interrupts NMI is a non-maskable interrupt. Interrupt is

processed in the same way as the INTR interrupt.

Interrupt type of the NMI is 2, i.e. the address of the NMI processing routine is stored in location 0008h.

This interrupt has higher priority than the maskable interrupt

Page 31: Microprocessor application (Introduction)

04/11/23 31

Software Interrupts Software interrupts can be caused

by: INT instruction - breakpoint interrupt. This is

a type 3 interrupt. INT <interrupt number> instruction - any

one interrupt from available 256 interrupts. INTO instruction - interrupt on overflow Single-step interrupt - generated if the TF

flag is set. This is a type 1 interrupt.

Page 32: Microprocessor application (Introduction)

04/11/23 32

Software Interrupts When the CPU processes this interrupt it

clears TF flag before calling the interrupt processing routine. Processor exceptions: divide error (type 0),

unused opcode (type 6) and escape opcode (type 7).

Software interrupt processing is the same as for the hardware interrupts.

I/O ports 65536 8-bit I/O ports. These ports can be also

addressed as 32768 16-bit I/O ports

Page 33: Microprocessor application (Introduction)

04/11/23 33

Registers Most of the registers contain

data/instruction offsets within 64 KB memory segment.

There are four different 64 KB segments for instructions, stack, data and extra data.

To specify where in 1 MB of processor memory these 4 segments are located the processor uses four segment registers:

Page 34: Microprocessor application (Introduction)

04/11/23 34

Segment Registers Code segment (CS) is a 16-bit register containing

address of 64 KB segment with processor instructions. The processor uses CS segment for all accesses to instructions referenced by instruction pointer (IP) register. CS register cannot be changed directly. The CS register is automatically updated during far jump, far call and far return instructions.

Stack segment (SS) is a 16-bit register containing address of 64KB segment with program stack. By default, the processor assumes that all data referenced by the stack pointer (SP) and base pointer (BP) registers is located in the stack segment. SS register can be changed directly using POP instruction.

Page 35: Microprocessor application (Introduction)

04/11/23 35

Segments Data segment (DS) is a 16-bit register containing

address of 64KB segment with program data. By default, the processor assumes that all data referenced by general registers (AX, BX, CX, DX) and index register (SI, DI) is located in the data segment. DS register can be changed directly using POP and LDS instructions.

Extra segment (ES) is a 16-bit register containing address of 64KB segment, usually with program data. By default, the processor assumes that the DI register references the ES segment in string manipulation instructions. ES register can be changed directly using POP and LES instructions.

Page 36: Microprocessor application (Introduction)

04/11/23 36

Analysis-segments It is possible to change default

segments used by general and index registers by prefixing instructions with a CS, SS, DS or ES prefix.

All general registers of the 8086 microprocessor can be used for arithmetic and logic operations.

Page 37: Microprocessor application (Introduction)

04/11/23 37

General Registers Accumulator register consists of 2 8-bit

registers AL and AH, which can be combined together and used as a 16-bit register AX. AL in this, it case contains the low-order byte of the word, and AH contains the high-order byte.

Accumulator can be used for I/O operations and string manipulation.

Base register consists of 2 8-bit registers BL and BH, which can be combined together and used as a 16-bit register BX. BL in this case contains the low-order byte of the word, and

Page 38: Microprocessor application (Introduction)

04/11/23 38

General Registers-cont’n contains the high-order byte. BX register usually

contains a data pointer used for based, based indexed or register indirect addressing.

Count register consists of 2 8-bit registers CL and CH, which can be combined together and used as a 16-bit register CX.

When combined, CL register contains the low-order byte of the word, and CH contains the high-order byte.

Count register can be used as a counter in string

manipulation and shift/rotate instructions.

Page 39: Microprocessor application (Introduction)

04/11/23 39

General Registers – Cont’n Data register consists of 2 8-bit registers DL

and DH, which can be combined together and used as a 16-bit register DX.

When combined, DL register contains the low-order byte of the word, and DH contains the high-order byte.

Data register can be used as a port number in I/O operations.

In integer 32-bit multiply and divide instruction the DX register contains high-order word of the initial or resulting number.

Page 40: Microprocessor application (Introduction)

04/11/23 40

Index Registers Stack Pointer (SP) is a 16-bit register pointing to

program stack. Base Pointer (BP) is a 16-bit register pointing to data

in stack segment. BP register is usually used for based, based indexed or register indirect addressing.

Source Index (SI) is a 16-bit register. SI is used for indexed, based indexed and register indirect addressing, as well as a source data address in string manipulation instructions.

Destination Index (DI) is a 16-bit register. DI is used for indexed, based indexed and register indirect addressing, as well as a destination data address in string manipulation instructions.

Page 41: Microprocessor application (Introduction)

04/11/23 41

Other Registers Instruction Pointer (IP) is

a 16-bit register. Flags is a 16-bit register

containing 9 1-bit flags: Overflow Flag (OF) - set if

the result is too large positive number, or is too small negative number to fit into destination operand.

Direction Flag (DF) - if set then string manipulation instructions will auto-decrement index registers. If cleared then the index registers will be auto-incremented.

Interrupt-enable Flag (IF) - setting this bit enables maskable interrupts.

Single-step Flag (TF) - if set then single-step interrupt will occur after the next instruction.

Sign Flag (SF) - set if the most significant bit of the result is set.

Zero Flag (ZF) - set if the result is zero.

Auxiliary carry Flag (AF) - set if there was a carry from or borrow to bits 0-3 in the register.

Page 42: Microprocessor application (Introduction)

04/11/23 42

Parity Flag (PF) - set if parity (the number of "1" bits) in the low-order byte of the result is even.

Carry Flag (CF) - set if there was a carry from or borrow to the most significant bit during last result calculation.

Page 43: Microprocessor application (Introduction)

04/11/23 43

Instruction Set-8086 8086 instruction set consists of the following

instructions: Data moving instructions. Arithmetic - add, subtract, increment, decrement, convert

byte/word and compare. Logic - AND, OR, exclusive OR, shift/rotate and test. String manipulation - load, store, move, compare and scan

for byte/word. Control transfer - conditional, unconditional, call subroutine

and return from subroutine. Input/Output instructions. Other - setting/clearing flag bits, stack operations, software

interrupts, etc.

Page 44: Microprocessor application (Introduction)

04/11/23 44

Addressing Mode Implied - the data value/data address is

implicitly associated with the instruction. Register - references the data in a register or

in a register pair. Immediate - the data is provided in the

instruction. Direct - the instruction operand specifies the

memory address where data is located. Register indirect - instruction specifies a

register containing an address, where data is located. This addressing mode works with SI, DI, BX and BP registers.

Page 45: Microprocessor application (Introduction)

04/11/23 45

Addressing Mode Based - 8-bit or 16-bit instruction operand is added to the

contents of a base register (BX or BP), the resulting value is a pointer to location where data resides.

Indexed - 8-bit or 16-bit instruction operand is added to the contents of an index register (SI or DI), the resulting value is a pointer to location where data resides.

Based Indexed - the contents of a base register (BX or BP) is added to the contents of an index register (SI or DI), the resulting value is a pointer to location where data resides.

Based Indexed with displacement - 8-bit or 16-bit instruction operand is added to the contents of a base register (BX or BP) and index register (SI or DI), the resulting value is a pointer to location where data resides.