DSP代码释义
- 格式:doc
- 大小:73.00 KB
- 文档页数:7
• 装载累加器
– LACC:左移装载累加器
• LACC dma [,shift]
• LACC dma ,16
• LACC ind [,shift[,ARn]]
• LACC ind ,16[,ARn]
• LACC #lk [,shift]
– LACL:装载累加器低位并清累加器高位
• LACL dma
• LACL ind[,ARn]
• LACL #k
– LACT:按TREG规定左移后再转载入累加器
• LACT dma
• LACT ind[,ARn]
– PAC:用乘积寄存器PREG装载累加器,移位方式由ST1中的PM确定
• PAC
• 装载临时寄存器TREG
– LT:将指定数据存储器的内容装入TREG。常作乘法的准备工作。
• LT dma
• LT ind[,ARn]
– LTA:装载TREG同时累加前次乘积
• LTA dma
• LTA ind[,ARn]
– LTD:装载TREG,累加前次乘积并移动数据
• LTD dma
• LTD ind[,ARn]
– LTP:装载TREG,并将PREG值保存至累加器
• LTP dma
• LTP ind[,ARn]
– LTS:装载TREG并减去前次乘积
• LTS dma
• LTS ind[,ARn]
• 装载辅助寄存器AR
– LAR:装载辅助寄存器
• LAR ARx,dma
• LAR ARx, ind[,ARn]
• LAR ARx,#k
• LAR ARx,#lk
– MAR:修改辅助寄存器
• MAR dma
• MAR ind[,ARn]
• 装载其它寄存器
– LDP:装载数据页指针
• LDP dma • LDP ind[,ARn]
• LDP #k
– LPH:装载乘积寄存器高位字
• LPH dma
• LPH ind[,ARn]
– LST:装载状态寄存器
• LST #m,dma
• LST #m,ind[,ARn]
存储寄存器值
• 保存AR值(SAR)
– SAR ARx, dma
– SAR ARx, ind[, ARn]
• 保存PREG高位字(SPH)
– SPH dma
– SPH ind[, ARn]
• 保存PREG低位字(SPL)
– SPL dma
– SPL ind[, ARn]
• 保存状态寄存器ST0和ST1(SST)
– SST #m, dma
– SAR #m, ind[, ARn]
堆栈操作
• 出栈至ACC低位字(POP )
– POP
• ACC低位字入栈(PUSH )
– PUSH
• 出栈至数据存储器(POPD )
– POPD dma
– POPD, ind[, ARn]
• 数据存储器值入栈(PSHD )
– PSHD dma
– PSHD ind[, ARn]
读写数据或程序存储器
• 数据存储器至数据存储器的块移动(BLDD )
– BLDD #lk,dma
– BLDD #lk,ind[, ARn]
– BLDD dma , #lk
– BLDD ind , #lk[, ARn]
• 程序存储器至数据存储器的块移动(BLPD )
– BLPD #pma, dma
– BLPD #pma, ind[, ARn]
• 片内数据存储器中的数据传送(DMOV )
– DMOV dma
– DMOV ind[, ARn] • 长立即数写入数据存储器(SPLK )
– SPLK #lk, dma
– SPLK #lk, ind[, ARn]
• 读程序存储器(表读)(TBLR )
– TBLR dma
– TBLR ind[, ARn]
• 写程序存储器(表写)(TBLW )
– TBLW dma
– TBLW ind[, ARn]
读写I/O单元
• 读I/O单元(IN )
– IN dma, PA
– IN ind, PA[, ARn]
• 写I/O单元(OUT )
– OUT dma, PA
– OUT ind, PA[, ARn]
加法
• 左移加至ACC(ADD)
– ADD dma [,shift]
– ADD dma ,16
– ADD ind [,shift[,ARn]]
– ADD ind ,16[,ARn]
– ADD #k
– ADD #lk [,shift]
• 带进位位加至ACC (ADDC)
– ADDC dma
– ADDC ind [,ARn]
• 抑制符号扩展加至ACC (ADDS)
– ADDS dma
– ADDS ind [,ARn]
• 按TREG低4位规定左移加至ACC (ADDT)
– ADDT dma
– ADDT ind [,ARn]
• 加短立即数至当前AR(ADRK)
– ADRK #k
减法
• 左移后从ACC中减去(SUB)
– SUB dma [,shift]
– SUB dma ,16
– SUB ind [,shift[,ARn]]
– SUB ind ,16[,ARn]
– SUB #k
– SUB #lk [,shift]
• 带借位从ACC中减去(SUBB) – SUBB dma
– SUBB ind [,ARn]
• 条件减(SUBC):常用来实现除法
– SUBC dma
– SUBC ind [,ARn]
• 抑制符号扩展减(SUBS)
– SUBS dma
– SUBS ind [,ARn]
• 按TREG低4位左移后从ACC中减去(SUBT)
– SUBT dma
– SUBT ind [,ARn]
• 当前AR减去短立即数(SBRK)
– SBRK #k
• ACC减去PREG(SPAC)
– SPAC
• SUBC实现16位数除法的步骤
– 被除数(必须为正)置于累加器低位字中,且最高位放在bit15中,累加器高位字清零;
– 除数(必须大于0)放入数据存储单元中;
– 执行SUBC指令16次;
– 除的结果:商在累加器低位字;余数在累加器高位字。
乘法
• 简单乘(MPY)
– MPY dma
– MPY ind [,ARn]
– MPY #k
• 乘且累加前次乘积(MPYA)
– MPYA dma
– MPYA ind [,ARn]
• 乘且减去前次乘积(MPYS)
– MPYS dma
– MPYS ind [,ARn]
• 无符号乘(MPYU)
– MPYU dma
– MPYU ind [,ARn]
乘累加
• 乘且累加(MAC)
– MAC pma,dma
– MAC pma,ind ,[,ARn]
• 乘且累加,复制数据存储器内容至下一单元(MACD)
– MACD pma,dma
– MACD pma,ind ,[,ARn]
平方累加/减
• 累加前次乘积再平方(SQRA) – SQRA dma
– SQRA ind [,ARn]
• 减去前次乘积再平方(SQRS)
– SQRS dma
– SQRS ind [,ARn]
基本逻辑运算
• 与(AND)
– AND dma
– AND ind [,ARn]
– AND #lk [,shift]
– AND #lk ,16
• 或(OR)
– OR dma
– OR ind [,ARn]
– OR #lk [,shift]
– OR #lk ,16
• 异或(XOR)
– XOR dma
– XOR ind [,ARn]
– XOR #lk [,shift]
– XOR #lk ,16
• 求反(CMPL)
– CMPL
• 求负(NEG)
– NEG
移位
• 循环移位
– ROL
– ROR
• 算术移位
– SFL
– SFR
• 移位存储
– SACH
• SACH dma [,shift2];shift2表明全部32位左移0~7位
• SACH ind [,shift2 ][,ARn]
– SACL
• SACL dma [,shift2]
• SACL ind [,shift2 ][,ARn]
• 累加器特殊装载(ZALR)
– ZALR dma
– ZALR ind [,ARn]
• 累加器规格化( NORM )
– NORM ind