DSP INSTRUCTION SET AND OPCODES
| ALU FUNCTIONS | op= | 000 | MULT FUNCTIONS | op= | 100 | |||||||||||||
| 2-operand | func(4) = 0 | |||||||||||||||||
| op | func | aca | ra | rb | ||||||||||||||
| op | func | aca | acb | MULT | 001 | 00100 | xx | xx | xx | -- | ||||||||
| ADD | 0 | 000 | 00000 | xx | xx | ---- | MULTI | 001 | 10100 | xx | xx | NNNN | ||||||
| SUB | 1 | 000 | 00001 | xx | xx | ---- | SQR | 001 | 00101 | xx | xx | -- | -- | |||||
| AND | 2 | 000 | 00010 | xx | xx | ---- | MAC | 001 | 00000 | xx | xx | xx | -- | |||||
| OR | 3 | 000 | 00011 | xx | xx | ---- | ||||||||||||
| XOR | 4 | 000 | 00100 | xx | xx | ---- | ||||||||||||
| CMP | 5 | 000 | 00101 | xx | xx | ---- | ||||||||||||
| SHIFT FUNCTIONS | op= | 010 | ||||||||||||||||
| 1-operand | sh.op(3) | = 0 | ||||||||||||||||
| immediate | func(4) = 1 | 1-operand | shift | func= | 11111 | |||||||||||||
| op | func | aca | sh.op. | |||||||||||||||
| op | func | aca | #N | ASL | 010 | 11111 | xx | -- | 0000 | |||||||||
| ADDI | 000 | 10000 | xx | NNNNNN | ASR | 010 | 11111 | xx | -- | 0001 | ||||||||
| SUBI | 000 | 10001 | xx | NNNNNN | LSR | 010 | 11111 | xx | -- | 0010 | ||||||||
| ANDI | 000 | 10010 | xx | NNNNNN | ROL | 010 | 11111 | xx | -- | 0011 | ||||||||
| ORI | 000 | 10011 | xx | NNNNNN | ROR | 010 | 11111 | xx | -- | 0100 | ||||||||
| XORI | 000 | 10100 | xx | NNNNNN | RND | 010 | 11111 | xx | -- | 0101 | ||||||||
| TNK | 010 | 11111 | xx | -- | 0110 | |||||||||||||
| 1-operand | ||||||||||||||||||
| arithametic | shift to | mem | sh.op(3) | = 1 | ||||||||||||||
| op | func | aca | don't care | op | func | aca | sh.op. | disp | ||||||||||
| NOT | 6 | 000 | 10110 | xx | ------ | RNDA | 010 | ----- | xx | -- | 1100 | 16 | ||||||
| INC | 7 | 000 | 10111 | xx | ------ | TNKA | 010 | ----- | xx | -- | 1010 | 16 | ||||||
| DEC | 8 | 000 | 11000 | xx | ------ | LIMA | 010 | ----- | xx | -- | 1000 | 16 | ||||||
| CLR | 9 | 000 | 11001 | xx | ------ | RNDF | 010 | ----- | xx | -- | 1101 | 16 | ||||||
| PASS | F | 000 | 11111 | xx | ------ | TNKF | 010 | ----- | xx | -- | 1011 | 16 | ||||||
| NEG | A | 000 | 11010 | xx | ------ | LIMF | 010 | ----- | xx | -- | 1001 | 16 | ||||||
| ABS | B | 000 | 11011 | xx | ------ | |||||||||||||
| shift with | ALU | |||||||||||||||||
| op | func | aca | sh.op. | |||||||||||||||
| ASL | 010 | ALU# | xx | -- | 0000 | |||||||||||||
| ASR | 010 | ALU# | xx | -- | 0001 | |||||||||||||
| LSR | 010 | ALU# | xx | -- | 0010 | |||||||||||||
| SPECIAL FUNCTIONS | op= | 111 | ROL | 010 | ALU# | xx | -- | 0011 | ||||||||||
| ROR | 010 | ALU# | xx | -- | 0100 | |||||||||||||
| 0-operation | RND | 010 | ALU# | xx | -- | 0101 | ||||||||||||
| op | func | TNK | 010 | ALU# | xx | -- | 0110 | |||||||||||
| NOP | 111 | 00000 | ||||||||||||||||
| STOP | 111 | 11111 | ALU com. | ALU# | ||||||||||||||
| SETC | 111 | 10001 | ADD | 00000 | 0 | |||||||||||||
| CLRC | 111 | 00001 | SUB | 00001 | 1 | |||||||||||||
| SETN | 111 | 10010 | AND | 00010 | 2 | |||||||||||||
| CLRN | 111 | 00010 | OR | 00011 | 3 | |||||||||||||
| SETZ | 111 | 10100 | XOR | 00100 | 4 | |||||||||||||
| CLRZ | 111 | 00100 | NOT | 00110 | 6 | |||||||||||||
| RETN | 111 | 01111 | INC | 00111 | 7 | |||||||||||||
| DEC | 01000 | 8 | ||||||||||||||||
| CLR | 01001 | 9 | ||||||||||||||||
| BRANCH FUNCTIONS | op =011 | |||||||||||||||||
| use like ASL 2,… | ||||||||||||||||||
| normal | func(43) | =00 | act like ASL and AND | |||||||||||||||
| op | func | don't care | disp | |||||||||||||||
| BR | 011 | 00000 | -------- | 16 | ||||||||||||||
| BEQ | 011 | 00001 | -------- | 16 | ||||||||||||||
| BNE | 011 | 00010 | -------- | 16 | ||||||||||||||
| BLT | 011 | 00011 | -------- | 16 | ||||||||||||||
| BGT | 011 | 00100 | -------- | 16 | ||||||||||||||
| subroutine | func(43) | =01 | ||||||||||||||||
| op | func | don't care | disp | LOAD FUNCTIONS | op = | 100 | ||||||||||||
| CALL | 011 | 01000 | -------- | 16 | ||||||||||||||
| op | func | aca | ra | imm | disp | |||||||||||||
| special | func(4) | =1 | LD | 100 | 10001 | -- | xx | ---- | 16 | |||||||||
| op | func | don't care | disp | LDI | 100 | 00010 | -- | xx | NNNN | |||||||||
| BBS | 011 | 10000 | -------- | 16 | LDA | 100 | 00100 | xx | xx | ---- | ||||||||
| BBC | 011 | 10001 | -------- | 16 | LDD | 100 | 01000 | -- | xx | rb | -- | |||||||
| RPT | 011 | 11111 | -------- | 16 | ||||||||||||||
| ALU FUNCTIONS | op= | 000 | MULT FUNCTIONS | op= | 100 | |||||||||||||
| 2-operand | func(4) = 0 | |||||||||||||||||
| op | func | aca | ra | rb | ||||||||||||||
| op | func | aca | acb | MULT | 001 | 00100 | xx | xx | xx | -- | ||||||||
| ADD | 0 | 000 | 00000 | xx | xx | ---- | MULTI | 001 | 10100 | xx | xx | NNNN | ||||||
| SUB | 1 | 000 | 00001 | xx | xx | ---- | SQR | 001 | 00101 | xx | xx | -- | -- | |||||
| AND | 2 | 000 | 00010 | xx | xx | ---- | MAC | 001 | 00000 | xx | xx | xx | -- | |||||
| OR | 3 | 000 | 00011 | xx | xx | ---- | ||||||||||||
| XOR | 4 | 000 | 00100 | xx | xx | ---- | ||||||||||||
| CMP | 5 | 000 | 00101 | xx | xx | ---- | ||||||||||||
| SHIFT FUNCTIONS | op= | 010 | ||||||||||||||||
| 1-operand | sh.op(3) | = 0 | ||||||||||||||||
| immediate | func(4) = 1 | 1-operand | shift | func= | 11111 | |||||||||||||
| op | func | aca | sh.op. | |||||||||||||||
| op | func | aca | #N | ASL | 010 | 11111 | xx | -- | 0000 | |||||||||
| ADDI | 000 | 10000 | xx | NNNNNN | ASR | 010 | 11111 | xx | -- | 0001 | ||||||||
| SUBI | 000 | 10001 | xx | NNNNNN | LSR | 010 | 11111 | xx | -- | 0010 | ||||||||
| ANDI | 000 | 10010 | xx | NNNNNN | ROL | 010 | 11111 | xx | -- | 0011 | ||||||||
| ORI | 000 | 10011 | xx | NNNNNN | ROR | 010 | 11111 | xx | -- | 0100 | ||||||||
| XORI | 000 | 10100 | xx | NNNNNN | RND | 010 | 11111 | xx | -- | 0101 | ||||||||
| TNK | 010 | 11111 | xx | -- | 0110 | |||||||||||||
| 1-operand | ||||||||||||||||||
| arithametic | shift to | mem | sh.op(3) | = 1 | ||||||||||||||
| op | func | aca | don't care | op | func | aca | sh.op. | disp | ||||||||||
| NOT | 6 | 000 | 10110 | xx | ------ | RNDA | 010 | ----- | xx | -- | 1100 | 16 | ||||||
| INC | 7 | 000 | 10111 | xx | ------ | TNKA | 010 | ----- | xx | -- | 1010 | 16 | ||||||
| DEC | 8 | 000 | 11000 | xx | ------ | LIMA | 010 | ----- | xx | -- | 1000 | 16 | ||||||
| CLR | 9 | 000 | 11001 | xx | ------ | RNDF | 010 | ----- | xx | -- | 1101 | 16 | ||||||
| PASS | F | 000 | 11111 | xx | ------ | TNKF | 010 | ----- | xx | -- | 1011 | 16 | ||||||
| NEG | A | 000 | 11010 | xx | ------ | LIMF | 010 | ----- | xx | -- | 1001 | 16 | ||||||
| ABS | B | 000 | 11011 | xx | ------ | |||||||||||||
| shift with | ALU | |||||||||||||||||
| op | func | aca | sh.op. | |||||||||||||||
| ASL | 010 | ALU# | xx | -- | 0000 | |||||||||||||
| ASR | 010 | ALU# | xx | -- | 0001 | |||||||||||||
| LSR | 010 | ALU# | xx | -- | 0010 | |||||||||||||
| SPECIAL FUNCTIONS | op= | 111 | ROL | 010 | ALU# | xx | -- | 0011 | ||||||||||
| ROR | 010 | ALU# | xx | -- | 0100 | |||||||||||||
| 0-operation | RND | 010 | ALU# | xx | -- | 0101 | ||||||||||||
| op | func | TNK | 010 | ALU# | xx | -- | 0110 | |||||||||||
| NOP | 111 | 00000 | ||||||||||||||||
| STOP | 111 | 11111 | ALU com. | ALU# | ||||||||||||||
| SETC | 111 | 10001 | ADD | 00000 | 0 | |||||||||||||
| CLRC | 111 | 00001 | SUB | 00001 | 1 | |||||||||||||
| SETN | 111 | 10010 | AND | 00010 | 2 | |||||||||||||
| CLRN | 111 | 00010 | OR | 00011 | 3 | |||||||||||||
| SETZ | 111 | 10100 | XOR | 00100 | 4 | |||||||||||||
| CLRZ | 111 | 00100 | NOT | 00110 | 6 | |||||||||||||
| RETN | 111 | 01111 | INC | 00111 | 7 | |||||||||||||
| DEC | 01000 | 8 | ||||||||||||||||
| CLR | 01001 | 9 | ||||||||||||||||
| BRANCH FUNCTIONS | op =011 | |||||||||||||||||
| use like ASL 2,… | ||||||||||||||||||
| normal | func(43) | =00 | act like ASL and AND | |||||||||||||||
| op | func | don't care | disp | |||||||||||||||
| BR | 011 | 00000 | -------- | 16 | ||||||||||||||
| BEQ | 011 | 00001 | -------- | 16 | ||||||||||||||
| BNE | 011 | 00010 | -------- | 16 | ||||||||||||||
| BLT | 011 | 00011 | -------- | 16 | ||||||||||||||
| BGT | 011 | 00100 | -------- | 16 | ||||||||||||||
| subroutine | func(43) | =01 | ||||||||||||||||
| op | func | don't care | disp | LOAD FUNCTIONS | op = | 100 | ||||||||||||
| CALL | 011 | 01000 | -------- | 16 | ||||||||||||||
| op | func | aca | ra | imm | disp | |||||||||||||
| special | func(4) | =1 | LD | 100 | 10001 | -- | xx | ---- | 16 | |||||||||
| op | func | don't care | disp | LDI | 100 | 00010 | -- | xx | NNNN | |||||||||
| BBS | 011 | 10000 | -------- | 16 | LDA | 100 | 00100 | xx | xx | ---- | ||||||||
| BBC | 011 | 10001 | -------- | 16 | LDD | 100 | 01000 | -- | xx | rb | -- | |||||||
| RPT | 011 | 11111 | -------- | 16 | ||||||||||||||
| ALU FUNCTIONS | op= | 000 | |||||
| 2-operand | func(4) = 0 | ||||||
| op | func | aca | acb | ||||
| ADD | 0 | 000 | 00000 | xx | xx | ---- | |
| SUB | 1 | 000 | 00001 | xx | xx | ---- | |
| AND | 2 | 000 | 00010 | xx | xx | ---- | |
| OR | 3 | 000 | 00011 | xx | xx | ---- | |
| XOR | 4 | 000 | 00100 | xx | xx | ---- | |
| CMP | 5 | 000 | 00101 | xx | xx | ---- | |
| 1-operand | |||||||
| immediate | func(4) = 1 | ||||||
| op | func | aca | #N | ||||
| ADDI | 000 | 10000 | xx | NNNNNN | |||
| SUBI | 000 | 10001 | xx | NNNNNN | |||
| ANDI | 000 | 10010 | xx | NNNNNN | |||
| ORI | 000 | 10011 | xx | NNNNNN | |||
| XORI | 000 | 10100 | xx | NNNNNN | |||
| 1-operand | |||||||
| arithametic | |||||||
| op | func | aca | don't care | ||||
| NOT | 6 | 000 | 10110 | xx | ------ | ||
| INC | 7 | 000 | 10111 | xx | ------ | ||
| DEC | 8 | 000 | 11000 | xx | ------ | ||
| CLR | 9 | 000 | 11001 | xx | ------ | ||
| PASS | F | 000 | 11111 | xx | ------ | ||
| NEG | A | 000 | 11010 | xx | ------ | ||
| ABS | B | 000 | 11011 | xx | ------ | ||