Reference
Texas Instruments TMS7000
63 mnemonics, 203 encoded forms, operands big-endian. Generated from crates/isa/src/tms7000.rs.
Cycle counts show the base cost; +p is an extra cycle when an
indexed access crosses a page boundary, +t when a branch is taken.
MOV
Move
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 12 |
imm8 | 2 | 0 | — |
| %n,a | 22 |
imm8 | 2 | 0 | — |
| rn,b | 32 |
imm8 | 2 | 0 | — |
| rn,rn | 42 |
imm8, imm8 | 3 | 0 | — |
| %n,b | 52 |
imm8 | 2 | 0 | — |
| b,a | 62 |
— | 1 | 0 | — |
| %n,rn | 72 |
imm8, imm8 | 3 | 0 | — |
AND
Logical AND
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 13 |
imm8 | 2 | 0 | — |
| %n,a | 23 |
imm8 | 2 | 0 | — |
| rn,b | 33 |
imm8 | 2 | 0 | — |
| rn,rn | 43 |
imm8, imm8 | 3 | 0 | — |
| %n,b | 53 |
imm8 | 2 | 0 | — |
| b,a | 63 |
— | 1 | 0 | — |
| %n,rn | 73 |
imm8, imm8 | 3 | 0 | — |
OR
Logical OR
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 14 |
imm8 | 2 | 0 | — |
| %n,a | 24 |
imm8 | 2 | 0 | — |
| rn,b | 34 |
imm8 | 2 | 0 | — |
| rn,rn | 44 |
imm8, imm8 | 3 | 0 | — |
| %n,b | 54 |
imm8 | 2 | 0 | — |
| b,a | 64 |
— | 1 | 0 | — |
| %n,rn | 74 |
imm8, imm8 | 3 | 0 | — |
XOR
Logical XOR
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 15 |
imm8 | 2 | 0 | — |
| %n,a | 25 |
imm8 | 2 | 0 | — |
| rn,b | 35 |
imm8 | 2 | 0 | — |
| rn,rn | 45 |
imm8, imm8 | 3 | 0 | — |
| %n,b | 55 |
imm8 | 2 | 0 | — |
| b,a | 65 |
— | 1 | 0 | — |
| %n,rn | 75 |
imm8, imm8 | 3 | 0 | — |
BTJO
Bit test and jump if one
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 16 |
imm8, rel8 | 3 | 0 | — |
| %n,a | 26 |
imm8, rel8 | 3 | 0 | — |
| rn,b | 36 |
imm8, rel8 | 3 | 0 | — |
| rn,rn | 46 |
imm8, imm8, rel8 | 4 | 0 | — |
| %n,b | 56 |
imm8, rel8 | 3 | 0 | — |
| b,a | 66 |
rel8 | 2 | 0 | — |
| %n,rn | 76 |
imm8, imm8, rel8 | 4 | 0 | — |
BTJZ
Bit test and jump if zero
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 17 |
imm8, rel8 | 3 | 0 | — |
| %n,a | 27 |
imm8, rel8 | 3 | 0 | — |
| rn,b | 37 |
imm8, rel8 | 3 | 0 | — |
| rn,rn | 47 |
imm8, imm8, rel8 | 4 | 0 | — |
| %n,b | 57 |
imm8, rel8 | 3 | 0 | — |
| b,a | 67 |
rel8 | 2 | 0 | — |
| %n,rn | 77 |
imm8, imm8, rel8 | 4 | 0 | — |
ADD
Add
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 18 |
imm8 | 2 | 0 | — |
| %n,a | 28 |
imm8 | 2 | 0 | — |
| rn,b | 38 |
imm8 | 2 | 0 | — |
| rn,rn | 48 |
imm8, imm8 | 3 | 0 | — |
| %n,b | 58 |
imm8 | 2 | 0 | — |
| b,a | 68 |
— | 1 | 0 | — |
| %n,rn | 78 |
imm8, imm8 | 3 | 0 | — |
ADC
Add with carry
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 19 |
imm8 | 2 | 0 | — |
| %n,a | 29 |
imm8 | 2 | 0 | — |
| rn,b | 39 |
imm8 | 2 | 0 | — |
| rn,rn | 49 |
imm8, imm8 | 3 | 0 | — |
| %n,b | 59 |
imm8 | 2 | 0 | — |
| b,a | 69 |
— | 1 | 0 | — |
| %n,rn | 79 |
imm8, imm8 | 3 | 0 | — |
SUB
Subtract
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 1A |
imm8 | 2 | 0 | — |
| %n,a | 2A |
imm8 | 2 | 0 | — |
| rn,b | 3A |
imm8 | 2 | 0 | — |
| rn,rn | 4A |
imm8, imm8 | 3 | 0 | — |
| %n,b | 5A |
imm8 | 2 | 0 | — |
| b,a | 6A |
— | 1 | 0 | — |
| %n,rn | 7A |
imm8, imm8 | 3 | 0 | — |
SBB
Subtract with borrow
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 1B |
imm8 | 2 | 0 | — |
| %n,a | 2B |
imm8 | 2 | 0 | — |
| rn,b | 3B |
imm8 | 2 | 0 | — |
| rn,rn | 4B |
imm8, imm8 | 3 | 0 | — |
| %n,b | 5B |
imm8 | 2 | 0 | — |
| b,a | 6B |
— | 1 | 0 | — |
| %n,rn | 7B |
imm8, imm8 | 3 | 0 | — |
MPY
Multiply
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 1C |
imm8 | 2 | 0 | — |
| %n,a | 2C |
imm8 | 2 | 0 | — |
| rn,b | 3C |
imm8 | 2 | 0 | — |
| rn,rn | 4C |
imm8, imm8 | 3 | 0 | — |
| %n,b | 5C |
imm8 | 2 | 0 | — |
| b,a | 6C |
— | 1 | 0 | — |
| %n,rn | 7C |
imm8, imm8 | 3 | 0 | — |
CMP
Compare
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 1D |
imm8 | 2 | 0 | — |
| %n,a | 2D |
imm8 | 2 | 0 | — |
| rn,b | 3D |
imm8 | 2 | 0 | — |
| rn,rn | 4D |
imm8, imm8 | 3 | 0 | — |
| %n,b | 5D |
imm8 | 2 | 0 | — |
| b,a | 6D |
— | 1 | 0 | — |
| %n,rn | 7D |
imm8, imm8 | 3 | 0 | — |
DAC
Decimal add with carry
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 1E |
imm8 | 2 | 0 | — |
| %n,a | 2E |
imm8 | 2 | 0 | — |
| rn,b | 3E |
imm8 | 2 | 0 | — |
| rn,rn | 4E |
imm8, imm8 | 3 | 0 | — |
| %n,b | 5E |
imm8 | 2 | 0 | — |
| b,a | 6E |
— | 1 | 0 | — |
| %n,rn | 7E |
imm8, imm8 | 3 | 0 | — |
DSB
Decimal subtract with borrow
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| rn,a | 1F |
imm8 | 2 | 0 | — |
| %n,a | 2F |
imm8 | 2 | 0 | — |
| rn,b | 3F |
imm8 | 2 | 0 | — |
| rn,rn | 4F |
imm8, imm8 | 3 | 0 | — |
| %n,b | 5F |
imm8 | 2 | 0 | — |
| b,a | 6F |
— | 1 | 0 | — |
| %n,rn | 7F |
imm8, imm8 | 3 | 0 | — |
MOV
Move (A/B source)
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a,b | C0 |
— | 1 | 0 | — |
| a,rn | D0 |
imm8 | 2 | 0 | — |
| b,rn | D1 |
imm8 | 2 | 0 | — |
MOVP
Move to/from peripheral
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| pn,a | 80 |
imm8 | 2 | 0 | — |
| pn,b | 91 |
imm8 | 2 | 0 | — |
| a,pn | 82 |
imm8 | 2 | 0 | — |
| b,pn | 92 |
imm8 | 2 | 0 | — |
| %n,pn | A2 |
imm8, imm8 | 3 | 0 | — |
ANDP
AND with peripheral
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a,pn | 83 |
imm8 | 2 | 0 | — |
| b,pn | 93 |
imm8 | 2 | 0 | — |
| %n,pn | A3 |
imm8, imm8 | 3 | 0 | — |
ORP
OR with peripheral
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a,pn | 84 |
imm8 | 2 | 0 | — |
| b,pn | 94 |
imm8 | 2 | 0 | — |
| %n,pn | A4 |
imm8, imm8 | 3 | 0 | — |
XORP
XOR with peripheral
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a,pn | 85 |
imm8 | 2 | 0 | — |
| b,pn | 95 |
imm8 | 2 | 0 | — |
| %n,pn | A5 |
imm8, imm8 | 3 | 0 | — |
BTJOP
Bit test peripheral and jump if one
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a,pn | 86 |
imm8, rel8 | 3 | 0 | — |
| b,pn | 96 |
imm8, rel8 | 3 | 0 | — |
| %n,pn | A6 |
imm8, imm8, rel8 | 4 | 0 | — |
BTJZP
Bit test peripheral and jump if zero
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a,pn | 87 |
imm8, rel8 | 3 | 0 | — |
| b,pn | 97 |
imm8, rel8 | 3 | 0 | — |
| %n,pn | A7 |
imm8, imm8, rel8 | 4 | 0 | — |
LDA
Load A
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| @ | 8A |
addr16 | 3 | 0 | — |
| * | 9A |
imm8 | 2 | 0 | — |
| @(b) | AA |
addr16 | 3 | 0 | — |
STA
Store A
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| @ | 8B |
addr16 | 3 | 0 | — |
| * | 9B |
imm8 | 2 | 0 | — |
| @(b) | AB |
addr16 | 3 | 0 | — |
BR
Branch
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| @ | 8C |
addr16 | 3 | 0 | — |
| * | 9C |
imm8 | 2 | 0 | — |
| @(b) | AC |
addr16 | 3 | 0 | — |
CMPA
Compare A
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| @ | 8D |
addr16 | 3 | 0 | — |
| * | 9D |
imm8 | 2 | 0 | — |
| @(b) | AD |
addr16 | 3 | 0 | — |
CALL
Call
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| @ | 8E |
addr16 | 3 | 0 | — |
| * | 9E |
imm8 | 2 | 0 | — |
| @(b) | AE |
addr16 | 3 | 0 | — |
MOVD
Move double (16-bit)
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| %n,rn | 88 |
addr16, imm8 | 4 | 0 | — |
| rn,rn | 98 |
imm8, imm8 | 3 | 0 | — |
| %n(b),rn | A8 |
addr16, imm8 | 4 | 0 | — |
DEC
Decrement
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B2 |
— | 1 | 0 | — |
| b | C2 |
— | 1 | 0 | — |
| rn | D2 |
imm8 | 2 | 0 | — |
INC
Increment
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B3 |
— | 1 | 0 | — |
| b | C3 |
— | 1 | 0 | — |
| rn | D3 |
imm8 | 2 | 0 | — |
INV
Invert
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B4 |
— | 1 | 0 | — |
| b | C4 |
— | 1 | 0 | — |
| rn | D4 |
imm8 | 2 | 0 | — |
CLR
Clear
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B5 |
— | 1 | 0 | — |
| b | C5 |
— | 1 | 0 | — |
| rn | D5 |
imm8 | 2 | 0 | — |
XCHB
Exchange with B
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B6 |
— | 1 | 0 | — |
| b | C6 |
— | 1 | 0 | — |
| rn | D6 |
imm8 | 2 | 0 | — |
SWAP
Swap nibbles
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B7 |
— | 1 | 0 | — |
| b | C7 |
— | 1 | 0 | — |
| rn | D7 |
imm8 | 2 | 0 | — |
PUSH
Push
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B8 |
— | 1 | 0 | — |
| b | C8 |
— | 1 | 0 | — |
| rn | D8 |
imm8 | 2 | 0 | — |
POP
Pop
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | B9 |
— | 1 | 0 | — |
| b | C9 |
— | 1 | 0 | — |
| rn | D9 |
imm8 | 2 | 0 | — |
DECD
Decrement double
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | BB |
— | 1 | 0 | — |
| b | CB |
— | 1 | 0 | — |
| rn | DB |
imm8 | 2 | 0 | — |
RR
Rotate right
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | BC |
— | 1 | 0 | — |
| b | CC |
— | 1 | 0 | — |
| rn | DC |
imm8 | 2 | 0 | — |
RRC
Rotate right through carry
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | BD |
— | 1 | 0 | — |
| b | CD |
— | 1 | 0 | — |
| rn | DD |
imm8 | 2 | 0 | — |
RL
Rotate left
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | BE |
— | 1 | 0 | — |
| b | CE |
— | 1 | 0 | — |
| rn | DE |
imm8 | 2 | 0 | — |
RLC
Rotate left through carry
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | BF |
— | 1 | 0 | — |
| b | CF |
— | 1 | 0 | — |
| rn | DF |
imm8 | 2 | 0 | — |
DJNZ
Decrement and jump if not zero
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| a | BA |
rel8 | 2 | 0 | — |
| b | CA |
rel8 | 2 | 0 | — |
| rn | DA |
imm8, rel8 | 3 | 0 | — |
TSTA
Test A
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
B0 |
— | 1 | 0 | — |
TSTB
Test B
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
C1 |
— | 1 | 0 | — |
PUSH
Push status
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| st | 0E |
— | 1 | 0 | — |
POP
Pop status
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
| st | 08 |
— | 1 | 0 | — |
JMP
Jump unconditional
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E0 |
rel8 | 2 | 0 | — |
JN
Jump if negative
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E1 |
rel8 | 2 | 0 | — |
JZ
Jump if zero
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E2 |
rel8 | 2 | 0 | — |
JC
Jump if carry
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E3 |
rel8 | 2 | 0 | — |
JP
Jump if positive
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E4 |
rel8 | 2 | 0 | — |
JPZ
Jump if positive or zero
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E5 |
rel8 | 2 | 0 | — |
JNZ
Jump if not zero
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E6 |
rel8 | 2 | 0 | — |
JNC
Jump if no carry
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
E7 |
rel8 | 2 | 0 | — |
NOP
No operation
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
00 |
— | 1 | 0 | — |
IDLE
Idle
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
01 |
— | 1 | 0 | — |
EINT
Enable interrupts
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
05 |
— | 1 | 0 | — |
DINT
Disable interrupts
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
06 |
— | 1 | 0 | — |
SETC
Set carry
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
07 |
— | 1 | 0 | — |
STSP
Store stack pointer
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
09 |
— | 1 | 0 | — |
RETS
Return from subroutine
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
0A |
— | 1 | 0 | — |
RETI
Return from interrupt
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
0B |
— | 1 | 0 | — |
LDSP
Load stack pointer
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
0D |
— | 1 | 0 | — |
CLRC
Clear carry (= TSTA)
| Mode | Opcode | Operands | Bytes | Cycles | Flags |
|---|---|---|---|---|---|
B0 |
— | 1 | 0 | — |
Sources
Encodings on this page were taken from:
- TMS7000 Assembly Language Programmer’s Guide — Texas Instruments