DSM/ECU/TMP76xxx MH6xxx Instruction Set
(Redirected from DSM/ECU/MH6211 Instruction Set)
<- DSM/ECU
Bytes | Mnem | Mode | Byte length | Cycles | Desc |
---|---|---|---|---|---|
00 | TEST | 1 | * | TEST OPERATION TEST MODE ONLY | |
01 | NOP | 1 | 2 | NO OPERATION | |
02 | AIM | DIR | 3 | ? | AND IN MEMORY |
03 | OIM | DIR | 3 | ? | OR IN MEMORY |
04 | LSRD | 1 | 3 | LOGICAL SHIFT RIGHT DOUBLE ACCUMULATOR | |
05 | ASLD / LSLD | 1 | 3 | ARITHMETIC / LOGICAL SHIFT LEFT DOUBLE ACC | |
06 | TAP | 1 | 2 | TRANSFER FROM ACC A TO CONDITION CODE REGISTER | |
07 | TPA | 1 | 2 | TRANSFER FROM CONDITION CODE REGISTER TO ACC A | |
08 | INX | 1 | 3 | INCREMENT INDEX REGISTER X | |
09 | DEX | 1 | 3 | DECREMENT INDEX REGISTER X | |
0A | CLV | 1 | 2 | CLEAR TWOS COMPLEMENT OVERFLOW BIT | |
0B | SEV | 1 | 2 | SET TWOS COMPLEMENT OVERFLOW BIT | |
0C | CLC | 1 | 2 | CLEAR CARRY | |
0D | SEC | 1 | 2 | SET CARRY | |
0E | CLI | 1 | 2 | CLEAR INTERRUPT MASK | |
0F | SEI | 1 | 2 | SET INTERRUPT MASK | |
10 | SBA | 1 | 2 | SUBTRACT ACCUMULATORS | |
11 | CBA | 1 | 2 | COMPARE ACCUMULATORS | |
12 | AIM | IND,X | 3 | ? | ANd in memory, indexed X |
13 | OIM | IND,X | 3 | ? | Or in memory, indexed X |
14 | DIV | IMM | 2 | 4 | DIVIDE IMMEDIATE |
15 | DIV | DIR | 2 | 4 | DIVIDE DIRECT |
16 | TAB | 1 | 2 | TRANSFER ACCUMULATOR A TO ACCUMULATOR B | |
17 | TBA | 1 | 2 | TRANSFER FROM ACCUMULATOR B TO ACCUMULATOR A | |
18 | XGXY | 1 | 4 | EXCHANGE REGISTER X AND REGISTER Y | |
19 | DAA | 1 | 2 | DECIMAL ADJUST ACCUMULATOR A | |
1A | XGDX | 1 | EXCHANGE DOUBLE ACCUMLATOR AND INDEX REG X | ||
1B | ABA | 1 | 2 | ADD ACCUMULATOR B TO ACCUMULATOR A | |
1C | CPD | IMM | 3 | 5 | COMPARE DOUBLE ACCUMULATOR |
1D | CPD | DIR | 2 | 6 | COMPARE DOUBLE ACCUMULATOR |
1E | CPD | IND,X | 2 | ? | COMPARE DOUBLE ACCUMULATOR |
1F | CPD | EXT | 3 | 7 | COMPARE DOUBLE ACCUMULATOR |
20 | BRA | 2 | 3 | BRANCH ALWAYS | |
21 | BRN | 2 | 3 | BRANCH NEVER | |
22 | BHI | 2 | 3 | BRANCH IF HIGHER | |
23 | BLS | 2 | 3 | BRANCH IF LOWER OR SAME | |
24 | BCC / BHS | 2 | 3 | BRANCH IF CARRY CLR / BRANCH IF HIGHER OR SAME | |
25 | BCS / BLO | 2 | 3 | BRANCH IF CARRY SET / BRANCH IF LOWER | |
26 | BNE | 2 | 3 | BRANCH IF NOT EQUAL TO ZERO | |
27 | BEQ | 2 | 3 | BRANCH IF EQUAL | |
28 | BVC | 2 | 3 | BRANCH IF OVERFLOW CLEAR | |
29 | BVS | 2 | 3 | BRANCH IF OVERFLOW SET | |
2A | BPL | 2 | 3 | BRANCH IF PLUS | |
2B | BMI | 2 | 3 | BRANCH IF MINUS | |
2C | BGE | 2 | 3 | BRANCH IF GREATER THAN OR EQUAL TO ZERO | |
2D | BLT | 2 | 3 | BRANCH IF LESS THAN ZERO | |
2E | BGT | 2 | 3 | BRANCH IF GREATER THAN ZERO | |
2F | BLE | 2 | 3 | BRANCH IF LESS THAN OR EQUAL TO ZERO | |
30 | TSX | 1 | 3 | TRANSFER FROM STACK POINTER TO INDEX REGISTER X | |
31 | INS | 1 | 3 | INCREMENT STACK POINTER | |
32 | PULA | 1 | 4 | PULL DATA FROM STACK | |
33 | PULB | 1 | 4 | PULL DATA FROM STACK | |
34 | DES | 1 | 3 | DECREMENT STACK POINTER | |
35 | TXS | 1 | 3 | TRANSFER FROM INDEX REGISTER X TO STACK POINTER | |
36 | PSHA | 1 | 3 | PUSH DATA ONTO STACK | |
37 | PSHB | 1 | 3 | PUSH DATA ONTO STACK | |
38 | PULX | 1 | 5 | PULL INDEX REGISTER X FROM STACK | |
39 | RTS | 1 | 5 | RETURN FROM SUBROUTINE | |
3A | ABX | 1 | 3 | ADD ACCUMULATOR B TO INDEX REGISTER X | |
3B | RTI | 1 | 12 | RETURN FROM INTERRUPT | |
3C | PSHX | 1 | 4 | PUSH INDEX REGISTER X ONTO STACK | |
3D | MUL | 1 | 10 | MULTIPLY UNSIGNED | |
3E | WAI | 1 | 14 | WAIT FOR INTERRUPT | |
3F | SWI | 1 | 14 | SOFTWARE INTERRUPT | |
40 | NEGA | 1 | 2 | NEGATE | |
43 | COMA | 1 | 2 | COMPLEMENT | |
44 | LSRA | 1 | 2 | LOGICAL SHIFT RIGHT | |
46 | RORA | 1 | 2 | ROTATE RIGHT | |
47 | ASRA | 1 | 2 | ARITHMETIC SHIFT RIGHT | |
48 | ASLA / LSLA | 1 | 2 | ARITHMETIC / LOGICAL SHIFT LEFT | |
49 | ROLA | 1 | 2 | ROTATE LEFT | |
4A | DECA | 1 | 2 | DECREMENT | |
4C | INCA | 1 | 2 | INCREMENT | |
4D | TSTA | 1 | 2 | TEST | |
4F | CLRA | 1 | 2 | CLEAR | |
50 | NEGB | 1 | 2 | NEGATE | |
53 | COMB | 1 | 2 | COMPLEMENT | |
54 | LSRB | 1 | 2 | LOGICAL SHIFT RIGHT | |
56 | RORB | 1 | 2 | ROTATE RIGHT | |
57 | ASRB | 1 | 2 | ARITHMETIC SHIFT RIGHT | |
58 | ASLB / LSLB | 1 | 2 | ARITHMETIC / LOGICAL SHIFT LEFT | |
59 | ROLB | 1 | 2 | ROTATE LEFT | |
5A | DECB | 1 | 2 | DECREMENT | |
5C | INCB | 1 | 2 | INCREMENT | |
5D | TSTB | 1 | 2 | TEST | |
5F | CLRB | 1 | 2 | CLEAR | |
60 | NEG | IND,X | 2 | 6 | NEGATE |
63 | COM | IND,X | 2 | 6 | COMPLEMENT |
64 | LSR | IND,X | 2 | 6 | LOGICAL SHIFT RIGHT |
66 | ROR | IND,X | 2 | 6 | ROTATE RIGHT |
67 | ASR | IND,X | 2 | 6 | ARITHMETIC SHIFT RIGHT |
68 | ASL / LSL | IND,X | 2 | 6 | ARITHMETIC / LOGICAL SHIFT LEFT |
69 | ROL | IND,X | 2 | 6 | ROTATE LEFT |
6A | DEC | IND,X | 2 | 6 | DECREMENT |
6C | INC | IND,X | 2 | 6 | INCREMENT |
6D | TST | IND,X | 2 | 6 | TEST |
6E | JMP | IND,X | 2 | 3 | JUMP |
6F | CLR | IND,X | 2 | 6 | CLEAR |
70 | NEG | EXT | 3 | 6 | NEGATE |
73 | COM | EXT | 3 | 6 | COMPLEMENT |
74 | LSR | EXT | 3 | 6 | LOGICAL SHIFT RIGHT |
76 | ROR | EXT | 3 | 6 | ROTATE RIGHT |
77 | ASR | EXT | 3 | 6 | ARITHMETIC SHIFT RIGHT |
78 | ASL / LSL | EXT | 3 | 6 | ARITHMETIC / LOGICAL SHIFT LEFT |
79 | ROL | EXT | 3 | 6 | ROTATE LEFT |
7A | DEC | EXT | 3 | 6 | DECREMENT |
7C | INC | EXT | 3 | 6 | INCREMENT |
7D | TST | EXT | 3 | 6 | TEST |
7E | JMP | EXT | 3 | 3 | JUMP |
7F | CLR | EXT | 3 | 6 | CLEAR |
80 | SUBA | IMM | 2 | 2 | SUBTRACT |
81 | CMPA | IMM | 2 | 2 | COMPARE |
82 | SBCA | IMM | 2 | 2 | SUBTRACT WITH CARRY |
83 | SUBD | IMM | 3 | 4 | SUBTRACT DOUBLE ACCUMULATOR |
84 | ANDA | IMM | 2 | 2 | LOGICAL AND |
85 | BITA | IMM | 2 | 2 | BIT TEST |
86 | LDAA | IMM | 2 | 2 | LOAD ACCUMULATOR |
87 | BRSET | DIR | 4 | BRANCH IF BIT(S) ARE SET | |
88 | EORA | IMM | 2 | 2 | EXCLUSIVE OR |
89 | ADCA | IMM | 2 | 2 | ADD WITH CARRY |
8A | ORAA | IMM | 2 | 2 | INCLUSIVE OR |
8B | ADDA | IMM | 2 | 2 | ADD WITHOUT CARRY |
8C | CPX | IMM | 3 | 4 | COMPARE INDEX REGISTER X |
8D | BSR | 2 | 6 | BRANCH TO SUBROUTINE | |
8E | LDS | IMM | 3 | 3 | LOAD STACK POINTER |
8F | BRCLR | DIR | 4 | BRANCH IF BIT(S) ARE CLEAR | |
90 | SUBA | DIR | 2 | 3 | SUBTRACT |
91 | CMPA | DIR | 2 | 3 | COMPARE |
92 | SBCA | DIR | 2 | 3 | SUBTRACT WITH CARRY |
93 | SUBD | DIR | 2 | 5 | SUBTRACT DOUBLE ACCUMULATOR |
94 | ANDA | DIR | 2 | 3 | LOGICAL AND |
95 | BITA | DIR | 2 | 3 | BIT TEST |
96 | LDAA | DIR | 2 | 3 | LOAD ACCUMULATOR |
97 | STAA | DIR | 2 | 3 | STORE ACCUMULATOR |
98 | EORA | DIR | 2 | 3 | EXCLUSIVE OR |
99 | ADCA | DIR | 2 | 3 | ADD WITH CARRY |
9A | ORAA | DIR | 2 | 3 | INCLUSIVE OR |
9B | ADDA | DIR | 2 | 3 | ADD WITHOUT CARRY |
9C | CPX | DIR | 2 | 5 | COMPARE INDEX REGISTER X |
9D | JSR | DIR | 2 | 5 | JUMP TO SUBROUTINE |
9E | LDS | DIR | 2 | 4 | LOAD STACK POINTER |
9F | STS | DIR | 2 | 4 | STORE STACK POINTER |
A0 | SUBA | IND,X | 2 | 4 | SUBTRACT |
A0 80 | SUBA | IND,Y | 2 | SUBTRACT | |
A1 | CMPA | IND,X | 2 | 4 | COMPARE |
A1 80 | CMPA | IND,Y+ | 2 | COMPARE WITH/Y+ | |
A2 | SBCA | IND,X | 2 | 4 | SUBTRACT WITH CARRY |
A2 80 | SBCA | IND,Y | 2 | SUBTRACT WITH CARRY | |
A3 | SUBD | IND,X | 2 | 6 | SUBTRACT DOUBLE ACCUMULATOR |
A3 80 | SUBD | IND,Y | 2 | 6 | SUBTRACT DOUBLE ACCUMULATOR |
A4 | ANDA | IND,X | 2 | 4 | LOGICAL AND |
A4 80 | ANDA | IND,Y | 2 | 4 | LOGICAL AND |
A5 | BITA | IND,X | 2 | 4 | BIT TEST |
A5 80 | BITA | IND,Y | 2 | 4 | BIT TEST |
A6 | LDAA | IND,X | 2 | 4 | LOAD ACCUMULATOR |
A6 80 | LDAA | IND,Y+ | 2 | LOAD ACCUMULATOR WITH/Y+ | |
A7 | STAA | IND,X | 2 | 4 | STORE ACCUMULATOR |
A7 80 | STAA | IND,Y | 2 | STORE ACCUMULATOR | |
A8 | EORA | IND,X | 2 | 4 | EXCLUSIVE OR |
A8 80 | EORA | IND,Y | 2 | 4 | EXCLUSIVE OR |
A9 | ADCA | IND,X | 2 | 4 | ADD WITH CARRY |
A9 80 | ADCA | IND,Y | 2 | 4 | ADD WITH CARRY |
AA | ORAA | IND,X | 2 | 4 | INCLUSIVE OR |
AA 80 | ORAA | IND,Y | 2 | 4 | INCLUSIVE OR |
AB | ADDA | IND,X | 2 | 4 | ADD WITHOUT CARRY |
AB 80 | ADDA | IND,Y | 2 | 4 | ADD WITHOUT CARRY |
AC | CPX | IND,X | 2 | 6 | COMPARE INDEX REGISTER X |
AC 80 | CPX | IND,Y | 2 | 6 | COMPARE INDEX REGISTER X |
AD | JSR | IND,X | 2 | 6 | JUMP TO SUBROUTINE |
AD 80 | JSR | IND,Y | 2 | JUMP TO SUBROUTINE | |
AE | LDS | IND,X | 2 | 5 | LOAD STACK POINTER |
AE 80 | LDS | IND,Y | 2 | 5 | LOAD STACK POINTER |
AF | STS | IND,X | 2 | 5 | STORE STACK POINTER |
AF 80 | STS | IND,Y | 2 | 5 | STORE STACK POINTER |
B0 | SUBA | EXT | 3 | 4 | SUBTRACT |
B1 | CMPA | EXT | 3 | 4 | COMPARE |
B2 | SBCA | EXT | 3 | 4 | SUBTRACT WITH CARRY |
B3 | SUBD | EXT | 3 | 6 | SUBTRACT DOUBLE ACCUMULATOR |
B4 | ANDA | EXT | 3 | 4 | LOGICAL AND |
B5 | BITA | EXT | 3 | 4 | BIT TEST |
B6 | LDAA | EXT | 3 | 4 | LOAD ACCUMULATOR |
B7 | STAA | EXT | 3 | 4 | STORE ACCUMULATOR |
B8 | EORA | EXT | 3 | 4 | EXCLUSIVE OR |
B9 | ADCA | EXT | 3 | 4 | ADD WITH CARRY |
BA | ORAA | EXT | 3 | 4 | INCLUSIVE OR |
BB | ADDA | EXT | 3 | 4 | ADD WITHOUT CARRY |
BC | CPX | EXT | 3 | 6 | COMPARE INDEX REGISTER X |
BD | JSR | EXT | 3 | 6 | JUMP TO SUBROUTINE |
BE | LDS | EXT | 3 | 5 | LOAD STACK POINTER |
BF | STS | EXT | 3 | 5 | STORE STACK POINTER |
C0 | SUBB | IMM | 2 | 2 | SUBTRACT |
C1 | CMPB | IMM | 2 | 2 | COMPARE |
C2 | SBCB | IMM | 2 | 2 | SUBTRACT WITH CARRY |
C3 | ADDD | IMM | 3 | 4 | ADD DOUBLE ACCUMULATOR |
C4 | ANDB | IMM | 2 | 2 | LOGICAL AND |
C5 | BITB | IMM | 2 | 2 | BIT TEST |
C6 | LDAB | IMM | 2 | 2 | LOAD ACCUMULATOR |
C8 | EORB | IMM | 2 | 2 | EXCLUSIVE OR |
C9 | ADCB | IMM | 2 | 2 | ADD WITH CARRY |
CA | ORAB | IMM | 2 | 2 | INCLUSIVE OR |
CB | ADDB | IMM | 2 | 2 | ADD WITHOUT CARRY |
CC | LDD | IMM | 3 | 3 | LOAD DOUBLE ACCUMULATOR |
CD 08 | INY | 2 | 4 | INCREMENT INDEX REGISTER Y | |
CD 09 | DEY | 2 | 4 | DECREMENT INDEX REGISTER Y | |
CD 1A | XGDY | 2 | EXCHANGE DOUBLE ACCUMULATOR AND INDEX REG Y | ||
CD 3A | ABY | 2 | ADD ACCUMULATOR B TO INDEX REG Y | ||
CD 8C | CMPY | IMM, Y++ | 4 | CMPY INDEX REGISTER Y AND INCREMENT. | |
CD CE | LDY | IMM | 4 | 4 | LOAD INDEX REGISTER Y |
CD DF | STY | DIR | 3 | 5 | STORE INDEX REGISTER Y |
CD EE | LDY | IND,X | 3 | 6 | LOAD INDEX REGISTER Y |
CE | LDX | IMM | 3 | 3 | LOAD INDEX REGISTER X |
CF | BRCLR | IND,X | 3 | ? | Branch if clear |
D0 | SUBB | DIR | 2 | 3 | SUBTRACT |
D1 | CMPB | DIR | 2 | 3 | COMPARE |
D2 | SBCB | DIR | 2 | 3 | SUBTRACT WITH CARRY |
D3 | ADDD | DIR | 2 | 5 | ADD DOUBLE ACCUMULATOR |
D4 | ANDB | DIR | 2 | 3 | LOGICAL AND |
D5 | BITB | DIR | 2 | 3 | BIT TEST |
D6 | LDAB | DIR | 2 | 3 | LOAD ACCUMULATOR |
D7 | STAB | DIR | 2 | 3 | STORE ACCUMULATOR |
D8 | EORB | DIR | 2 | 3 | EXCLUSIVE OR |
D9 | ADCB | DIR | 2 | 3 | ADD WITH CARRY |
DA | ORAB | DIR | 2 | 3 | INCLUSIVE OR |
DB | ADDB | DIR | 2 | 3 | ADD WITHOUT CARRY |
DC | LDD | DIR | 2 | 4 | LOAD DOUBLE ACCUMULATOR |
DD | STD | DIR | 2 | 4 | STORE DOUBLE ACCUMULATOR |
DE | LDX | DIR | 2 | 4 | LOAD INDEX REGISTER X |
DF | STX | DIR | 2 | 4 | STORE INDEX REGISTER X |
E0 | SUBB | IND,X | 2 | 4 | SUBTRACT |
E0 80 | SUBB | IND,Y | 2 | 4 | SUBTRACT |
E1 | CMPB | IND,X | 2 | 4 | COMPARE |
E1 80 | CMPB | IND,Y | 2 | 4 | COMPARE |
E2 | SBCB | IND,X | 2 | 4 | SUBTRACT WITH CARRY |
E2 80 | SBCB | IND,Y | 2 | 4 | SUBTRACT WITH CARRY |
E3 | ADDD | IND,X | 2 | 6 | ADD DOUBLE ACCUMULATOR |
E3 80 | ADDD | IND,Y | 2 | 6 | ADD DOUBLE ACCUMULATOR |
E4 | ANDB | IND,X | 2 | 4 | LOGICAL AND |
E4 80 | ANDB | IND,Y | 2 | 4 | LOGICAL AND |
E5 | BITB | IND,X | 2 | 4 | BIT TEST |
E5 80 | BITB | IND,Y | 2 | 4 | BIT TEST |
E6 | LDAB | IND,X | 2 | 4 | LOAD ACCUMULATOR |
E6 80 | LDAB | IND,Y | 2 | 4 | LOAD ACCUMULATOR |
E7 | STAB | IND,X | 2 | 4 | STORE ACCUMULATOR |
E7 80 | STAB | IND,Y | 2 | 4 | STORE ACCUMULATOR |
E8 | EORB | IND,X | 2 | 4 | EXCLUSIVE OR |
E8 80 | EORB | IND,Y | 2 | 4 | EXCLUSIVE OR |
E9 | ADCB | IND,X | 2 | 4 | ADD WITH CARRY |
E9 80 | ADCB | IND,Y | 2 | 4 | ADD WITH CARRY |
EA | ORAB | IND,X | 2 | 4 | INCLUSIVE OR |
EA 80 | ORAB | IND,Y | 2 | 4 | INCLUSIVE OR |
EB | ADDB | IND,X | 2 | 4 | ADD WITHOUT CARRY |
EB 80 | ADDB | IND,Y | 2 | 4 | ADD WITHOUT CARRY |
EC | LDD | IND,X | 2 | 5 | LOAD DOUBLE ACCUMULATOR |
EC 80 | LDD | IND,Y | 2 | 5 | LOAD DOUBLE ACCUMULATOR |
ED | STD | IND,X | 2 | 5 | STORE DOUBLE ACCUMULATOR |
ED 80 | STD | IND,Y | 2 | 5 | STORE DOUBLE ACCUMULATOR |
EE | LDX | IND,X | 2 | 5 | LOAD INDEX REGISTER X |
EE 80 | LDX | IND,Y++ | 2 | 5 | LOAD INDEX REGISTER X WITH/Y++ |
EF | STX | IND,X | 2 | 5 | STORE INDEX REGISTER X |
EF 80 | STX | IND,X | 2 | 5 | STORE INDEX REGISTER X |
F0 | SUBB | EXT | 3 | 4 | SUBTRACT |
F1 | CMPB | EXT | 3 | 4 | COMPARE |
F2 | SBCB | EXT | 3 | 4 | SUBTRACT WITH CARRY |
F3 | ADDD | EXT | 3 | 6 | ADD DOUBLE ACCUMULATOR |
F4 | ANDB | EXT | 3 | 4 | LOGICAL AND |
F5 | BITB | EXT | 3 | 4 | BIT TEST |
F6 | LDAB | EXT | 3 | 4 | LOAD ACCUMULATOR |
F7 | STAB | EXT | 3 | 4 | STORE ACCUMULATOR |
F8 | EORB | EXT | 3 | 4 | EXCLUSIVE OR |
F9 | ADCB | EXT | 3 | 4 | ADD WITH CARRY |
FA | ORAB | EXT | 3 | 4 | INCLUSIVE OR |
FB | ADDB | EXT | 3 | 4 | ADD WITHOUT CARRY |
FC | LDD | EXT | 3 | 5 | LOAD DOUBLE ACCUMULATOR |
FD | STD | EXT | 3 | 5 | STORE DOUBLE ACCUMULATOR |
FE | LDX | EXT | 3 | 5 | LOAD INDEX REGISTER X |
FF | STX | EXT | 3 | 5 | STORE INDEX REGISTER X |