Reference

Motorola 6800

107 mnemonics, 197 encoded forms, operands big-endian. Generated from crates/isa/src/m6800.rs.

Cycle counts show the base cost; +p is an extra cycle when an indexed access crosses a page boundary, +t when a branch is taken.

SUBA

Subtract from A

Mode Opcode Operands Bytes Cycles Flags
immediate 80 imm8 2 2 NZVC
direct 90 addr8 2 3 NZVC
indexed A0 imm8 2 5 NZVC
extended B0 addr16 3 4 NZVC

SUBB

Subtract from B

Mode Opcode Operands Bytes Cycles Flags
immediate C0 imm8 2 2 NZVC
direct D0 addr8 2 3 NZVC
indexed E0 imm8 2 5 NZVC
extended F0 addr16 3 4 NZVC

CMPA

Compare A

Mode Opcode Operands Bytes Cycles Flags
immediate 81 imm8 2 2 NZVC
direct 91 addr8 2 3 NZVC
indexed A1 imm8 2 5 NZVC
extended B1 addr16 3 4 NZVC

CMPB

Compare B

Mode Opcode Operands Bytes Cycles Flags
immediate C1 imm8 2 2 NZVC
direct D1 addr8 2 3 NZVC
indexed E1 imm8 2 5 NZVC
extended F1 addr16 3 4 NZVC

SBCA

Subtract with carry from A

Mode Opcode Operands Bytes Cycles Flags
immediate 82 imm8 2 2 NZVC
direct 92 addr8 2 3 NZVC
indexed A2 imm8 2 5 NZVC
extended B2 addr16 3 4 NZVC

SBCB

Subtract with carry from B

Mode Opcode Operands Bytes Cycles Flags
immediate C2 imm8 2 2 NZVC
direct D2 addr8 2 3 NZVC
indexed E2 imm8 2 5 NZVC
extended F2 addr16 3 4 NZVC

ANDA

AND A

Mode Opcode Operands Bytes Cycles Flags
immediate 84 imm8 2 2 NZV
direct 94 addr8 2 3 NZV
indexed A4 imm8 2 5 NZV
extended B4 addr16 3 4 NZV

ANDB

AND B

Mode Opcode Operands Bytes Cycles Flags
immediate C4 imm8 2 2 NZV
direct D4 addr8 2 3 NZV
indexed E4 imm8 2 5 NZV
extended F4 addr16 3 4 NZV

BITA

Bit test A

Mode Opcode Operands Bytes Cycles Flags
immediate 85 imm8 2 2 NZV
direct 95 addr8 2 3 NZV
indexed A5 imm8 2 5 NZV
extended B5 addr16 3 4 NZV

BITB

Bit test B

Mode Opcode Operands Bytes Cycles Flags
immediate C5 imm8 2 2 NZV
direct D5 addr8 2 3 NZV
indexed E5 imm8 2 5 NZV
extended F5 addr16 3 4 NZV

LDAA

Load A

Mode Opcode Operands Bytes Cycles Flags
immediate 86 imm8 2 2 NZV
direct 96 addr8 2 3 NZV
indexed A6 imm8 2 5 NZV
extended B6 addr16 3 4 NZV

LDAB

Load B

Mode Opcode Operands Bytes Cycles Flags
immediate C6 imm8 2 2 NZV
direct D6 addr8 2 3 NZV
indexed E6 imm8 2 5 NZV
extended F6 addr16 3 4 NZV

EORA

Exclusive-OR A

Mode Opcode Operands Bytes Cycles Flags
immediate 88 imm8 2 2 NZV
direct 98 addr8 2 3 NZV
indexed A8 imm8 2 5 NZV
extended B8 addr16 3 4 NZV

EORB

Exclusive-OR B

Mode Opcode Operands Bytes Cycles Flags
immediate C8 imm8 2 2 NZV
direct D8 addr8 2 3 NZV
indexed E8 imm8 2 5 NZV
extended F8 addr16 3 4 NZV

ADCA

Add with carry to A

Mode Opcode Operands Bytes Cycles Flags
immediate 89 imm8 2 2 NZVC
direct 99 addr8 2 3 NZVC
indexed A9 imm8 2 5 NZVC
extended B9 addr16 3 4 NZVC

ADCB

Add with carry to B

