Programming 68HC11
Steps in programming MPU START FETCH TO CODE DECODE OP CODE FETCH OPERAND ADDRESS IF ANY EXECUTE THE INSTRUCTION
Programming Language machine Machine Language Hex Machine language 10110110 B6 11000011 C3 00000000 00 10111011 BB 11100000 E0 11111111 FF 11000111 B7 11010100 C4 10101010 AA
$ indicate that the address is in hex LDAA load accumulator A B6 STAA store accumulator A B7 ADDA add to accumulator A BB SUBA subtract to accumulator A B0 WAI halt 3E JMP jump 7E BEQ branch if equal to zero 27
Jump branch instruction Memory Address hex Memory word hex Mnemonic Description C100 48 ASLA Shift A left 1 bit C101 7E JMP JUMP to C15F for the next instruction C102 C1 ADDRESS OF THE NEXT INSTRUCTION C103 5F C104 C105 … C15F B7 STAA STORE IN MEMORY LOCATION C300 C160 C3 ADDRESS OF THE LOCATION WHERE THE CONTENTS OF A WILL B STORED C161 00
Branch Equal to Zero (BEQ) instruction Memory Address hex Memory word hex Mnemonic Description C200 BO SUBA Shift A left 1 bit C201 C2 JUMP to C15F for the next instruction C202 9B ADDRESS OF THE NEXT INSTRUCTION C203 27 BEQ RESULT OF THE LAST OPERATION IS ZERO BRANCH TO C219 C204 14 IF NOT GO TO C205 OFSET = 1416 C205 … ?? ? PC = C205 + OFSET 14 C219 B7 STAA STORE IN ADDRESS C127 C21A C1 C21B
Terms Offset determines MPU’s next instruction C1, 00 address of operand X C1, 01 address of operand Y C1, 02 address where the contents of the accumulator A will be stored C1, 5F address of next instruction C3, 00 address of location where the contents of A will be stored
Assembly language source program Memory address Instruction mnemonic Comments C200 LDAA $D0FF Get first the data word C203 ADDA $D500 Add second data word C206 STAA $D700 Store sum in memory
LDAA code Source Code Object Code B6 D0 FF LDAA $D0FF
Assembly process typical steps The online assembler program is loaded into the computer’s internal RAM’s (unless it is already in ROM) The programmer loads the assembly language source program into the computer’s RAM, either from the keyboard or an external memory unit (like when using ASCII code for the characters)
Continuation The computer then is commanded to execute the one-line assembler program The computer executes the one-line assembler program which converts source code instruction such as LDAA $D0FF into object code that I places into RAM Once instruction is placed in RAM the program then can be stored in disk for later use
Continuation The object program can now be executed since it is in the executable machine.
High level languages BASIC FORTRAN TURBO C++
Flowchart no yes Start Initialize COUNT=7 Initialize RESULT=0 Read data byte from sensor Add to RESULT Decrement COUNT Is count =0 ? no yes Store result in memory stop
Problems How many consecutive location does an 8 bit microcomputer store a 48 bit word? Answer 48 bit / 8 bit 6 consecutive memory location
A certain 32 bit computer has the following instruction word format: Op code Operands address 8 bits 16 bits How many different instructions can this instruction word specify? How many different memory addresses can it specify? What internal memory capacity would this computer require to operate at full capacity? Answer a) 256 bits b) 65536 c) 65536
During the LDAA instruction data are taken from__________ and transferred to ___________ Memory location STAA