| 6809 Instruction Set | ||||||||||||||||||||||
| Instruction | Mnemonic | Addressing Mode | Description | CC bit | ||||||||||||||||||
| Immediate | Direct | Indexed | Extended | Inherent | 5 | 3 | 2 | 1 | 0 | |||||||||||||
| Op | ~ | # | Op | ~ | # | Op | ~ | # | Op | ~ | # | Op | ~ | # | H | N | Z | V | C | |||
| ABX | 3A | 3 | 1 | X = B+X (Unsigned) | ||||||||||||||||||
| ADC | ADCA | 89 | 2 | 2 | 99 | 4 | 2 | A9 | 4+ | 2+ | B9 | 5 | 3 | A = A+M+C | + + |
+ + |
+ + |
+ + |
+ + |
|||
| ADCB | C9 | 2 | 2 | D9 | 4 | 2 | E9 | 4+ | 2+ | F9 | 5 | 3 | B = B+M+C | + | + | + | + | + | ||||
| ADD | ADDA | 8B | 2 | 2 | 9B | 4 | 2 | AB | 4+ | 2+ | BB | 5 | 3 | A = A+M | + | + | + | + | + | |||
| ADDB | CB | 2 | 2 | DB | 4 | 2 | EB | 4+ | 2+ | FB | 5 | 3 | B = B+M | + | + | + | + | + | ||||
| ADDD | C3 | 4 | 3 | D3 | 6 | 2 | E3 | 6+ | 2+ | F3 | 7 | 3 | D = D+M:M+1 | + | + | + | + | |||||
| AND | ANDA | 84 | 2 | 2 | 94 | 4 | 2 | A4 | 4+ | 2+ | B4 | 5 | 3 | A = A && M | + | + | 0 | |||||
| ANDB | C4 | 2 | 2 | D4 | 4 | 2 | E4 | 4+ | 2+ | F4 | 5 | 3 | B = B && M | + | + | 0 | ||||||
| ANDCC | 1C | 3 | 2 | C = CC && IMM | ? | ? | ? | ? | ? | |||||||||||||
| ASL | ASLA | 48 | 2 | 1 | Arithmetic shift left |
8 | + | + | + | + | ||||||||||||
| ASLB | 58 | 2 | 1 | 8 | + | + | + | + | ||||||||||||||
| ASL | 08 | 6 | 2 | 68 | 6+ | 2+ | 78 | 7 | 3 | 8 | + | + | + | + | ||||||||
| ASR | ASRA | 47 | 2 | 1 | Arithmetic shift right |
8 | + | + | + | |||||||||||||
| ASRB | 57 | 2 | 1 | 8 | + | + | + | |||||||||||||||
| ASR | 07 | 6 | 2 | 67 | 6+ | 2+ | 77 | 7 | 3 | 8 | + | + | + | |||||||||
| BIT | BITA | 85 | 2 | 2 | 95 | 4 | 2 | A5 | 4+ | 2+ | B5 | 5 | 3 | Bit Test A (M&&A) | + | + | 0 | |||||
| BITB | C5 | 2 | 2 | D5 | 4 | 2 | E5 | 4+ | 2+ | F5 | 5 | 3 | Bit Test B (M&&B) | + | + | 0 | ||||||
| CLR | CLRA | 4F | 2 | 1 | A = 0 | 0 | 1 | 0 | 0 | |||||||||||||
| CLRB | 5F | 2 | 1 | B = 0 | 0 | 1 | 0 | 0 | ||||||||||||||
| CLR | 0F | 6 | 2 | 6F | 6+ | 2+ | 7F | 7 | 3 | M = 0 | 0 | 1 | 0 | 0 | ||||||||
| CMP | CMPA | 81 | 2 | 2 | 91 | 4 | 2 | A1 | 4+ | 2+ | B1 | 5 | 3 | Compare M from A | 8 | + | + | + | + | |||
| CMPB | C1 | 2 | 2 | D1 | 4 | 2 | E1 | 4+ | 2+ | F1 | 5 | 3 | Compare M from B | 8 | + | + | + | + | ||||
| CMPD | 10 83 |
5 | 4 | 10 93 |
7 | 3 | 10 A3 |
7+ | 3+ | 10 B3 |
8 | 4 | Compare M:M+1 from D | + | + | + | + | |||||
| CMPS | 11 8C |
5 | 4 | 11 9C |
7 | 3 | 11 AC |
7+ | 3+ | 11 BC |
8 | 4 | Compare M:M+1 from S | + | + | + | + | |||||
| CMPU | 11 83 |
5 | 4 | 11 93 |
7 | 3 | 11 A3 |
7+ | 3+ | 11 B3 |
8 | 4 | Compare M:M+1 from U | + | + | + | + | |||||
| CMPX | 8C | 4 | 3 | 9C | 6 | 2 | AC | 6+ | 2+ | BC | 7 | 3 | Compare M:M+1 from X | + | + | + | + | |||||
| CMPY | 10 8C |
5 | 4 | 10 9C |
7 | 3 | 10 AC |
7+ | 3+ | 10 BC |
8 | 4 | Compare M:M+1 from Y | + | + | + | + | |||||
| COM | COMA | 43 | 2 | 1 | A = complement(A) | + | + | 0 | 1 | |||||||||||||
| COMB | 53 | 2 | 1 | B = complement(B) | + | + | 0 | 1 | ||||||||||||||
| COM | 03 | 6 | 2 | 63 | 6+ | 2+ | 73 | 7 | 3 | M = complement(M) | + | + | 0 | 1 | ||||||||
| CWAI | 3C | => 20 |
2 | CC = CC ^ IMM; Wait for Interrupt |
7 | |||||||||||||||||
| DAA | 19 | 2 | 1 | Decimal Adjust A | + | + | 0 | + | ||||||||||||||
| DEC | DECA | 4A | 2 | 1 | A = A 1 | + | + | + | ||||||||||||||
| DECB | 5A | 2 | 1 | B = B 1 | + | + | + | |||||||||||||||
| DEC | 0A | 6 | 2 | 6A | 6+ | 2+ | 7A | 7 | 3 | M = M 1 | + | + | + | |||||||||
| EOR | EORA | 88 | 2 | 2 | 98 | 4 | 2 | A8 | 4+ | 2+ | B8 | 5 | 3 | A = A XOR M | + | + | 0 | |||||
| EORB | C8 | 2 | 2 | D8 | 4 | 2 | E8 | 4+ | 2+ | F8 | 5 | 3 | B = M XOR B | + | + | 0 | ||||||
| EXG | R1,R2 | 1E | 8 | 2 | exchange R1,R2 | |||||||||||||||||
| INC | INCA | 4C | 2 | 1 | A = A + 1 | + | + | + | ||||||||||||||
| INCB | 5C | 2 | 1 | B = B + 1 | + | + | + | |||||||||||||||
| INC | 0C | 6 | 2 | 6C | 6+ | 2+ | 7C | 7 | 3 | M = M + 1 | + | + | + | |||||||||
| JMP | 0E | 3 | 2 | 6E | 3+ | 2+ | 7E | 4 | 3 | pc = EA | ||||||||||||
| JSR | 9D | 7 | 2 | AD | 7+ | 2+ | BD | 8 | 3 | jump to subroutine | ||||||||||||
| 6809 Instruction Set | ||||||||||||||||||||||
| Instruction | Mnemonic | Addressing Mode | Description | CC bit | ||||||||||||||||||
| Immediate | Direct | Indexed | Extended | Inherent | 5 | 3 | 2 | 1 | 0 | |||||||||||||
| Op | ~ | # | Op | ~ | # | Op | ~ | # | Op | ~ | # | Op | ~ | # | H | N | Z | V | C | |||
| LD | LDA | 86 | 2 | 2 | 96 | 4 | 2 | A6 | 4+ | 2+ | B6 | 5 | 3 | A = M | + | + | 0 | |||||
| LDB | C6 | 2 | 2 | D6 | 4 | 2 | E6 | 4+ | 2+ | F6 | 5 | 3 | B = M | + | + | 0 | ||||||
| LDD | CC | 3 | 3 | DC | 5 | 2 | EC | 5+ | 2+ | FC | 6 | 3 | D = M:M+1 | + | + | 0 | ||||||
| LDS | 10 CE |
4 | 4 | 10 DE |
6 | 3 | 10 EE |
6+ | 3+ | 10 FE |
7 | 4 | S = M:M+1 | + | + | 0 | ||||||
| LDU | CE | 3 | 3 | DE | 5 | 2 | EE | 5+ | 2+ | FE | 6 | 3 | U = M:M+1 | + | + | 0 | ||||||
| LDX | 8E | 3 | 3 | 9E | 5 | 2 | AE | 5+ | 2+ | BE | 6 | 3 | X = M:M+1 | + | + | 0 | ||||||
| LDY | 10 8E |
4 | 4 | 10 9E |
6 | 3 | 10 AE |
6+ | 3+ | 10 BE |
7 | 4 | Y = M:M+1 | + | + | 0 | ||||||
| LEA | LEAS | 32 | 4+ | 2+ | S = EA | |||||||||||||||||
| LEAU | 33 | 4+ | 2+ | U = EA | ||||||||||||||||||
| LEAX | 30 | 4+ | 2+ | X = EA | + | |||||||||||||||||
| LEAY | 31 | 4+ | 2+ | Y = EA | + | |||||||||||||||||
| LSL | LSLA | 48 | 2 | 1 | Logical shift left |
+ | + | + | + | |||||||||||||
| LSLB | 58 | 2 | 1 | + | + | + | + | |||||||||||||||
| LSL | 08 | 6 | 2 | 68 | 6+ | 2+ | 78 | 7 | 3 | + | + | + | + | |||||||||
| LSR | LSRA | 44 | 2 | 1 | Logical shift right |
0 | + | + | ||||||||||||||
| LSRB | 54 | 2 | 1 | 0 | + | + | ||||||||||||||||
| LSR | 04 | 6 | 2 | 64 | 6+ | 2+ | 74 | 7 | 3 | 0 | + | + | ||||||||||
| MUL | 3D | 11 | 1 | D = A*B (Unsigned) | + | 9 | ||||||||||||||||
| NEG | NEGA | 40 | 2 | 1 | A = !A + 1 | 8 | + | + | + | + | ||||||||||||
| NEGB | 50 | 2 | 1 | B = !B + 1 | 8 | + | + | + | + | |||||||||||||
| NEG | 00 | 6 | 2 | 60 | 6+ | 2+ | 70 | 7 | 3 | M = !M + 1 | 8 | + | + | + | + | |||||||
| NOP | 12 | 2 | 1 | No Operation | ||||||||||||||||||
| OR | ORA | 8A | 2 | 2 | 9A | 4 | 2 | AA | 4+ | 2+ | BA | 5 | 3 | A = A || M | + | + | 0 | |||||
| ORB | CA | 2 | 2 | DA | 4 | 2 | EA | 4+ | 2+ | FA | 5 | 3 | B = B || M | + | + | 0 | ||||||
| ORCC | 1A | 3 | 2 | C = CC || IMM | ? | ? | ? | ? | ? | |||||||||||||
| PSH | PSHS | 34 | 5+ | 2 | Push Registers on S Stack | |||||||||||||||||
| PSHU | 36 | 5+ | 2 | Push Registers on U Stack | ||||||||||||||||||
| PUL | PULS | 35 | 5+ | 2 | Pull Registers from S Stack | |||||||||||||||||
| PULU | 37 | 5+ | 2 | Pull Registers from U Stack | ||||||||||||||||||
| ROL | ROLA | 49 | 2 | 1 | Rotate left thru carry | + | + | + | + | |||||||||||||
| ROLB | 59 | 2 | 1 | + | + | + | + | |||||||||||||||
| ROL | 09 | 6 | 2 | 69 | 6+ | 2+ | 79 | 7 | 3 | + | + | + | + | |||||||||
| ROR | RORA | 46 | 2 | 1 | Rotate Right thru carry | 0 | + | + | ||||||||||||||
| RORB | 56 | 2 | 1 | 0 | + | + | ||||||||||||||||
| ROR | 06 | 6 | 2 | 66 | 6+ | 2+ | 76 | 7 | 3 | 0 | + | + | ||||||||||
| RTI | 3B | 6/15 | 1 | Return from Interrupt | ? | ? | ? | ? | ? | |||||||||||||
| RTS | 39 | 5 | 1 | Return from subroutine | ||||||||||||||||||
| SBC | SBCA | 82 | 2 | 2 | 92 | 4 | 2 | A2 | 4+ | 2+ | B2 | 5 | 3 | A = A - M - C | 8 | + | + | + | + | |||
| SBCB | C2 | 2 | 2 | D2 | 4 | 2 | E2 | 4+ | 2+ | F2 | 5 | 3 | B = B - M - C | 8 | + | + | + | + | ||||
| SEX | 1D | 2 | 1 | Sign extend B into A | + | + | 0 | |||||||||||||||
| ST | STA | 97 | 4 | 2 | A7 | 4+ | 2+ | B7 | 5 | 3 | M = A | + | + | 0 | ||||||||
| STB | D7 | 4 | 2 | E7 | 4+ | 2+ | F7 | 5 | 3 | M = B | + | + | 0 | |||||||||
| STD | DD | 5 | 2 | ED | 5+ | 2+ | FD | 6 | 3 | M:M+1 = D | + | + | 0 | |||||||||
| STS | 10 DF |
6 | 3 | 10 EF |
6+ | 3+ | 10 FF |
7 | 4 | M:M+1 = S | + | + | 0 | |||||||||
| STU | DF | 5 | 2 | EF | 5+ | 2+ | FF | 6 | 3 | M:M+1 = U | + | + | 0 | |||||||||
| STX | 9F | 5 | 2 | AF | 5+ | 2+ | BF | 6 | 3 | M:M+1 = X | + | + | 0 | |||||||||
| STY | 10 9F |
6 | 3 | 10 AF |
6+ | 3+ | 10 BF |
7 | 4 | M:M+1 = Y | + | + | 0 | |||||||||
| SUB | SUBA | 80 | 2 | 2 | 90 | 4 | 2 | A0 | 4+ | 2+ | B0 | 5 | 3 | A = A - M | 8 | + | + | + | + | |||
| SUBB | C0 | 2 | 2 | D0 | 4 | 2 | E0 | 4+ | 2+ | F0 | 5 | 3 | B = B - M | 8 | + | + | + | + | ||||
| SUBD | 83 | 4 | 3 | 93 | 6 | 2 | A3 | 6+ | 2+ | B3 | 7 | 3 | D = D - M:M+1 | + | + | + | + | |||||
| SWI | SWI | 3F | 19 | 1 | Software interrupt 1 | |||||||||||||||||
| SWI2 | 10 3F |
20 | 2 | Software interrupt 2 | ||||||||||||||||||
| SWI3 | 11 3F |
20 | 2 | Software interrupt 3 | ||||||||||||||||||
| SYNC | 13 | >= 4 |
1 | Synchronize to Interrupt | ||||||||||||||||||
| TFR | R1,R2 | 1F | 6 | 2 | R2 = R1 | |||||||||||||||||
| TST | TSTA | 4D | 2 | 1 | Test A | + | + | 0 | ||||||||||||||
| TSTB | 5D | 2 | 1 | Test B | + | + | 0 | |||||||||||||||
| TST | 0D | 6 | 2 | 6D | 6+ | 2+ | 7D | 7 | 3 | Test M | + | + | 0 | |||||||||
| Legend: | ||
| ! Complement of M | + Test and set if true, cleared otherwise |
OP Operation Code(Hexadecimal) |
| = Transfer from | - Not Affected | ~ Number of MPU Cycles |
| H Half carry (from bit 3) | CC Condition Code Register | # Number of Program Bytes |
| N Negative (sign bit) | :: Concatenation | + Arithmetic Plus |
| Z Zero (Reset) | || Logical or | Arithmetic Minus |
| V Overflow, 2's complement | && Logical and | * Multiply |
| C Carry from ALU | EOR Logical Exclusive or | EA Effective Address:w |
Notes:
1. This column gives a base cycle and byte count. To obtain total count, add the values obtained from the INDEXED ADDRESSING MODE table, in Appendix F.2. Rl and R2 may be any pair of 8 bit or any pair of 16 bit registers.
The 8 bit registers are: A, B, CC, DP
The 16 bit registers are: X, Y, U, S, D, PC3. EA is the effective address.
4. The PSH and PUL instructions require 5 cycles plus 1 cycle for each byte pushed or pulled.
5. 5(6) means: 5 cycles if branch not taken, 6 cycles if taken (Branch instructions.
6. SWI sets I and F bits. SW12 and SW13 do not affect I and F.
7. Conditions Codes set as a direct result of the instruction.
8. Value of half carry flag is undefined.
9. Special Case Carry set if b7 is SET.
Mode
Relstive 5 3 2 1 O
Instruction Forms OP Decription H N Z V C
BCC BCC 24 3 / 2 Branch C=O
LBCC 10 5l6) 4 Long Branch
24 C=O
BCS BCS 25 3 2 Branch C= 1
LBCS 10 56) 4 Long Branch
25 C=l
BEQ BEQ 27 3 2 Branch Z=O
LBEQ 10 5(6) 4 Long Branch
27 Z=O
BGE BGE 2C 3 2 Branch2Zero
LBGE 10 5(6) 4 Long Branch2Zero
2C
BGT BGT 2E 3 2 Branch > Zero
LBGT 10 5(6) 4 Long Branch>Zero
2E
BHI BHI 22 3 2 Branch rligher
LBHI 10 5(6) 4 Long Branch Higher
22
BHS BHS 24 3 2 Branch Higher
or Same
LBHS 10 516) 4 Long Branch Higher
24 or Same
BLE BLE 2F 3 2 BranchsZero
LBLE 10 5(6) 4 Long BranchsZero
2F
BLO BLO 25 3 2 Branch lower
LBLO 10 56) 4 Long Branch Lower
25
Addressin T
Mode
Rela 5 3 2 1 ,0
Instruction Forms OP # Description H N Z V C
BLS BLS 23 3 2 Branch Lower
or Same
LBLS 10 5(6) 4 Long Branch Lower
23 or Same
BLT BLT 2D 3 2 Branch