DSP汇编指令总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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(暂停)
返回