DSP汇编指令总结

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

DSP汇编指令总结

一、寻址方式:

1、立即寻址:

短立即寻址(单指令字)

长立即数寻址(双指令字)

第一指令字

第二指令字

16位常数=16384=4000h

2、直接寻址

ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。N规定是否改变ARP值,(N=0,不变)

4.3.1、算术逻辑指令(28条)

4.3.1.1、加法指令(4条);

4.3.1.2、减法指令(5条);

4.3.1.3、乘法指令(2条);

4.3.1.4、乘加与乘减指令(6条);

4.3.1.5、其它算数指令(3条);

4.3.1.6、移位和循环移位指令(4条);

4.3.1.7、逻辑运算指令(4条);

4.3.2、寄存器操作指令(35条)

4.3.2.1、累加器操作指令(6条)

4.3.2.2、临时寄存器指令(5条)

4.3.2.3、乘积寄存器指令(6条)

4.3.2.4、辅助寄存器指令(5条)

4.3.2.5、状态寄存器指令(9条)

4.3.2.6、堆栈操作指令(4条)

4.3.3、存储器与I/O操作指令(8条)4.3.3.1、数据移动指令(4条)

4.3.3.2、程序存储器读写指令(2条)

4.3.3.3、I/O操作指令(2条)

4.3.4、程序控制指令(15条)

4.3.4.1、程序分支或调用指令(7条)

4.3.4.2、中断指令(3条)

4.3.4.3、返回指令(2条)

4.3.4.4、其它控制指令(3条)

4.3.1、算术逻辑指令(28条)

4.3.1.1、加法指令(4条);

▲ADD

▲ADDC(带进位加法指令)

▲ADDS(抑制符号扩展加法指令)

▲ADDT(移位次数由TREG指定的加法指令)

4.3.1.2、减法指令(5条);

★SUB(带移位的减法指令)

★SUBB(带借位的减法指令)

★SUBC(条件减法指令)

★SUBS(减法指令)

★SUBT(带移位的减法指令,TREG决定移位次数)4.3.1.3、乘法指令(2条);

★MPY(带符号乘法指令)

★MPYU(无符号乘法指令)

4.3.1.4、乘加与乘减指令(6条);

★MAC(累加前次积并乘)(字数2,周期3)

★MAC(累加前次积并乘)

★MPYA(累加-乘指令)

★MPYS(减-乘指令)

★SQRA(累加平方值指令)

★SQRS(累减并平方指令)

4.3.1.5、其它算数指令(3条);

★ABS(累加器取绝对值指令)

★NEG(累加器取补码指令)

★NORM(累加器规格化指令)

返回

4.3.1.6、移位和循环移位指令(4条);

▲ SFL(累加器内容左移指令)

▲ SFR(累加器内容右移指令)

▲ROL(累加器内容循环左移指令)

▲ROR(累加器内容循环右移指令)

返回

4.3.1.7、逻辑运算指令(4条);

▲ AND(逻辑与指令)

▲ OR(逻辑或指令)

▲ XOR(逻辑异或指令)

▲ CMPL(累加器取反指令)

返回

4.3.2、寄存器操作指令(35条)

4.3.2.1、累加器操作指令(6条)

▲ LACC(装载累加器指令)

▲ LACT(装载累加器)*按TREG低4位指定的次数移位▲ LACL(装载累加器低16位指令)

▲ ZALR(装载累加器指令)

▲ SACL(移位并存储累加器低半部)

▲ SACH(移位并存储累加器高半部)

返回

4.3.2.2、临时寄存器指令(5条)

▲ LT(装载TREG指令)

▲ LTA(装载TREG并累加上次乘积指令)

▲ LTS (装载TREG并减去上次乘积指令)

▲ LTD(装载TREG并累加上次乘积及数据移动指令)▲LTP(装载TREG和累加器指令)

返回

4.3.2.3、乘积寄存器指令(6条)

▲ PAC (乘积寄存器内容载入累加器)

▲ APAC (PREG与累加器相加)

▲ SPAC(累加器和乘积寄存器相减)

▲ LPH(装载PREG高16位指令)

▲ SPL(存储PREG低16位指令)

▲ SPH(存储PREG高16位指令)

返回

4.3.2.4、辅助寄存器指令(5条)

★LAR(装载当前辅助寄存器AR)

★SAR(存储辅助寄存器指令)

★MAR(修改当前辅助寄存器)

★SBRK(从当前辅助寄存器减去短立即数)

返回

4.3.2.5、状态寄存器指令(9条)

★LST(装载状态寄存器)

★SST(存储状态寄存器)

★SETC(控制位置“1”指令)

★SETC(控制位置“1”指令)

★LDP(装载数据指针DP指令)

★BIT(位测试指令)

★BITT(测试由TREG指定bit code指令)

★CMPR(比较当前辅助寄存器AR和AR0)

返回

4.3.2.6、堆栈操作指令(4条)

★PUSH(累加器低16位进栈指令)

★POP(栈顶内容弹出至累加器低16位指令)

★POP(栈顶内容弹出至累加器低16位指令)

★POPD(弹栈至数据存储器指令)

返回

4.3.3、存储器与I/O操作指令(8条)

4.3.3.1、数据移动指令(4条)

▲DMOV(数据存储器内部数据移动指令)

▲SPLK(存储长立即数至数据存储器指令)

▲BLDD(数据存储器内部的数据块移动)

▲ BLPD(从程序存储器到数据存储器的数据块传送)4.3.3.2、程序存储器读写指令(2条)

★TBLR(读程序存储器数据到数据存储器)

★TBLW(写程序存储器)

4.3.3.3、I/O操作指令(2条)

★IN(数据输入指令)

★OUT(数据输出指令)

4.3.4、程序控制指令(15条)

4.3.4.1、程序分支或调用指令(7条)

★B(无条件转移指令)

★BANZ(辅助寄存器内容不等于零转移)

★CALL(无条件子程序调用指令)

★BACC(按累加器内容转移指令)

★CALA(由累加器指定地址的子程序调用指令)

★CC(条件调用指令)

4.3.4.2、中断指令(3条)

★INTR(软中断指令)

★TRAP(软件陷阱中断)

★NMI(非屏蔽中断)

4.3.4.3、返回指令(2条)

★RET(无条件从子程序或中断返回)

★RETC(条件返回指令)

4.3.4.4、其它控制指令(3条)

★RPT(重复执行下条指令)

★NOP(空操作)

★IDEL(暂停)

返回

相关文档
最新文档