间接寻址(通过放在辅助寄存器里面,可以对地址包括很多操作,+1,-1,+/-平移量,辅助寄存器内容的修改是在ARAU0和ARAU1中完成的。分为单操作数和双操作数,有很多模式在ARAU。单操作数间接寻址:opcode为操作数,i选择间接寻址模式,mod是选择功能提供16种模式(*ARx这种的 *ARx+/-/-0B/-0/-%/-0%/+IK),ARF选择辅助寄存器是哪一个,*(ik)也可以是间接寻址。双操作数间接寻址(用于读两个操作数或者一个读一个写的,ST|LD指令 |代表并行操作。xmod代表))
双操作数只有4种模式,而且只用AR2-AR5。模式只有*ARx /-/+/+0%。循环寻址(例如卷积操作,把系数存储到循环缓冲区,把新数据移动到且覆盖最老的数据,一般会用间接寻址结合起来使用(*+ARx(IK)% )百分号就是循环寻址的标志)位倒序寻址(主要服务于FFT,FFT有倒位序的特点,输入为正序的话,输出来乱序。DSP就会自己来帮你恢复成正序。*ARx+0B 直接加个大B就可以了,最开始的位置肯定是0,之后加1反转寻址,从左向右进位)存储器映射寄存器寻址(MMR,把DP为0,指令为STM LDM 例如STM #23h,AR0 把23h立即数放在AR0里面去,LD AR0,A需要把DP设置为0,才可以实现。不然就是直接寻址了,直接寻址需要设置DP的值,LDM的移值的操作值不能大于127,会把高位强制置为0.)栈寻址(一个专门的16位寄存器SP对栈进行访问,栈顶在低地址方向,从高到低放置数据,一般不用,了解内容)绝对寻址不可以一个字长,因为16位数都放在里面了,还需要功能呢。直接寻址的符号位@。
指令系统,描述的缩写(K3是三bit,5是5bit,9是9bit ik是16bit的立即数。pmad代表了16位的绝对寻址,pmem直接寻址或者间接寻址,SHFT移位数的大小位4位,SHIFT是5位移位数,5位是符号。Smem代表16位单个据操作数直接寻址或者间接寻址,src代表源累加器可以是A或者B。Xmem和Ymem读取或者写两个操作数的时候,一个Xmem一个Ymem就ok了。指令集一般分为4大类,算术运算类,逻辑操作类,程序控制类(跳转程序,循环),数据传送类(和外部存储器打交道的))算术指令(很多为加法指令,ADD,ADDC,ADDM,ADDS.
会被SXM和OVM位,也会影响C和OVdst,按指令周期数,被分成了若干类:Class1,class2,class 3A,class 3B