Instruction Set of all TMS99xxx CPUs
Jump to navigation
Jump to search
This is a comparative table which lists all assembly instructions for each TMS99xxx processor.
| 9900 | 9995 | 99105 | 99110 | 9980/81 | 9940 | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Mnemonic | Format | op code | binary | C | M | C | M | C | M | C | M | C | M | C | M |
| A | 1 | A000 | 1010 ddDD DDss SSSS | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| AB | 1 | B000 | 1011 ddDD DDss SSSS | 14 | 4 | 5 | 5 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| ABS (MSB=0) ABS (MSB=1) |
6 | 0740 | 0000 0111 01ss SSSS | 12 14 |
2 3 |
6 | 6 | 5 | 3 | 5 | 3 | 16 20 |
4 6 |
X | |
| AI | 8 | 0220 | 0000 0010 0010 RRRR | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| AM* | 002A 4000 |
0000 0000 0010 1010 0100 ddDD DDss SSSS |
12 | 8 | |||||||||||
| ANDI | 8 | 0240 | 0000 0010 0100 RRRR | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| AR* | 0C40 | 0000 1100 01ss SSSS | u | u | |||||||||||
| B | 6 | 0440 | 0000 0100 01ss SSSS | 8 | 2 | 4 | 2 | 3 | 1 | 3 | 1 | 12 | 4 | X | |
| BIND | 0140 | 0000 0001 01ss SSSS | 4 | 2 | 4 | 2 | |||||||||
| BL | 6 | 0680 | 0000 0110 01ss SSSS | 12 | 3 | 7 | 4 | 5 | 2 | 5 | 2 | 18 | 6 | X | |
| BLSK | 8 | 00B0 | 0000 0000 1011 RRRR | 7 | 5 | 7 | 5 | ||||||||
| BLWP | 6 | 0400 | 0000 0100 00ss SSSS | 26 | 6 | 17 | 12 | 10 | 6 | 10 | 6 | 38 | 12 | X | |
| C | 1 | 8000 | 1000 ddDD DDss SSSS | 14 | 3 | 7 | 6 | 4 | 3 | 4 | 3 | 20 | 6 | X | |
| CB | 1 | 9000 | 1001 ddDD DDss SSSS | 14 | 3 | 5 | 4 | 4 | 3 | 4 | 3 | 20 | 6 | X | |
| CER* | 0C06 | 0000 1100 0000 0110 | u | u | |||||||||||
| CI | 8 | 0280 | 0000 0010 1000 RRRR | 14 | 3 | 7 | 6 | 4 | 3 | 4 | 3 | 20 | 6 | X | |
| CIR* | 0C80 | 0000 1100 10ss SSSS | u | u | |||||||||||
| CKOF | 7 | 03C0 | 0000 0011 1100 0000 | 12 | 1 | 8 | 2 | 9 | 1 | 9 | 1 | 14 | 2 | ||
| CKON | 7 | 03A0 | 0000 0011 1010 0000 | 12 | 1 | 8 | 2 | 9 | 1 | 9 | 1 | 14 | 2 | ||
| CLR | 6 | 04C0 | 0000 0100 11ss SSSS | 10 | 3 | 5 | 4 | 3 | 2 | 3 | 2 | 16 | 6 | X | |
| COC | 3 | 2000 | 0010 00DD DDss SSSS | 14 | 3 | 7 | 6 | 4 | 3 | 4 | 3 | 20 | 6 | X | |
| CR* | 0301 0000 |
0000 0011 0000 0001 0000 ddDD DDss SSSS |
u | u | |||||||||||
| CRE* | 0C04 | 0000 1100 0000 0100 | u | u | |||||||||||
| CRI* | 0C00 | 0000 1100 0000 0000 | u | u | |||||||||||
| CZC | 3 | 2400 | 0010 01DD DDss SSSS | 14 | 3 | 7 | 6 | 4 | 3 | 4 | 3 | 20 | 6 | X | |
| DCA | 9 | 2C00 | 0010 1100 00ss SSSS | 7 | |||||||||||
| DCS | 9 | 2C40 | 0010 1100 01ss SSSS | 7 | |||||||||||
| DEC | 6 | 0600 | 0000 0110 00ss SSSS | 10 | 3 | 6 | 6 | 3 | 3 | 3 | 3 | 16 | 6 | X | |
| DECT | 6 | 0640 | 0000 0110 01ss SSSS | 10 | 3 | 6 | 6 | 3 | 3 | 3 | 3 | 16 | 6 | X | |
| DIV (ST4=1) DIV (ST4=0) |
9 | 3C00 | 0011 11DD DDss SSSS | 16 92-124 |
3 6 |
10 34 |
8 12 |
6/10 30 |
4 6 |
6/10 30 |
4 6 |
22 104-136 |
6 12 |
X | |
| DIVS (ST4=1) DIVS (ST4=0) |
0180 | 0000 0001 10ss SSSS | 36 39 |
8 12 |
10/13/33 34 |
4 6 |
10/13/33 34 |
4 6 |
|||||||
| DR* | 0D40 | 0000 1101 01ss SSSS | u | u | |||||||||||
| EVAD* | 0100 | 0000 0001 00ss SSSS | u | u | |||||||||||
| IDLE | 7 | 0340 | 0000 0011 0100 0000 | 12 | 1 | 8+2*I | 2 | 9+2*N | 1 | 9+2*N | 1 | 14 | 2 | X | |
| INC | 6 | 0580 | 0000 0101 10ss SSSS | 10 | 3 | 6 | 6 | 3 | 3 | 3 | 3 | 16 | 6 | X | |
| INCT | 6 | 05C0 | 0000 0101 11ss SSSS | 10 | 3 | 6 | 6 | 3 | 3 | 3 | 3 | 16 | 6 | X | |
| INV | 6 | 0540 | 0000 0101 01ss SSSS | 10 | 3 | 6 | 6 | 3 | 3 | 3 | 3 | 16 | 6 | X | |
| JEQ (cnd is true) (cnd is not true) |
2 | 1300 | 0001 0011 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JGT (cnd is true) (cnd is not true) |
2 | 1500 | 0001 0101 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JH (cnd is true) (cnd is not true) |
2 | 1B00 | 0001 1011 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JHE (cnd is true) (cnd is not true) |
2 | 1400 | 0001 0100 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JL (cnd is true) (cnd is not true) |
2 | 1A00 | 0001 1010 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JLE (cnd is true) (cnd is not true) |
2 | 1200 | 0001 0010 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JLT (cnd is true) (cnd is not true) |
2 | 1100 | 0001 0001 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JMP (cnd is true) (cnd is not true) |
2 | 1000 | 0001 0000 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JNC (cnd is true) (cnd is not true) |
2 | 1700 | 0001 0111 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JNE (cnd is true) (cnd is not true) |
2 | 1600 | 0001 0110 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JNO (cnd is true) (cnd is not true) |
2 | 1900 | 0001 1001 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JOC (cnd is true) (cnd is not true) |
2 | 1800 | 0001 1000 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| JOP (cnd is true) (cnd is not true) |
2 | 1C00 | 0001 1100 CCCC CCCC | 10 8 |
1 1 |
4 4 |
2 2 |
3 | 1 | 3 | 1 | 12 10 |
2 2 |
X | |
| LDCR (C=0) LDCR (C≠0) (MSB R12=1, autoinc.) (MSB R12=1, no autoinc.) |
4 | 3000 | 0011 00CC CCss SSSS | 52 20+2*C |
3 3 |
44 12+2*C |
6 6 |
40 8+2*cnt 8 8 |
3 3 4 3 |
40 8+2*cnt 8 8 |
3 3 4 3 |
58 26+2*C |
6 6 |
X | |
| LDD* | 07C0 | 0000 0111 1100 0000 | u | u | |||||||||||
| LDS* | 0780 | 0000 0111 1000 0000 | u | u | |||||||||||
| LI | 8 | 0200 | 0000 0010 0000 RRRR | 12 | 3 | 6 | 6 | 3 | 3 | 3 | 3 | 18 | 6 | X | |
| LIIM | 9 | 2C00 | 0010 1100 1xxx xxii | 10 | |||||||||||
| LIMI | 8 | 0300 | 0000 0011 0000 0000 | 16 | 2 | 7 | 4 | 5 | 2 | 5 | 2 | 22 | 6 | X | |
| LMF | u | u | u | u | |||||||||||
| LR* | 0D80 | 0000 1101 10ss SSSS | u | u | |||||||||||
| LREX | 7 | 03E0 | 0000 0011 1110 0000 | 12 | 1 | 8 | 2 | 9 | 1 | 9 | 1 | 14 | 2 | ||
| LST | 8 | 0080 | 0000 0000 1000 RRRR | 7 | 4 | 7 | 2 | 7 | 2 | ||||||
| LWP | 8 | 0090 | 0000 0000 1001 RRRR | 6 | 4 | 3 | 2 | 3 | 2 | ||||||
| LWPI | 8 | 02E0 | 0000 0010 1110 0000 | 10 | 2 | 6 | 4 | 3 | 2 | 3 | 2 | 14 | 4 | X | |
| MM* | 0302 0000 |
0000 0011 0000 0010 0000 ddDD DDss SSSS |
u | u | |||||||||||
| MOV | 1 | C000 | 1100 ddDD DDss SSSS | 14 | 4 | 6 | 6 | 3 | 3 | 3 | 3 | 22 | 8 | X | |
| MOVB | 1 | D000 | 1101 ddDD DDss SSSS | 14 | 4 | 4 | 4 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| MPY | 9 | 3800 | 0011 10DD DDss SSSS | 52 | 5 | 28 29 |
10 12 |
23 | 5 | 23 | 5 | 62 | 10 | X | |
| MPYS | 01C0 | 0000 0001 11ss SSSS | 30 | 10 | 25 | 5 | 25 | 5 | |||||||
| MR* | 0D00 | 0000 1101 00ss SSSS | u | u | |||||||||||
| NEG | 6 | 0500 | 0000 0101 00ss SSSS | 12 | 3 | 6 | 6 | 3 | 3 | 3 | 3 | 18 | 6 | X | |
| NEGR* | 0C02 | 0000 1100 0000 0010 | u | u | |||||||||||
| ORI | 8 | 0260 | 0000 0010 0110 RRRR | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| RSET | 7 | 0360 | 0000 0011 0110 0000 | 12 | 1 | 8 | 2 | 9 | 1 | 9 | 1 | 14 | 2 | ||
| RTWP | 7 | 0380 | 0000 0011 1000 0000 | 14 | 4 | 10 | 8 | 9/7 | 4 | 9/7 | 4 | 22 | 8 | X | |
| S | 1 | 6000 | 0110 ddDD DDss SSSS | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| SB | 1 | 7000 | 0111 ddDD DDss SSSS | 14 | 4 | 5 | 5 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| SBO | 2 | 1D00 | 0001 1101 CCCC CCCC | 12 | 2 | 10 | 4 | 7 | 2 | 7 | 2 | 16 | 4 | X | |
| SBZ | 2 | 1E00 | 0001 1110 CCCC CCCC | 12 | 2 | 10 | 4 | 7 | 2 | 7 | 2 | 16 | 4 | X | |
| SETO | 6 | 0700 | 0000 0111 00ss SSSS | 10 | 3 | 5 | 4 | 3 | 2 | 3 | 2 | 16 | 6 | X | |
| SLA (C≠0) (C=0, R0 bit 12-15=0) (C=0, R0 bit 12-15=N≠0) |
5 | 0A00 | 0000 1010 CCCC SSSS | 12+2*C 52 20+2*N |
3 4 4 |
8+C 27 11+N |
6 8 8 |
5+SC 23 7+SC |
3 4 4 |
5+SC 23 7+SC |
3 4 4 |
18+2*C 60 28+2*N |
6 8 8 |
X | |
| SLAM* (C=0) SLAM* (C≠0) |
001D 4000 |
0000 0000 0001 1101 0100 00CC CCss SSSS |
11+SC 13+SC |
5 6 |
|||||||||||
| SM* | 0029 4000 |
0000 0000 0010 1001 0100 ddDD DDss SSSS |
12 | 7 | |||||||||||
| SOC | 1 | E000 | 1110 ddDD DDss SSSS | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| SOCB | 1 | F000 | 1111 ddDD DDss SSSS | 14 | 4 | 5 | 5 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| SR* | 0CC0 | 0000 1100 11ss SSSS | u | u | |||||||||||
| SRA (C≠0) (C=0, R0 bit 12-15=0) (C=0, R0 bit 12-15=N≠0) |
5 | 0800 | 0000 1000 CCCC SSSS | 12+2*C 52 20+2*N |
3 4 4 |
8+C 27 11+N |
6 8 8 |
5+SC 23 7+SC |
3 4 4 |
5+SC 23 7+SC |
3 4 4 |
18+2*C 60 28+2*N |
6 8 8 |
X | |
| SRAM* (C=0) SRAM* (C≠0) |
001C 4000 |
0000 0000 0001 1100 0100 00CC CCss SSSS |
11+SC 13+SC |
5 6 |
|||||||||||
| SRC (C≠0) (C=0, R0 bit 12-15=0) (C=0, R0 bit 12-15=N≠0) |
5 | 0B00 | 0000 1011 CCCC SSSS | 12+2*C 52 20+2*N |
3 4 4 |
8+C 27 11+N |
6 8 8 |
5+SC 23 7+SC |
3 4 4 |
5+SC 23 7+SC |
3 4 4 |
18+2*C 60 28+2*N |
6 8 8 |
X | |
| SRL (C≠0) (C=0, R0 bit 12-15=0) (C=0, R0 bit 12-15=N≠0) |
5 | 0900 | 0000 1001 CCCC SSSS | 12+2*C 52 20+2*N |
3 4 4 |
8+C 27 11+N |
6 8 8 |
5+SC 23 7+SC |
3 4 4 |
5+SC 23 7+SC |
3 4 4 |
18+2*C 60 28+2*N |
6 8 8 |
X | |
| STCR (C=0) STCR (1≤C≤7) STCR (C=8) STCR (9≤C≤15) (MSB R12=1, autoinc.) (MSB R12=1, no autoinc.) |
4 | 3400 | 0011 01CC CCss SSSS | 60 42 44 58 |
4 4 4 4 |
47 23+C 23+C 31+C |
8 8 8 8 |
43 20+cnt 27 20+cnt 10 10 |
3 4 4 3 5 4 |
43 20+cnt 27 20+cnt 10 10 |
3 4 4 3 5 4 |
68 50 52 66 |
8 8 8 8 |
X | |
| STR* | 0DC0 | 0000 1101 11ss SSSS | u | u | |||||||||||
| STST | 8 | 02C0 | 0000 0010 1100 RRRR | 8 | 2 | 5 | 4 | 3 | 2 | 3 | 2 | 12 | 4 | X | |
| STWP | 8 | 02A0 | 0000 0010 1010 RRRR | 8 | 2 | 5 | 4 | 3 | 2 | 3 | 2 | 12 | 4 | X | |
| SWPB | 6 | 06C0 | 0000 0110 11ss SSSS | 10 | 3 | 16 | 6 | 3 | 3 | 3 | 3 | 16 | 6 | X | |
| SZC | 1 | 4000 | 0100 ddDD DDss SSSS | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| SZCB | 1 | 5000 | 0101 ddDD DDss SSSS | 14 | 4 | 5 | 5 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| TB | 2 | 1F00 | 0001 1111 CCCC CCCC | 12 | 2 | 10 | 4 | 7 | 2 | 7 | 2 | 16 | 4 | X | |
| TCMB* | 0C0A 0000 |
0000 1100 0000 1010 0000 00CC CCss SSSS |
26 | 3 | |||||||||||
| TMB* | 0C09 0000 |
0000 1100 0000 1001 0000 00CC CCss SSSS |
26 | 3 | |||||||||||
| TSMB* | 0C0B 0000 |
0000 1100 0000 1011 0000 00CC CCss SSSS |
26 | 3 | |||||||||||
| X | 6 | 0480 | 0000 0100 10ss SSSS | 8 | 2 | 4 | 4 | 2 | 1 | 2 | 1 | 12 | 4 | X | |
| XOP | 9 | 2C00 | 0010 11DD DDss SSSS | 36 | 8 | 22 | 14 | 14 | 7 | 14 | 7 | 52 | 16 | X | |
| XOR | 3 | 2800 | 0010 10CC CCss SSSS | 14 | 4 | 8 | 8 | 4 | 4 | 4 | 4 | 22 | 8 | X | |
| * = Macrostore Instruction (two word instruction) |
C = constant value bit d = Dest. address mode bit D = Dest. operand bit s = Source address mode bit S = Source operand bit R = Workspace register number i = Interrupt mask bit x = Don't care |
u = unknown | u = unknown | X = see 9900 | |||||||||||