Mode Opcode Operands Bytes Cycles Flags
immediate C9 imm8 2 2 NZVC
direct D9 addr8 2 3 NZVC
indexed E9 imm8 2 5 NZVC
extended F9 addr16 3 4 NZVC

ORAA

OR A

Mode Opcode Operands Bytes Cycles Flags
immediate 8A imm8 2 2 NZV
direct 9A addr8 2 3 NZV
indexed AA imm8 2 5 NZV
extended BA addr16 3 4 NZV

ORAB

OR B

Mode Opcode Operands Bytes Cycles Flags
immediate CA imm8 2 2 NZV
direct DA addr8 2 3 NZV
indexed EA imm8 2 5 NZV
extended FA addr16 3 4 NZV

ADDA

Add to A

Mode Opcode Operands Bytes Cycles Flags
immediate 8B imm8 2 2 NZVC
direct 9B addr8 2 3 NZVC
indexed AB imm8 2 5 NZVC
extended BB addr16 3 4 NZVC

ADDB

Add to B

Mode Opcode Operands Bytes Cycles Flags
immediate CB imm8 2 2 NZVC
direct DB addr8 2 3 NZVC
indexed EB imm8 2 5 NZVC
extended FB addr16 3 4 NZVC

STAA

Store A

Mode Opcode Operands Bytes Cycles Flags
direct 97 addr8 2 4 NZV
indexed A7 imm8 2 6 NZV
extended B7 addr16 3 5 NZV

STAB

Store B

Mode Opcode Operands Bytes Cycles Flags
direct D7 addr8 2 4 NZV
indexed E7 imm8 2 6 NZV
extended F7 addr16 3 5 NZV

CPX

Compare index register

Mode Opcode Operands Bytes Cycles Flags
immediate 8C imm16 3 3 NZV
direct 9C addr8 2 4 NZV
indexed AC imm8 2 6 NZV
extended BC addr16 3 5 NZV

LDS

Load stack pointer

Mode Opcode Operands Bytes Cycles Flags
immediate 8E imm16 3 3 NZV
direct 9E addr8 2 4 NZV
indexed AE imm8 2 6 NZV
extended BE addr16 3 5 NZV

LDX

Load index register

Mode Opcode Operands Bytes Cycles Flags
immediate CE imm16 3 3 NZV
direct DE addr8 2 4 NZV
indexed EE imm8 2 6 NZV
extended FE addr16 3 5 NZV

STS

Store stack pointer

Mode Opcode Operands Bytes Cycles Flags
direct 9F addr8 2 4 NZV
indexed AF imm8 2 6 NZV
extended BF addr16 3 5 NZV

STX

Store index register

Mode Opcode Operands Bytes Cycles Flags
direct DF addr8 2 4 NZV
indexed EF imm8 2 6 NZV
extended FF addr16 3 5 NZV

NEG

Negate

Mode Opcode Operands Bytes Cycles Flags
indexed 60 imm8 2 6 NZVC
extended 70 addr16 3 6 NZVC

COM

Complement

Mode Opcode Operands Bytes Cycles Flags
indexed 63 imm8 2 6 NZVC
extended 73 addr16 3 6 NZVC

LSR

Logical shift right

Mode Opcode Operands Bytes Cycles Flags
indexed 64 imm8 2 6 NZVC
extended 74 addr16 3 6 NZVC

ROR

Rotate right

Mode Opcode Operands Bytes Cycles Flags
indexed 66 imm8 2 6 NZVC
extended 76 addr16 3 6 NZVC

ASR

Arithmetic shift right

Mode Opcode Operands Bytes Cycles Flags
indexed 67 imm8 2 6 NZVC
extended 77 addr16 3 6 NZVC

ASL

Arithmetic shift left

Mode Opcode Operands Bytes Cycles Flags
indexed 68 imm8 2 6 NZVC
extended 78 addr16 3 6 NZVC

ROL

Rotate left

Mode Opcode Operands Bytes Cycles Flags
indexed 69 imm8 2 6 NZVC
extended 79 addr16 3 6 NZVC

DEC

Decrement

Mode Opcode Operands Bytes Cycles Flags
indexed 6A imm8 2 6 NZV
extended 7A addr16 3 6 NZV

INC

Increment

Mode Opcode Operands Bytes Cycles Flags
indexed 6C imm8 2 6 NZV
extended 7C addr16 3 6 NZV

