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