320 likes | 467 Vues
This chapter provides a foundational understanding of digital computers, programs, and the concept of machine language. It explains how computer architecture relates to programmer access and how organization pertains to the implementation of architecture. The text also covers memory organization, including memory types like ROM and RAM, and details addressing modes in assembly language programming for the HCS12 microcontroller. Examples of simple programs and their op-codes are provided to illustrate the instruction set and its use in programming.
E N D
Physics 413Chapter 1: Introduction to the HCS 12 Microcontroller
Computer Architecture • What is a Digital Computer ? A computer is essentially a fast electronic calculating machine. • What is a program ? A program is a set of very simple instructions that a computer can understand. Examples of simple instructions are ADD two numbers, Is X > Y?, COPY A into the memory. • What is Machine Language ? The set of exceedingly simple and primitive instructions that a computer can understand is called the Instruction Set or Machine Language.
Architecture and Organization • Computer Architecture deals with the design of those components of a computer that are accessible to a programmer. For instance, the Motorola 6800 does not have a MUL instruction but the Pentium does. • Computer Organization deals with the implementation of the architecture and may be transparent to the programmer. For instance, precisely how is MUL implemented in the hardware?
Levels of Abstraction • L5 High‑level Language (C++, Java) • L4 Assembly Language • L3 Operating System • L2 Instruction Set Architecture (ISA) • L1 Microarchitecture Level • L0 Digital Logic Level • Transistors
A Brief History of Computers • First Generation ‑ Vacuum Tubes ‑ 1945‑1955 ENIAC (Electronic Numerical Integrator and Computer) had 18,000 Vacuum Tubes, 1500 relays and weighed 30 tons • Second Generation ‑ Transistors ‑ 1955‑65 ‑ PDP ‑8 (DEC) • Third Generation ‑ IC ‑ 1965‑80 ‑ IBM 360 • Fourth Generation ‑ VLSI ‑ Intel and AMD Processors
Moore’s Law The number of transistors on a chip doubles every 18 months
All about microprocessors and microcontrollers • ROM is where the program that initializes the PC is stored. • RAM access is fast • ADDRESS BUS carries the address of RAM, ROM, and other peripherals • HCS12 has 16 multiplexed address and data lines • DATA BUS carries data back and forth between the microprocessor and RAM, ROM, and other peripherals.
Memory • Big Endian: 4 bytes arranged as:0123 (32‑bit word) • Little Endian: 4 bytes arranged 3210 (32‑bit word) • DRAM Organization • nxn matrix structure is popular for large memory sizes • RAS ‑ Row Address Strobe • CAS ‑ Column Address Strobe • RAS ‑ CAS strategy reduces the number of pins but slows down access because two addressing cycles are required • SRAM Fast for cache
ROM • ROM • PROM • EPROM ‑ UV erasable • EEPROM ‑ Electrically erasable byte at a time • FLASH ‑ electrical block erasable ‑ digital film ‑ more like RAM!
HCS12 Data Sheet http://www.freescale.com/files/microcontrollers/doc/data_sheet/HCS12DFAMILYPP.pdf
HCS12 Architecture A B A + B = D X Y SP PC CCR
Straight-line Programming In Paris they simply stared when I spoke to them in French ; I never did succeed in making those idiots understand their own language Mark Twain , The Innocents Abroad, 1869
My First Program • CLRA Clears accumulator A ( A = 0 ) • INC A This instruction does this: A + 1 A • SWI Stop (software interrupt)
Op-codes Assembly LanguageMemory LocationOp-codes CLRA 2000 87 INCA 2001 42 SWI 2002 3F
My Second Program LDAA # $ 12 ADDA # $ 15 SWI
Object Code . . . Program # 2 Assembly LanguageMemory LocationOp-codes LDAA # $ 12 2000 86 2001 12 ADDA # $ 15 2002 8B 2003 15 SWI 2004 3F
Addressing Modes • Inherent (implied) : Simplest with no operand. One-byte op-code. Examples: INCA and CLRA • Immediate : Operand specified is immediate (no memory access). Examples: LDAA # $ 12 and ADDA # $ 15
Immediate and Direct Modes • Immediate LDAA # $ 12 Load the hex number 12 • op-code 86 12 • Direct LDAA $ 12 Load from memory location 0012 • op-code 96 12
My Third Program Assembly LanguageMemory LocationOp-codes LDAA # $ 04 STAA $ 15 LDAA # $ 08 ? ? ADDA $ 15 SWI
My Third Program Assembly LanguageMemory LocationOp-codes LDAA # $ 04 2000 86 04 STAA $ 15 2002 97 15 LDAA # $ 08 2004 86 08 ADDA $ 15 2006 9B 15 SWI 2008 3F
Extended Addressing Mode • The extended addressing mode becomes indispensable when memory locations beyond the zero page must be addressed. [This is the case for the HCS12 on the Dragon12 Board in the lab] • Here, as always, an example is worth a thousand words: • LDAA $3C5E Load A from memory location 3C5E • Op-codes B6 3C 5E
Three Trick Questions • What is the outcome of B6 00 2A ? • What is the outcome of LDAA # $ 3C5E ? • What is the outcome of STAB $3C44 ?
Trick Questions . . . Answered! • What is the outcome of B6 00 2A ? Legal but not very smart. • What is the outcome of LDAA # $ 3C5E ? Not Legal • What is the outcome of STAB $3C44 ? O.K. and op-code is F7 3C 44
Index Register X is a 16-bit register How are the following three instructions different? LDX # $ 5C42 LDX $ 5C42 LDX $ 5C
Index Register • LDX #$ 5C42 The number 5C42 is loaded into X • LDX $ 5C42 Numbers from 5C43 and 5C42 loaded • LDX $ 5C Numbers from 005D and 005C loaded
Indexed Addressing Mode LDAA 0,X loads accumulator A with the contents of the memory location pointed to by the index register X. LDAA 4,X loads accumulator A with the contents of the memory location pointed to by X+4
Transfer and Exchange! • TFR D,X transfers the contents of D to X • TFR X, B transfers bits 0-7 of X to B • EXG A,B swaps A and B
Move it! • Memory to memory transfer • movb $1000,$2000 copies the (8-bit)contents of memory location $1000 to the memory location $2000 • movw0,X,0,Ycopies the 16-bit word pointed to by X to the memory location pointed to by Y.
Examples Galore • ADDA The outcome is A + M A • ADDA # $ 2B8B 2B • ADDA $ 3C9B 3C • ADDA $ 5B24AB 5B 24
Carry Bit in CCR • ADCA The outcome is A + M + C A • Use this instruction when expecting a carry. Incidentally, CLC will clear the carry bit.
Indexed Addressing Mode LDX # $ 0050 LDAA 0,X ADDA 1,X SWI Program adds two numbers stored in memory locations 0050 and 0051
D-bug12 Assembler ASM 2000 Begin assembly at address 2000 End Assembly LOAD Load S-Records into memory MD Memory Display MM Modify Memory RD Display CPU registers RM Modify CPU Register Contents PC 2000 loads 2000 into PC T Trace (single-step)