6809 opcodes:

instruction mnemonic CC flags example op code bytes cycles address mode needs ea read from memory write to memory register
ABX ABX ----- X = B+X (Unsigned) $3a 1 3 inherent no no no -
ADC ADCA aaaaa A = A+M+C $89 2 2 immediate byte A
$99 4 direct
$a9 indexed
$b9 3 5 extended
ADCB B = B+M+C $c9 2 2 immediate B
$d9 4 direct
$e9 indexed
$f9 3 5 extended
ADD ADDA A = A+M $8b 2 2 immediate A
$9b 4 direct
$ab indexed
$bb 3 5 extended
ADDB B = B+M $cb 2 2 immediate B
$db 4 direct
$eb indexed
$fb 3 5 extended
ADDD -aaaa D = D+M:M+1 $c3 4 immediate word word D
$d3 2 6 direct word
$e3 indexed word
$f3 3 7 extended word
AND ANDA -aa0- A = A && M $84 2 2 immediate byte A
$94 4 direct
$a4 indexed
$b4 3 5 extended
ANDB B = B && M $c4 2 2 immediate B
$d4 4 direct
$e4 indexed
$f4 3 5 extended
ANDCC ddddd C = CC && IMM $1c 2 3 immediate CC
ASR ASR uaa-s M = Arithmetic shift M right $07 6 direct yes byte -
$67 indexed
$77 3 7 extended
ASRA A = Arithmetic shift A right $47 1 2 inherent no no no A
ASRB B = Arithmetic shift B right $57 B
BEQ BEQ ----- $27 2 3 relative yes -
LBEQ $1027 4 5 relative word
BGE BGE $2c 2 3 relative
LBGE $102c 4 5 relative word
BGT BGT $2e 2 3 relative
LBGT $102e 4 5 relative word
BHI BHI $22 2 3 relative
LBHI $1022 4 5 relative word
BHS BCC $24 2 3 relative
LBCC $1024 4 5 relative word
BIT BITA -aa0- Bit Test A (M&&A) $85 2 2 immediate no byte A
$95 4 direct
$a5 indexed
$b5 3 5 extended
BITB Bit Test B (M&&B) $c5 2 2 immediate B
$d5 4 direct
$e5 indexed
$f5 3 5 extended
BLE BLE ----- $2f 2 3 relative yes no -
LBLE $102f 4 5 relative word
BLO BLO $25 2 3 relative
LBCS $1025 4 5 relative word
BLS BLS $23 2 3 relative
LBLS $1023 4 5 relative word
BLT BLT $2d 2 3 relative
LBLT $102d 4 5 relative word
BMI BMI $2b 2 3 relative
LBMI $102b 4 5 relative word
BNE BNE $26 2 3 relative
LBNE $1026 4 5 relative word
BPL BPL $2a 2 3 relative
LBPL $102a 4 5 relative word
BRA BRA $20 2 3 relative
LBRA $16 3 5 relative word
BRN BRN $21 2 3 relative
LBRN $1021 4 5 relative word
BSR BSR $8d 2 7 relative
LBSR $17 3 9 relative word
BVC BVC $28 2 3 relative
LBVC $1028 4 5 relative word
BVS BVS $29 2 3 relative
LBVS $1029 4 5 relative word
CLR CLR -0100 M = 0 $0f 2 6 direct byte
$6f indexed
$7f 3 7 extended
CLRA A = 0 $4f 1 2 inherent no no A
CLRB B = 0 $5f B
CMP CMPA uaaaa Compare M from A $81 2 immediate byte A
$91 4 direct
$a1 indexed
$b1 3 5 extended
CMPB Compare M from B $c1 2 2 immediate B
$d1 4 direct
$e1 indexed
$f1 3 5 extended
CMPD -aaaa Compare M:M+1 from D $1083 4 immediate word word D
$1093 3 7 direct word
$10a3 indexed word
$10b3 4 8 extended word
CMPS Compare M:M+1 from S $118c 5 immediate word S
$119c 3 7 direct word
$11ac indexed word
$11bc 4 8 extended word
CMPU Compare M:M+1 from U $1183 5 immediate word U
$1193 3 7 direct word
$11a3 indexed word
$11b3 4 8 extended word
CMPX Compare M:M+1 from X $8c 3 4 immediate word X
$9c 2 6 direct word
$ac indexed word
$bc 3 7 extended word
CMPY Compare M:M+1 from Y $108c 4 5 immediate word Y
$109c 3 7 direct word
$10ac indexed word
$10bc 4 8 extended word
COM COM -aa01 M = complement(M) $03 2 6 direct yes byte byte -
$63 indexed
$73 3 7 extended
COMA A = complement(A) $43 1 2 inherent no no no A
COMB B = complement(B) $53 B
CWAI CWAI ddddd CC = CC ^ IMM; (Wait for Interrupt) $3c 2 21 immediate byte -
DAA DAA -aa0a Decimal Adjust A $19 1 2 inherent no
DEC DEC -aaa- M = M - 1 $0a 2 6 direct yes byte byte
$6a indexed
$7a 3 7 extended
DECA A = A - 1 $4a 1 2 inherent no no no A
DECB B = B - 1 $5a B
EOR EORA -aa0- A = A XOR M $88 2 immediate byte A
$98 4 direct
$a8 indexed
$b8 3 5 extended
EORB B = M XOR B $c8 2 2 immediate B
$d8 4 direct
$e8 indexed
$f8 3 5 extended
EXG EXG ccccc exchange R1,R2 $1e 2 8 immediate -
INC INC -aaa- M = M + 1 $0c 6 direct yes byte
$6c indexed
$7c 3 7 extended
INCA A = A + 1 $4c 1 2 inherent no no no A
INCB B = B + 1 $5c B
JMP JMP ----- pc = EA $0e 2 3 direct yes -
$6e indexed
$7e 3 extended
JSR JSR jump to subroutine $9d 2 7 direct
$ad indexed
$bd 3 8 extended
LD LDA -aa0- A = M $86 2 2 immediate no byte A
$96 4 direct
$a6 indexed
$b6 3 5 extended
LDB B = M $c6 2 2 immediate B
$d6 4 direct
$e6 indexed
$f6 3 5 extended
LDD D = M:M+1 $cc 3 immediate word word D
$dc 2 5 direct word
$ec indexed word
$fc 3 6 extended word
LDS S = M:M+1 $10ce 4 4 immediate word S
$10de 3 6 direct word
$10ee indexed word
$10fe 4 7 extended word
LDU U = M:M+1 $ce 3 3 immediate word U
$de 2 5 direct word
$ee indexed word
$fe 3 6 extended word
LDX X = M:M+1 $8e 3 immediate word X
$9e 2 5 direct word
$ae indexed word
$be 3 6 extended word
LDY Y = M:M+1 $108e 4 4 immediate word Y
$109e 3 6 direct word
$10ae indexed word
$10be 4 7 extended word
LEA LEAS ----- S = EA $32 2 4 indexed yes no S
LEAU U = EA $33 U
LEAX --a-- X = EA $30 X
LEAY Y = EA $31 Y
LSL LSL naaas M = Logical shift M left $08 6 direct byte byte -
$68 indexed
$78 3 7 extended
LSLA A = Logical shift A left $48 1 2 inherent no no no A
LSLB B = Logical shift B left $58 B
LSR LSR -0a-s M = Logical shift M right $04 2 6 direct yes byte byte -
$64 indexed
$74 3 7 extended
LSRA A = Logical shift A right $44 1 2 inherent no no no A
LSRB B = Logical shift B right $54 B
MUL MUL --a-a D = A*B (Unsigned) $3d 11 -
NEG NEG uaaaa M = !M + 1 $00 2 6 direct yes byte byte
$60 indexed
$70 3 7 extended
NEGA A = !A + 1 $40 1 2 inherent no no no A
NEGB B = !B + 1 $50 B
NOP NOP ----- No Operation $12 -
OR ORA -aa0- A = A || M $8a 2 immediate byte A
$9a 4 direct
$aa indexed
$ba 3 5 extended
ORB B = B || M $ca 2 2 immediate B
$da 4 direct
$ea indexed
$fa 3 5 extended
ORCC ddddd C = CC || IMM $1a 2 3 immediate CC
PAGE PAGE 1 +++++ Page 1 Instructions prefix $10 1 1 None no -
PAGE 2 Page 2 Instructions prefix $11
PSH PSHS ----- S -= 1: MEM(S) = R; Push Register on S Stack $34 2 5 immediate byte S
PSHU U -= 1: MEM(U) = R; Push Register on U Stack $36 U
PUL PULS ccccc R=MEM(S) : S += 1; Pull register from S Stack $35 S
PULU R=MEM(U) : U += 1; Pull register from U Stack $37 U
RESET RESET ***** Undocumented opcode $3e 1 -1 None no -
ROL ROL -aaas M = Rotate M left thru carry $09 2 6 direct yes byte byte
$69 indexed
$79 3 7 extended
ROLA A = Rotate A left thru carry $49 1 2 inherent no no no A
ROLB B = Rotate B left thru carry $59 B
ROR ROR -aa-s M = Rotate M Right thru carry $06 2 6 direct yes byte byte -
$66 indexed
$76 3 7 extended
RORA A = Rotate A Right thru carry $46 1 2 inherent no no no A
RORB B = Rotate B Right thru carry $56 B
RTI RTI ----- Return from Interrupt $3b 6 -
RTS RTS Return from subroutine $39 5
SBC SBCA uaaaa A = A - M - C $82 2 2 immediate byte A
$92 4 direct
$a2 indexed
$b2 3 5 extended
SBCB B = B - M - C $c2 2 2 immediate B
$d2 4 direct
$e2 indexed
$f2 3 5 extended
SEX SEX -aa0- Sign extend B into A $1d 1 2 inherent no -
ST STA M = A $97 2 4 direct yes byte A
$a7 indexed
$b7 3 5 extended
STB M = B $d7 2 4 direct B
$e7 indexed
$f7 3 5 extended
STD M:M+1 = D $dd 2 direct word D
$ed indexed
$fd 3 6 extended
STS M:M+1 = S $10df direct S
$10ef indexed
$10ff 4 7 extended
STU M:M+1 = U $df 2 5 direct U
$ef indexed
$ff 3 6 extended
STX M:M+1 = X $9f 2 5 direct X
$af indexed
$bf 3 6 extended
STY M:M+1 = Y $109f direct Y
$10af indexed
$10bf 4 7 extended
SUB SUBA uaaaa A = A - M $80 2 2 immediate no byte no A
$90 4 direct
$a0 indexed
$b0 3 5 extended
SUBB B = B - M $c0 2 2 immediate B
$d0 4 direct
$e0 indexed
$f0 3 5 extended
SUBD -aaaa D = D - M:M+1 $83 4 immediate word word D
$93 2 6 direct word
$a3 indexed word
$b3 3 7 extended word
SWI SWI ----- Software interrupt 1 $3f 1 19 inherent no -
SWI2 Software interrupt 2 $103f 2 20
SWI3 Software interrupt 3 $113f
SYNC SYNC Synchronize to Interrupt $13 1 2
TFR TFR ccccc $1f 2 7 immediate byte
TST TST -aa0- Test M $0d 6 direct
$6d indexed
$7d 3 7 extended
TSTA Test A $4d 1 2 inherent no A
TSTB Test B $5d B
This file was generated by CPU6809_HTML_export.py