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 ------