Microprocessor application (Introduction)

865 views
713 views

Published on

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

Published in: Education
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
865
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
49
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

Microprocessor application (Introduction)

  1. 1. 06/02/14 1 Micro Processors and Applications
  2. 2. 06/02/14 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 .
  3. 3. 06/02/14 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
  4. 4. 06/02/14 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
  5. 5. 06/02/14 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.
  6. 6. 06/02/14 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.
  7. 7. 06/02/14 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 position Decimal: 0 to 9 Binary: 0 or 1 Hex 0 to 9, A, B C, D, E and F.
  8. 8. 06/02/14 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
  9. 9. 06/02/14 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.
  10. 10. 06/02/14 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:
  11. 11. 06/02/14 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.
  12. 12. 06/02/14 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.
  13. 13. 06/02/14 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
  14. 14. 06/02/14 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
  15. 15. 06/02/14 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.
  16. 16. 06/02/14 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.
  17. 17. 06/02/14 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.
  18. 18. 06/02/14 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.
  19. 19. 06/02/14 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.
  20. 20. 06/02/14 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.
  21. 21. 06/02/14 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.
  22. 22. 06/02/14 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
  23. 23. 06/02/14 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
  24. 24. 06/02/14 24 8086 Microprocessor  16-bit pointers and data are stored as: address: low-order byte address+1: high-order byte  32-bit addresses are stored in "segment:offset" format as: address: low-order byte of segment address+1: high-order byte of segment address+2: low-order byte of offset address+3: high-order byte of offset  Physical memory address pointed by segment:offset pair is calculated as:  address = (<segment> * 16) + <offset>
  25. 25. 06/02/14 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.
  26. 26. 06/02/14 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.
  27. 27. 06/02/14 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.
  28. 28. 06/02/14 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.
  29. 29. 06/02/14 29 Interrupts The 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
  30. 30. 06/02/14 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
  31. 31. 06/02/14 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.
  32. 32. 06/02/14 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
  33. 33. 06/02/14 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:
  34. 34. 06/02/14 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.
  35. 35. 06/02/14 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.
  36. 36. 06/02/14 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.
  37. 37. 06/02/14 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
  38. 38. 06/02/14 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.
  39. 39. 06/02/14 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.
  40. 40. 06/02/14 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.
  41. 41. 06/02/14 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.
  42. 42. 06/02/14 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.
  43. 43. 06/02/14 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.
  44. 44. 06/02/14 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.
  45. 45. 06/02/14 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.

×