DSM/ECU/TMP76xxx MH6xxx Instruction Set: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
{|class="wikitable" | {|class="wikitable" | ||
!|Bytes | |||
!|Mnem | |||
!|Byte length | |||
!|Cycles | |||
!|Desc | |||
|- | |- | ||
|00 | |00 |
Revision as of 01:51, 7 May 2021
Bytes | Mnem | 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 |
14 | IDIV DIR | 2 | 6 | INTEGER DIVIDE |
15 | FDIV DIR | 2 | 6 | FRACTIONAL DIVIDE |
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 |
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 |
80 | SUBD IND,Y | 2 | 6 | SUBTRACT DOUBLE ACCUMULATOR |
A4 | ANDA IND,X | 2 | 4 | LOGICAL AND |
80 | ANDA IND,Y | 2 | 4 | LOGICAL AND |
A5 | BITA IND,X | 2 | 4 | BIT TEST |
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 |
80 | EORA IND,Y | 2 | 4 | EXCLUSIVE OR |
A9 | ADCA IND,X | 2 | 4 | ADD WITH CARRY |
80 | ADCA IND,Y | 2 | 4 | ADD WITH CARRY |
AA | ORAA IND,X | 2 | 4 | INCLUSIVE OR |
80 | ORAA IND,Y | 2 | 4 | INCLUSIVE OR |
AB | ADDA IND,X | 2 | 4 | ADD WITHOUT CARRY |
80 | ADDA IND,Y | 2 | 4 | ADD WITHOUT CARRY |
AC | CPX IND,X | 2 | 6 | COMPARE INDEX REGISTER X |
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 |
80 | LDS IND,Y | 2 | 5 | LOAD STACK POINTER |
AF | STS IND,X | 2 | 5 | STORE STACK POINTER |
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 |
08 | INY | 2 | 4 | INCREMENT INDEX REGISTER Y |
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. | ||||
CE | LDY IMM | 4 | 4 | LOAD INDEX REGISTER Y |
DF | STY DIR | 3 | 5 | STORE INDEX REGISTER Y |
EE | LDY IND,X | 3 | 6 | LOAD INDEX REGISTER Y |
CE | LDX IMM | 3 | 3 | LOAD INDEX REGISTER X |
CF | ***** | 3 | ????? | |
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 |
80 | SUBB IND,Y | 2 | 4 | SUBTRACT |
E1 | CMPB IND,X | 2 | 4 | COMPARE |
80 | CMPB IND,Y | 2 | 4 | COMPARE |
E2 | SBCB IND,X | 2 | 4 | SUBTRACT WITH CARRY |
80 | SBCB IND,Y | 2 | 4 | SUBTRACT WITH CARRY |
E3 | ADDD IND,X | 2 | 6 | ADD DOUBLE ACCUMULATOR |
80 | ADDD IND,Y | 2 | 6 | ADD DOUBLE ACCUMULATOR |
E4 | ANDB IND,X | 2 | 4 | LOGICAL AND |
80 | ANDB IND,Y | 2 | 4 | LOGICAL AND |
E5 | BITB IND,X | 2 | 4 | BIT TEST |
80 | BITB IND,Y | 2 | 4 | BIT TEST |
E6 | LDAB IND,X | 2 | 4 | LOAD ACCUMULATOR |
80 | LDAB IND,Y | 2 | 4 | LOAD ACCUMULATOR |
E7 | STAB IND,X | 2 | 4 | STORE ACCUMULATOR |
80 | STAB IND,Y | 2 | 4 | STORE ACCUMULATOR |
E8 | EORB IND,X | 2 | 4 | EXCLUSIVE OR |
80 | EORB IND,Y | 2 | 4 | EXCLUSIVE OR |
E9 | ADCB IND,X | 2 | 4 | ADD WITH CARRY |
80 | ADCB IND,Y | 2 | 4 | ADD WITH CARRY |
EA | ORAB IND,X | 2 | 4 | INCLUSIVE OR |
80 | ORAB IND,Y | 2 | 4 | INCLUSIVE OR |
EB | ADDB IND,X | 2 | 4 | ADD WITHOUT CARRY |
80 | ADDB IND,Y | 2 | 4 | ADD WITHOUT CARRY |
EC | LDD IND,X | 2 | 5 | LOAD DOUBLE ACCUMULATOR |
80 | LDD IND,Y | 2 | 5 | LOAD DOUBLE ACCUMULATOR |
ED | STD IND,X | 2 | 5 | STORE DOUBLE ACCUMULATOR |
80 | STD IND,Y | 2 | 5 | STORE DOUBLE ACCUMULATOR |
EE | LDX IND,X | 2 | 5 | LOAD INDEX REGISTER X |
80 | LDX IND,Y++ | 2 | 5 | LOAD INDEX REGISTER X WITH/Y++ |
EF | STX IND,X | 2 | 5 | STORE INDEX REGISTER X |
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 |