TST

Test

Mode Opcode Operands Bytes Cycles Flags
indexed 6D imm8 2 6 NZV
extended 7D addr16 3 6 NZV

JMP

Jump

Mode Opcode Operands Bytes Cycles Flags
indexed 6E imm8 2 6
extended 7E addr16 3 6

CLR

Clear

Mode Opcode Operands Bytes Cycles Flags
indexed 6F imm8 2 6 NZVC
extended 7F addr16 3 6 NZVC

JSR

Jump to subroutine

Mode Opcode Operands Bytes Cycles Flags
indexed AD imm8 2 6
extended BD addr16 3 6

BRA

Branch always

Mode Opcode Operands Bytes Cycles Flags
relative 20 rel8 2 4

BHI

Branch if higher

Mode Opcode Operands Bytes Cycles Flags
relative 22 rel8 2 4

BLS

Branch if lower or same

Mode Opcode Operands Bytes Cycles Flags
relative 23 rel8 2 4

BCC

Branch if carry clear

Mode Opcode Operands Bytes Cycles Flags
relative 24 rel8 2 4

BCS

Branch if carry set

Mode Opcode Operands Bytes Cycles Flags
relative 25 rel8 2 4

BNE

Branch if not equal

Mode Opcode Operands Bytes Cycles Flags
relative 26 rel8 2 4

BEQ

Branch if equal

Mode Opcode Operands Bytes Cycles Flags
relative 27 rel8 2 4

BVC

Branch if overflow clear

Mode Opcode Operands Bytes Cycles Flags
relative 28 rel8 2 4

BVS

Branch if overflow set

Mode Opcode Operands Bytes Cycles Flags
relative 29 rel8 2 4

BPL

Branch if plus

Mode Opcode Operands Bytes Cycles Flags
relative 2A rel8 2 4

BMI

Branch if minus

Mode Opcode Operands Bytes Cycles Flags
relative 2B rel8 2 4

BGE

Branch if greater or equal

Mode Opcode Operands Bytes Cycles Flags
relative 2C rel8 2 4

BLT

Branch if less than

Mode Opcode Operands Bytes Cycles Flags
relative 2D rel8 2 4

BGT

Branch if greater than

Mode Opcode Operands Bytes Cycles Flags
relative 2E rel8 2 4

BLE

Branch if less or equal

Mode Opcode Operands Bytes Cycles Flags
relative 2F rel8 2 4

BSR

Branch to subroutine

Mode Opcode Operands Bytes Cycles Flags
relative 8D rel8 2 4

NOP

No operation

Mode Opcode Operands Bytes Cycles Flags
inherent 01 1 2

TAP

Transfer A to CC

Mode Opcode Operands Bytes Cycles Flags
inherent 06 1 2 HINZVC

TPA

Transfer CC to A

Mode Opcode Operands Bytes Cycles Flags
inherent 07 1 2

INX

Increment X

Mode Opcode Operands Bytes Cycles Flags
inherent 08 1 2 Z

DEX

Decrement X

Mode Opcode Operands Bytes Cycles Flags
inherent 09 1 2 Z

CLV

Clear overflow

Mode Opcode Operands Bytes Cycles Flags
inherent 0A 1 2 V

SEV

Set overflow

Mode Opcode Operands Bytes Cycles Flags
inherent 0B 1 2 V

CLC

Clear carry

Mode Opcode Operands Bytes Cycles Flags
inherent 0C 1 2 C

SEC

Set carry

Mode Opcode Operands Bytes Cycles Flags
inherent 0D 1 2 C

CLI

Clear interrupt mask

Mode Opcode Operands Bytes Cycles Flags
inherent 0E 1 2 I

SEI

Set interrupt mask

Mode Opcode Operands Bytes Cycles Flags
inherent 0F 1 2 I

SBA

Subtract B from A

Mode Opcode Operands Bytes Cycles Flags
inherent 10 1 2 NZVC

CBA

Compare A with B

Mode Opcode Operands Bytes Cycles Flags
inherent 11 1 2 NZVC

TAB

Transfer A to B

Mode Opcode Operands Bytes Cycles Flags
inherent 16 1 2 NZV

TBA

Transfer B to A

Mode Opcode Operands Bytes Cycles Flags
inherent 17 1 2 NZV

DAA

Decimal adjust A

