DSP汇编指令总结.docx
- 文档编号:23985385
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:9
- 大小:20.12KB
DSP汇编指令总结.docx
《DSP汇编指令总结.docx》由会员分享,可在线阅读,更多相关《DSP汇编指令总结.docx(9页珍藏版)》请在冰豆网上搜索。
DSP汇编指令总结
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
7LSB
指令操作码
页面(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指定bitcode指令)
★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(暂停)
返回
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 汇编 指令 总结