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 |