ECE 265 – LECTURE 7 The M68HC11 Basic Instruction Set Logical, Shift and Rotate, Data Testing 8/14/ ECE265
Lecture Overview The M68HC11 Basic Instruction Set The Logical instructions to perform Boolean operations The Data Testing The Shift and Rotate instructions REF: Chapter 3 and the appendix that details the instructions. 8/14/ ECE265
The Logical Instructions Instructions to perform Boolean operations on data Instructions for AND NOT and OR operation 8/14/2015ECE265 3
AND operation Description: AND the A (or B) accumulator with the operand of the instruction CC effects: N Z set per result Forms: ANDA (opr) ANDB(opr) And can be immediate mode or a memory location ANDA #$FF What does this do? ANDB #$00 What does this do? 8/14/2015ECE265 4
AND operation and masking Masking is keeping only those bits you are interested in. The reaming bits are “masked” out. Example ANDA #$0F Keep the lower 4 bits of accum A If the A accumulator contains a value of $34 Then this operation is A AND-ed with giving /14/2015ECE265 5
OR operation Description: OR the A (or B) accumulator with the operand of the instruction CC effects: N Z set per result Forms: ORA (opr) ORB(opr) And can be immediate mode or a memory location ORAA #$FF What does this do? ORAB #$00 What does this do? 8/14/2015ECE265 6
Exclusive OR operation Description: Exclusive OR the A (or B) accumulator with the operand of the instruction CC effects: N Z set per result Forms: EORA (opr) EORB(opr) And can be immediate mode or a memory location EORA #$FF What does this do? EORB #$00 What does this do? 8/14/2015ECE265 7
The NOT or invert operation Description: Can complement a complete byte in an accumulator or memory. This is a bitwise complement. CC effect: N V set per data, V cleared, C set Forms: COMA COMB COM (opr) 8/14/2015ECE265 8
Examples Example instructions Accum A has val $1C Memory $D330 val $2F (a) ANDA $D330 (b) EORA $D330 (c) ORAA $D330 8/14/2015ECE265 9
Data Testing Instructions Will cover the Bit Test and Setting and Clearing of bits. The branch will be covered with branches. 8/14/2015ECE265 10
Bit test Description: Compare the operand with the accumulator contents and set the CC bits. Performs a bitwise logical AND. CC effects: N Z eval V cleared Forms: BITA (opr) BITB (opr) If operand is equal to accumulator Z is set See Appendix A of text for a complete description 8/14/2015ECE265 11
Clear and set bits in memory Description: Set or Clear bits in memory according to a mask given in the instruciton. CC effects: N Z V cleared Forms: BSET (opr) (mask) BCLR (opr) (mask) Example BSET $0035 $09 Performs a logical OR of the contents of location $35 With $09 and puts the result back in the location. This example will set bits 0 and 3 of the data byte. 8/14/2015ECE265 12
Shift and Rotate Instructions The instructions perform arithmetic and logical shifts and also rotate the data. 8/14/2015ECE265 13
The effect of shift and rotates What do the instructions do? 8/14/2015ECE265 14
What is the real effect of Arithmetic shifts? Do arithmetic shifts have the effect of multiplicaiton? Unique aspects of logical shifts Can also do double shifts 8/14/2015ECE265 15
The instructions Arithmetic Shifts ASL (opr) ASLA ASLB ASLD ASR (opr) ASRA ASRB Logical Shifts LSL (opr) LSLA LSLB LSLD LSR (opr) LSRA LSRB LSRD Rotates ROL (opr) ROR (opr) ROLA ROLB RORA RORB There is no rotate of D 8/14/2015ECE265 16
Example of use Interesting data manipulation 8/14/2015ECE265 17
Example of use Exchange the upper and lower nibbles of a byte in memory. 8/14/2015ECE265 18
Lecture summary 8/14/2015ECE Have covered The Logical instructions to perform Boolean operations The Data Testing The Shift and Rotate instructions
Assignment 8/14/2015ECE Problems Chapter 3 page 87 Problem 19 Problem 21