Instruction Set Summary

When Motorola came out with the MEK6800 D1 and MEK6800 D2 Microcomputers, they included a 5" x 15" fold up card that contained the M6800 MICROPROCESSOR Instruction Set Summary. The card was split into 5 sections and folded into a nice 3" x 5" set of notes. The card was printed on both sides and covered everything you needed to know about the MC6800 instructions.

While the fold up card was great, it was printed in a very small font and suffered from excessive use. Many of the cards turned into tattered rags. I have serveral of these card. They have been treated well and are completely intact. But the font seems to get smaller every year. So the tables below are an effort to replicate the cards, in a easier to read font size. And, believe me, these were very difficult tables to create.

I did take some liberties in creating the tables. For example, some of the Condition Code Register Notes, used a circled number as a reference. However, the symbols available in HTML only go from 1 to 10, but I needed 1 through 12. So I eliminated the circle and just used bolded numbers.

Accumulator and Memory Instructions
ADDRESSING MODES BOOLEAN/ARITHMETIC OPERATIONCOND. CODE REG.
ACCUMULATOR AND MEMORY IMMED DIRECT INDEX EXTND INHER (All register lables 543210
OPERATIONS MNEMONIC OP~# OP~# OP~# OP~# OP~# refer to contents) HI NZ VC
AddADDA 8B22 9B32 AB52 BB43  A + M ➜ A
ADDB CB22 DB32 EB52 FB43  B + M ➜ B
Add AcmltrsABA 1821  A + B ➜ A
Add with CarryADCA 8922 9932 A952 B943  A + B + C ➜ A
ADCB C922 D932 E952 F943  A + B + C ➜ B
AndANDA 8422 9432 A452 B443  A ● M ➜ A R
ANDB C422 D432 E452 F443  B ● M ➜ B R
Bit TestBITA 8522 9532 A552 B543  A ● M R
BITB C522 D532 E552 F543  B ● M R
ClearCLR 6F72 7F63  00 ➜ M RSRR
CLRA 4F21  00 ➜ A RSRR
CLRB 5F21  00 ➜ B RSRR
CompareCMPA 8122 9132 A152 B143  A - M
CMPB C122 D132 E152 F143  B - M
Compare AcmltrsCBA 1123  A - B
Complement, 1'sCOM 6372 7363  M ➜ M RS
COMA 4321  A ➜ A RS
COMB 5321  B ➜ B RS
Complement, 2'sNEG 6072 7063  00 - M ➜ M 12
(Negate)NEGA 4021  00 - A ➜ A 12
NEGB 5021  00 - B ➜ B 12
Decimal Adjust, ADAA 1921  Converts Binary Add. of BCD 3
 Characters into BCD Format
DecrementDEC 6A72 7A63  M - 1 ➜ M 4
DECA 4A21  A - 1 ➜ A 4
DECB 5A21  B - 1 ➜ B 4
Exclusive OREORA 8822 9832 A852 B843  A ⊕ M ➜ A R
EORB C822 D832 E852 F843  B ⊕ M ➜ B R
IncrementINC 6C72 7C63  M + 1 ➜ M 5
INCA 4C21  A + 1 ➜ A 5
INCB 5C21  B + 1 ➜ B 5
Load AcmltrsLDAA 8622 9632 A652 B643  M ➜ A R
LDAB C622 D632 E652 F643  M ➜ B R
OR, InclusiveORAA 8A22 9A32 AA52 BA43  A ✚ M ➜ A R
ORAB CA22 DA32 EA52 FA43  B ✚ M ➜ B R
Push DataPSHA 3641  A ➜ MSP, SP - 1 ➜ SP
PSHB 3741  B ➜ MSP, SP - 1 ➜ SP
Pull DataPULA 3241  SP + 1 ➜ SP, MSP ➜ A
PULB 3341  SP + 1 ➜ SP, MSP ➜ B
Rotate LeftROL 6972 7963
6
ROLA 4921 6
ROLB 5921 6
Rotate RightROR 6672 7663
6
RORA 4621 6
RORB 5621 6
Shift Left,ASL 6872 7863
6
ArithmeticASLA 4821 6
ASLB 5821 6
Shift Right,ASR 6772 7763
6
ArithmeticASRA 4721 6
ASRB 5721 6
Shift Right,LSR 6472 7463
R6
LogicLSRA 4421 R6
LSRB 5421 R6
Store AcmltrsSTAA 9742 A762 B753 A ➜ M R
STAB D742 E762 F753 B ➜ M R
SubtractSUBA 8022 9032 A052 B043  A - M ➜ A
SUBB C022 D032 E052 F043  B - M ➜ B
Subtract AcmltrsSBA 1021  A - B ➜ A
Subtr. with CarrySBCA 8222 9232 A252 B243  A - M - C ➜ A
SBCB C222 D232 E242 F243  B - M - C ➜ B
Transfer AcmltrsTAB 1621  A ➜ B R
TBA 1721  B ➜ A R
Test, Zero or MinusTST 6D72 7D63  M - 00 RR
TSTA 4D21  A - 00 RR
TSTB 5D21  B - 00 RR
Index Register and Stack Instructions
ADDRESSING MODES BOOLEAN/ARITHMETIC OPERATIONCOND. CODE REG.
INDEX REGISTER AND STACK IMMED DIRECT INDEX EXTND INHER (All register lables 543210
POINTER OPERATIONS MNEMONIC OP~# OP~# OP~# OP~# OP~# refer to contents) HI NZ VC
Compare Index RegCPX 8C33 9C42 AC62 BC53  (XH/XL) - (M/M + 1) 78
Decrement Index RegDEX 0941  X - 1 ➜ X
Decrement Stack PntrDES 3441  SP - 1 ➜ SP
Increment Index RegINX 0841  X + 1 ➜ X
Increment Stack PntrINS 3141  SP + 1 ➜ SP
Load Index RegLDX CE33 DE42 EE62 FE53  M ➜ XH, (M + 1) ➜ XL 9R
Load Stack PntrLDS 8E33 9E42 AE62 BE53  M ➜ SPH, (M + 1) ➜ SPL 9R
Store Index RegSTX DF42 EF62 FF53  XH ➜ M, XL ➜ (M + 1) 9R
Store Stack PntrSTS 9F42 AF62 BF53  SPH ➜ M, SPL ➜ (M + 1) 9R
Index Reg➜Stack PntrTXS 3541  X - 1 ➜ SP
Stack Pntr➜Index RegTSX 3041  SP + 1 ➜ X
Jump and Branch Instructions
ADDRESSING MODES COND. CODE REG.
JUMP AND BRANCH RELATIVE INDEX EXTND INHER 543210
OPERATIONS MNEMONIC OP~# OP~# OP~# OP~# BRANCH TEST HI NZ VC
Branch AlwaysBRA 2042  None
Branch If Carry ClearBCC 2442  C = 0
Branch If Carry SetBCS 2542  C = 1
Branch If = ZeroBEQ 2742  Z = 1
Branch If ≧ ZeroBGE 2C42  N ⊕ V = 0
Branch If > ZeroBGT 2E42  Z ✚ (N ⊕ V) = 0
Branch If HigherBHI 2242  C ✚ Z = 0
Branch If ≦ ZeroBLE 2F42  Z ✚ (N ⊕ V) = 1
Branch If Lower or SameBLS 2342  C ✚ Z = 1
Branch If < ZeroBLT 2D42  N ⊕ V = 1
Branch If MinusBMI 2B42  N = 1
Branch If Not Equal ZeroBNE 2642  Z = 0
Branch If Overflow ClearBVC 2842  V = 0
Branch If Overflow SetBVS 2942  V = 1
Branch If PlusBPL 2A42  N = 0
Branch To SubroutineBSR 8D42 See
Special
Operations
JumpJMP 6E42 7E33
Jump To SubroutineJSR AD42 BD33
No OperationNOP 0121  Advance Prog. Ctr.
Return From InterruptRTI 3B101 See
Special
Operations
1010 1010 1010
Return From SubroutineRTS 3951
Software InterruptSWI 3D121
Wait For InterruptWAI 3E91 11
Condition Code Register Instructions
ADDRESSING MODES BOOLEAN
CONDITIONS CODE REGISTER INHER OPERATION 543210
OPERATIONS MNEMONIC OP~# HI NZ VC
Clear CarryCLC 0C21 0 ➜ C R
Clear Interrupt MaskCLI 0E21 0 ➜ I R
Clear OverflowCLV 0A21 0 ➜ V R
Set CarrySEC 0D21 1 ➜ C S
Set Interrupt MaskSEI 0F21 1 ➜ I S
Set OverflowSEV 0B21 1 ➜ V S
Acmltr A ➜ CCRTAP 0621 A ➜ CCR 12 12 12 12 12 12
CCR ➜ Acmltr ATPA 0721 CCR ➜ A

Legend and Conditional Code Register Notes
CONDITION CODE REGISTER NOTES:
(Bit set if test is true; cleared otherwise)
1(bit V)Test: Result = 10000000?
2(Bit C)Test: Result 00000000?
3(Bit C)Test: Decimal value of most significant BCD character greater than nine? (Not cleared if previously set)
4(Bit V)Test: Operand = 10000000 Prior to execution?
5(Bit V)Test: Operand = 01111111 Prior to execution?
6(Bit V)Test: Set equal to result of N ⊕ C after shift has occured.
7(Bit N)Test: Sign bit of most significant (MS) byte of result = 1?
8(Bit V)Test: 2's complement overflow from subtraction of MS bytes?
9(Bit N)Test: Result less than zero? (Bit 15 = 1)
10(All)Load Conditional Code Register from Stack (See Special Operations)
11(Bit I)Set when interrupt occurs. If previously set, a Non-Maskable Interrupt is required to exit the wait state.
12ALLSet according to the contents of Accumulator A.
LEGEND: 00Byte = Zero
OPOperation Code (Hex); HHalf carry from bit 3;
~Number of MPU Cycles;I Interupt Mask;
#Number of Program Bytes;N Negative (sign bit);
+Arithmetic Plus;Z Zero (byte);
-Arithmetic Minus;V Overflow, 2's complement;
Boolean AND; CCarry from bit 7;
MSPContents of memory location
pointed to by the stack Pointer;
Test and set if true,
cleared otherwise;
Boolean Inclusive OR; RReset Always;
=Boolean Exclusive OR; SSet Always;
MComplement of M; Not Affected;
Transfer Into; CCRCondition Code Register;
0Bit = 0; LSLeast Significant;
MSMost Significant;

Hexadecimal ⇔ Decimal Conversions
Hexadecimal ⇔ Decimal Conversion
15 Byte 8 7 Byte 0
15 Char 12 11 Char 8 7 Char 4 3 Char 0
HEX DEC HEX DEC HEX DEC HEX DEC
0 0 0 0 0 0 0 0
1 4 096 1 256 1 16 1 1
2 8 192 2 512 2 32 2 2
3 12 288 3 768 3 48 3 3
4 16 384 4 1 024 4 64 4 4
5 20 480 5 1 280 5 80 5 5
6 24 576 6 1 536 6 96 6 6
7 28 672 7 1 792 7 112 7 7
8 32 768 8 2 048 8 128 8 8
9 36 864 9 2 304 9 144 9 9
A 40 960 A 2 560 A 160 A 10
B 45 056 B 2 816 B 176 B 11
C 49 152 C 3 072 C 192 C 12
D 53 248 D 3 328 D 208 D 13
E 57 344 E 3 584 E 224 E 14
F 61 440 F 3 840 F 240 F 15

How to use the tables

Conversion to Decimal: Find the decimal weights for corresponding hexadecimal characters beginning with the least significant character. The sum of the decimal weight is the decimal calue of the hexadecimal number.

Conversion to Hexadecimal: Find the highest decimal value in the table which is lower than or equal to the decimal number to be converted. The corresponding hexadecimal character is the most significant character. With the difference, repeat the process to find subsequent hexadecimal characters.

I have added selectable buttons to the conversion table above. There is a button on the left of each Hex character. This allows you to select a four digit Hexadecimal for conversion to Decimal. The results of this conversion are immediately displayed in the table below. In the Results section, at the bottom,

Hexadecimal ⇒ Decimal Conversion
Bits 15-12Bits 11-8Bits 7-4Bits 3-0Decimal
0
(0 × 4096) +
0
0
(0 × 256) +
0
0
(0 × 16) +
0
0
(0 × 1) =
0
0

This next calculator is for converting from Decimal to Hexadecimal. Just enter your Decimal number on the left and click anywhere outside the entry area. The Hexidecimal equivalent will be displayed on the right. The decimal number is limited to 0 to 65535. It will always display four hex digits.

Decimal ⇒ Hexadecimal Conversion
Decimal InputHex Output
Powers of Two / Powers of Sixteen / ASCII Character Set (7-Bit Code)
POWERS OF TWO
2N N
10
21
42
83
164
325
646
1287
2568
5129
1,02410
2,04811
4,09612
8,19213
16,38414
32,76815
65,52616
131,07217
262,14418
524,28819
1,048,57620
2,097,15221
4,194,30422
8,388,60823
16,777,21624
POWERS OF 16
16N N
10
161
2562
4,0963
65,5364
1,048,5765
16,777,2166
268,435,4567
4,294,967,2968
68,719,476,7369
1,099,511,627,77610
17,592,186,044,41611
281,474,976,710,65612
4,503,599,627,370,49613
72,057,594,037,927,93614
1,152,921,504,606,846,97615
ASCII CHARACTER SET (7-BIT CODE)
MSB ⇒
LSB ⇓
0
000
1
001
2
010
3
011
4
100
5
101
6
110
7
111
0
0000
NULDLESP0@P'p
1
0001
SOHDC1!1AQaq
2
0010
STXDC2"2BRbr
3
0011
ETXDC3#3CScs
4
0100
EOTDC4$4DTdt
5
0101
ENQNAK%5EUeu
6
0110
ACKSYN&6FVfv
7
0111
BELETB^7GWgw
8
1000
BSCAN(8HXhx
9
1001
HTEM)9IYiy
A
1010
LFSUB*:JZjz
B
1011
VTESC+;A[k{
C
1100
FFFS,<L\l|
D
1101
CRGS-=M]m}
E
1110
SORS.>N^n~
F
1111
SIVS/?O_oDEL