Mode Opcode Operands Bytes Cycles Flags
inherent 19 1 2 NZVC

ABA

Add B to A

Mode Opcode Operands Bytes Cycles Flags
inherent 1B 1 2 HNZVC

TSX

Transfer SP to X

Mode Opcode Operands Bytes Cycles Flags
inherent 30 1 2

INS

Increment SP

Mode Opcode Operands Bytes Cycles Flags
inherent 31 1 2

PULA

Pull A

Mode Opcode Operands Bytes Cycles Flags
inherent 32 1 2

PULB

Pull B

Mode Opcode Operands Bytes Cycles Flags
inherent 33 1 2

DES

Decrement SP

Mode Opcode Operands Bytes Cycles Flags
inherent 34 1 2

TXS

Transfer X to SP

Mode Opcode Operands Bytes Cycles Flags
inherent 35 1 2

PSHA

Push A

Mode Opcode Operands Bytes Cycles Flags
inherent 36 1 2

PSHB

Push B

Mode Opcode Operands Bytes Cycles Flags
inherent 37 1 2

RTS

Return from subroutine

Mode Opcode Operands Bytes Cycles Flags
inherent 39 1 2

RTI

Return from interrupt

Mode Opcode Operands Bytes Cycles Flags
inherent 3B 1 2 HINZVC

WAI

Wait for interrupt

Mode Opcode Operands Bytes Cycles Flags
inherent 3E 1 2

SWI

Software interrupt

Mode Opcode Operands Bytes Cycles Flags
inherent 3F 1 2

NEGA

Negate A

Mode Opcode Operands Bytes Cycles Flags
inherent 40 1 2 NZVC

NEGB

Negate B

Mode Opcode Operands Bytes Cycles Flags
inherent 50 1 2 NZVC

COMA

Complement A

Mode Opcode Operands Bytes Cycles Flags
inherent 43 1 2 NZVC

COMB

Complement B

Mode Opcode Operands Bytes Cycles Flags
inherent 53 1 2 NZVC

LSRA

Logical shift right A

Mode Opcode Operands Bytes Cycles Flags
inherent 44 1 2 NZVC

LSRB

Logical shift right B

Mode Opcode Operands Bytes Cycles Flags
inherent 54 1 2 NZVC

RORA

Rotate right A

Mode Opcode Operands Bytes Cycles Flags
inherent 46 1 2 NZVC

RORB

Rotate right B

Mode Opcode Operands Bytes Cycles Flags
inherent 56 1 2 NZVC

ASRA

Arithmetic shift right A

Mode Opcode Operands Bytes Cycles Flags
inherent 47 1 2 NZVC

ASRB

Arithmetic shift right B

Mode Opcode Operands Bytes Cycles Flags
inherent 57 1 2 NZVC

ASLA

Arithmetic shift left A

Mode Opcode Operands Bytes Cycles Flags
inherent 48 1 2 NZVC

ASLB

Arithmetic shift left B

Mode Opcode Operands Bytes Cycles Flags
inherent 58 1 2 NZVC

ROLA

Rotate left A

Mode Opcode Operands Bytes Cycles Flags
inherent 49 1 2 NZVC

ROLB

Rotate left B

Mode Opcode Operands Bytes Cycles Flags
inherent 59 1 2 NZVC

DECA

Decrement A

Mode Opcode Operands Bytes Cycles Flags
inherent 4A 1 2 NZV

DECB

Decrement B

Mode Opcode Operands Bytes Cycles Flags
inherent 5A 1 2 NZV

INCA

Increment A

Mode Opcode Operands Bytes Cycles Flags
inherent 4C 1 2 NZV

INCB

Increment B

Mode Opcode Operands Bytes Cycles Flags
inherent 5C 1 2 NZV

TSTA

Test A

Mode Opcode Operands Bytes Cycles Flags
inherent 4D 1 2 NZV

TSTB

Test B

Mode Opcode Operands Bytes Cycles Flags
inherent 5D 1 2 NZV

CLRA

Clear A

Mode Opcode Operands Bytes Cycles Flags
inherent 4F 1 2 NZVC

CLRB

Clear B

Mode Opcode Operands Bytes Cycles Flags
inherent 5F 1 2 NZVC

Sources

Encodings on this page were taken from:

  • MC6800 8-Bit Microprocessing Unit Data Sheet — Motorola