收藏 分销(赏)

DSP汇编指令总结.doc

上传人:胜**** 文档编号:1504469 上传时间:2024-04-29 格式:DOC 页数:5 大小:67KB
下载 相关 举报
DSP汇编指令总结.doc_第1页
第1页 / 共5页
DSP汇编指令总结.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述
DSP汇编指令总结 一、寻址方式: 1、立即寻址: 短立即寻址(单指令字) D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 1 0 1 1 0 1 1 0 0 0 1 1 采用立即寻址方式的PRT的操作码 8位常数=99 长立即数寻址(双指令字) 第一指令字 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 1 1 1 1 1 1 0 0 1 0 0 1 0 采用长立即寻址方式的ADD指令的操作码 (12位) 位移次数=2(4位) 第二指令字 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 16位常数=16384=4000h 2、直接寻址 状态寄存器(ST0) 指令寄存器(IR) D15~D13 D12 D11 D10 D9 D8 ~ D0 D15 ~ D8 D7 D6 ~ D0 ARP OV OVM 1 INTM 数据页面指针DP 8MSB 0 7 LSB 指令操作码 页 面(9MSB) 偏移量(7LSB) 3、间接寻址 D15 D14 D13 D12 D11 D10 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0 8MSBs 1 ARU N NAR ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。 N规定是否改变ARP值,(N=0,不变) NAR下一个辅助寄存器值 ARU 执行的算术运算 6 5 4 0 0 0 * 0 0 1 *- 0 1 0 *+ 0 1 1 1 0 0 *BR0- 1 0 1 *0- 1 1 0 *0+ 1 1 1 *BR0+ 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(暂停) 返回
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 应用文书 > 报告/总结

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服