ADSP-21020 
COMPUTE AND MOVE OR MODIFY INSTRUCTIONS  | 
  | ||||
1.  | 
  | compute, | DM(Ia, Mb) = dreg1,  | PM(Ic, Md) = dreg2;  | |
  | 
  | 
  | dreg1 = DM(Ia, Mb)  | dreg2 = PM(Ic, Md)  | |
2.  | IF condition | compute;  | 
  | 
  | 
  | 
3a.  | IF condition | compute, | DM(Ia, Mb)  | = ureg ;  | 
  | 
  | 
  | 
  | PM(Ic, Md)  | 
  | 
  | 
3b.  | IF condition  | compute,  | DM(Mb, Ia)  | = ureg ;  | 
  | 
  | 
  | 
  | PM(Md, Ic)  | 
  | 
  | 
3c.  | IF condition  | compute,  | ureg = DM(Ia, Mb);  | |
  | 
  | 
  | PM(Ic, Md)  | |
3d.  | IF condition  | compute,  | ureg = DM(Mb, Ia);  | |
  | 
  | 
  | PM(Md, Ic)  | |
4a.  | IF condition  | compute,  | DM(Ia, <data6>)  | = dreg ;  | 
  | 
  | 
  | PM(Ic, <data6>)  | 
  | 
4b.  | IF condition  | compute,  | DM(<data6>, Ia)  | = dreg ;  | 
  | 
  | 
  | PM(<data6>, Ic)  | 
  | 
4c.  | IF condition  | compute,  | dreg = DM(Ia, <data6>);  | |
  | 
  | 
  | PM(Ic, <data6>)  | |
4d.  | IF condition  | compute,  | dreg = DM(<data6>, Ia);  | |
  | 
  | 
  | PM(<data6>, Ic)  | |
5.  | IF condition  | compute,  | ureg1 = ureg2 ;  | 
  | 
6a.  | IF condition  | shiftimm,  | DM(Ia, Mb)= dreg ; | |
  | 
  | 
  | PM(Ic, Md) | 
  | 
6b.  | IF condition | shiftimm,  | dreg = DM(Ia, Mb); | |
  | 
  | 
  | PM(Ic, Md) | 
  | 
7.  | IF condition | compute, | MODIFY (Ia, Mb) ;  | |
  | 
  | 
  | (Ic, Md)  | |
PROGRAM FLOW CONTROL INSTRUCTIONS
8.IF condition
9.IF condition
JUMP  | <addr24>  | |
CALL  | (PC, <reladdr6>)  | |
JUMP  | (Md, Ic)  | |
CALL  | (PC, <reladdr6>)  | |
(DB  | ) ;  | 
LA  | |
DB, LA  | |
(DB  | ) , compute ;  | 
LA  | |
DB, LA
11.IF condition
RTS  | (DB  | ) , compute ;  | |
RTI  | (LA  | ||
  | 
  | DB, LA  | |
12.  | LCNTR = | <data16>  | , DO  | <addr24>  | |
  | 
  | ureg  | (<PC, <reladdr24>)  | ||
13.  | 
  | 
  | DO  | <addr24>  | |
  | 
  | 
  | 
  | (PC, <reladdr24>)  | |
(DB) Delayed branch
(LA) Loop abort (pop loop PC stacks on branch)
UNTIL LCE ;
UNTIL termination ;
REV. C |