1 / 45

Introduction to Motorola 6800

Introduction to Motorola 6800. Rabel Talpur:12BME#025. history. 40-pin chip Developed by Motorola in 1975 16 address lines and 8 data lines Used only +5V. 6800 architecture. Registers Arithmetic and Logic Unit Control Unit Program Counter Stack Pointer Status Flags.

pia
Télécharger la présentation

Introduction to Motorola 6800

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introduction to Motorola 6800 Rabel Talpur:12BME#025

  2. history • 40-pin chip • Developed by Motorola in 1975 • 16 address lines and 8 data lines • Used only +5V

  3. 6800 architecture • Registers • Arithmetic and Logic Unit • Control Unit • Program Counter • Stack Pointer • Status Flags

  4. registers A Accumulator A Accumulator B Index register X Program counter Stack pointer Condition code register B IX PC SP CC

  5. Accumulators • The micro processor unit contains 2 accumulators designed ACCA and ACCB. • Each accumulators is 8 bits (one byte) long and is used to hold operands and data from the arithmetic logic unit

  6. Index register • The index register (x) is a 16 bit (2 byte) register which is primarily used to store a memory address in the indexed mode of memory addressing. • The index register may be decremented, incremented and stored.

  7. Condition code register • The condition code register is an 8 bit register. each individual bit may get set or cleared from of an instruction. • Each instruction effects the condition code register differently. • The primary use of this register is execution of the conditional branch instruction.

  8. Arithmetic & logic unit • ALU is a digital circuit that performs integer arithmetic and logical operations. • It is fundamental building block of central processing unit.

  9. Control unit • It is a component of central processing unit which direct the operation of processor. • It control communication and co-ordination between i/o devices. • It reads interrupts instructions and determine the sequence for processing the data. • It performs the task of fetching, decoding, managing, execution and finally storing results.

  10. Program counter • Program counter contain the address of the memory containing the next instruction to be executed. • It is incremented automatically after each instruction • In 6800, it is a 16 bits register

  11. Stack pointer • Used to point to the memory location where all registers will be saved when an interrupt occurs • It is a 16 bit register, contain an address of a memory

  12. Characteristics of 6800 • 16 address wires =it can address 216 memory locations • It is an 8 bit microprocessor => 8 data bits • Speed up to 4 MHZ • Architecture

  13. Difference b/w 6800 & 8085

  14. MICROPROCESSOR 6800 BLOCK DIAGRAM OF 6800

  15. BLOCK DIAGRAM OF 6800

  16. BLOCK DIAGRAM OF 6800 INTERRUPTS • INTERRUPTS • IRO • mask able interrupt. When the interrupt occurs the program counter, index register, accumulators and condition code registers are stored in the stack, the further interrupts are disabled and the processor jumps to memory location address of which is stored in memory FFF8h - FFF9h. To return from the interrupt the processing routine should use RTI instruction. This interrupt can be enabled/disabled using CLI/SEI instructions. IRQ

  17. BLOCK DIAGRAM OF 6800 NMI • NMI non-maskable interrupt. When the interrupt occurs the program counter, index register, accumulators and condition code registers are stored in the stack, the further interrupts are disabled and the processor jumps to memory location address of which is stored in memory FFFCh - FFFDh. To return from the interrupt the processing routine should use RTI instruction. This interrupt can not be disabled.

  18. BLOCK DIAGRAM OF 6800 SWI • SWI • software interrupt. This interrupt can be only invoked from the program. When the interrupt occurs the processor stores the program counter, index register, accumulators and condition code registers in the stack, disables the further interrupts and jumps to memory location address of which is stored in memory FFFAh - FFFBh. To return from the interrupt the processing routine should use RTI instruction. This interrupt can not be disabled.

  19. BLOCK DIAGRAM OF 6800 I/O ports • None. • Accumulator A (ACCA) is an 8-bit register used for arithmetic and logic operations. • Accumulator B (ACCB) is an 8-bit register used for arithmetic and logic operations. REGISTERS

  20. BLOCK DIAGRAM OF 6800 • Index (IX) is a 16-bit register usually used for temporary storage or as an index when indexed addressing is used. • Program counter (PC) is a 16-bit register. • Stack pointer (SP) is a 16-bit register.

  21. BLOCK DIAGRAM OF 6800 Condition code register contains the following flags: • Condition code register contains the following flags: • Half carry (H) - set if there was a carry from bit 3 to bit 4 of the result when the result was calculated. • Interrupt mask (I) - set if the IRQ interrupt is disabled. • Negative (N) - set if the most significant bit of the result is set. • Zero (Z) - set if the result is zero. • Overflow (V) - set if there was an overflow during last result calculation. • Carry (C) - set if there was a carry from the bit 7 during last result calculation.

  22. BLOCK DIAGRAM OF 6800 • Instruction Set • 6800 instruction set consists of 72 instructions: • Data moving instructions. • Arithmetic - add, subtract, negate, increment, decrement and compare. • Logic - AND, OR, exclusive OR, complement and shift/rotate. • Control transfer - conditional, unconditional, call subroutine and return from subroutine. • Other - clear/set condition flags, bit test, stack operations, software interrupt, etc.

  23. BLOCK DIAGRAM OF 6800 • Addressing modes • Implied - the data value/data address is implicitly associated with the instruction. • Accumulator - the instruction implies that the data is one of the accumulator registers. • Immediate - 8-bit or 16-bit data is provided in the instruction.

  24. BLOCK DIAGRAM OF 6800 MEMORY • MEMORY • Program, size is 64 KB. data and stack memories occupy the same memory space. The total addressable memory . • DATA MEMORY • data can be anywhere in memory space. DATA MEMORY

  25. BLOCK DIAGRAM OF 6800 • program can be located anywhere in memory. Jump and subroutine call instructions can be used to jump anywhere in memory. PROGRAM MEMORY

  26. BLOCK DIAGRAM OF 6800 STACK MEMORY • STACK MEMORY • stack can be placed anywhere in memory space. • FFF8h - FFF9h: Pointer to IRQ interrupt-processing routine. • FFFAh - FFFBh: Pointer to software interrupt-processing routine. RESERVED MEMORY LOCATION

  27. BLOCK DIAGRAM OF 6800 • FFFCh - FFFDh: Pointer to NMI interrupt-processing routine. • FFFEh - FFFFh: Pointer to RESET handling code. • Some memory addresses may be reserved for memory mapped I/O as the processor doesn't have hardware I/O capability.

  28. INSTRUCTION SET MOTOROLA 6800 PRESENTED BY: MURK SALEEM 12BME19

  29. Group of instructions executed by microprocessor is called as: “INSTRUCTION SET”. • Motorola-6800 has 72 instructions.

  30. 1.ARITHMETIC INSTRUCTIONS

  31. Two`s compliment arithmetic is used in “MP6800” which allow us to take the 2’s compliment of a number. The negative instruction allows us to operate on a byte in memory without first fetching the operand from memory. In the past, we have loaded the operand, performed operation and then stored the new operand

  32. 2. DATA HANDLING INSTRUCTIONS:

  33. “CLEAR” instruction allows us to clear a memory or either accumulator. In the past, we have cleared bytes of first clearing the accumulator then storing the result in the proper memory location. However, the CLR instruction allows us to clear a memory location with a single instruction.

  34. “TRANSFER ACCUMULATOR” copies the contents of accumulator A or B. After this instruction is executed, the number originally present in any accumulator(eg: A) will be in both accumulators.

  35. 3. LOGIC INSTRUCTIONS:

  36. 4. DATA TEST INSTRUCTIONS:

  37. “BIT TEST” this instruction is very similar to the AND instructions. In both cases, the contents of the specified accumulator are ANDed with the contents of the selected memory location. The difference is that with the bit test instruction no logical product is produced. Neither the contents of the accumulator nor memory are altered in any way. However condition code are affected just as if the AND operation had taken place. Consider BITA instruction, when executed, A is ANDed with M. If result is 0000, the Z register is set. Otherwise, the Z register is cleared.

  38. 5. INDEX REGISTER AND STACK POINTER INSTRUCTIONS: The index and stack pointer are 16-bit registers. That allow us to control the operation of these registers. Because of the 16-bit format, the load, store, and compare instructions are slightly different.

  39. The “COMPARE REGISTER” instruction allows us to compare the 16-bit number in the index register with any two consecutive bytes in memory. (as index register hold two bytes). The higher byte is defined as “” while the lower byte is defined as “”. When the CPX instruction is executed, “” is compared with 8-byte in the specified memory location (M) and “” is compared with byte immediately following the specified memory location (M+1).

  40. 6.BRANCH INSTRUCTIONS: Condition code register contains the following flags: Half carry (H) - set if there was a carry from bit 3 to bit 4 of the result when the result was calculated. Interrupt mask (I) - set if the IRQ interrupt is disabled. Negative (N) - set if the most significant bit of the result is set. Zero (Z) - set if the result is zero. Overflow (V) - set if there was an overflow during last result calculation. Carry (C) - set if there was a carry from the bit 7 during last result calculation.

  41. 7. CONDITION CODE REGISTER:- The 6800 uses these instructions in order to direct access the condition codes.

More Related