3986.net
小网站 大容量 大智慧
当前位置:首页 >> 工学 >>

DSP汇编指令总结


DSP 汇编指令总结 一、寻址方式: 1、立即寻址: 短立即寻址(单指令字) D15 D14 D13 D12 D11 1 0 1 1 1

D10 0

D9 1

D8 1

D7 0

D6 1

D5 1

D4 0

D3 0

D2 0

D1 1

D0 1

采用立即寻址方式的 PRT 的操作码 长立即数寻址(双指令字) 第一指令字 D15 D14 D13 D12 D11 1 0 1 1 1

8 位常数=99

D10 1

D9 1

D8 1

D7 1

D6 0

D5 0

D4 1

D3 0

D2 0

D1 1

D0 0

采用长立即寻址方式的 ADD 指令的操作码 (12 位) 第二指令字 D15 D14 0 1

位移次数=2(4 位)

D13 0

D12 0

D11 0

D10 0

D9 0

D8 0

D7 0

D6 0

D5 0

D4 0

D3 0

D2 0

D1 0

D0 0

16 位常数=16384=4000h

2、直接寻址 状态寄存器(ST0) D15~ D13 ARP D12 D11 D10 D9 OV OVM 1 INTM D8 ~ D0 指令寄存器(IR) D15 ~ D8 8MSB 指令操作码 D7 0 D6 ~ D0 7 LSB

数据页面指针 DP



面(9MSB)

偏移量(7LSB)

3、间接寻址 D15 D14 D13 D12 D11 D10 D9 D8 D7 1 D6 D5 ARU D4 D3 N D2 D1 NAR D0 8MSBs

ARU 辅助寄存器更新代码,决定当前辅助寄存器是否和如何进行增或减。 N 规定是否改变 ARP 值,(N=0,不变) NAR 下一个辅助寄存器值 ARU 执行的算术运算 6 0 0 0 5 0 0 1 4 0 1 0 * **+

0 1 1 1 1

1 0 0 1 1

1 0 1 0 1 *BR0*0*0+ *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(暂停) (暂停) 返回


推荐相关:

DSP各种知识点总结_工学_高等教育_教育专区。1 DSP 芯片的特点: (1).哈佛结构...紧跟其后的是汇编语言程序正文 start: STM #0, SWWSR ; SWWSR 置 0,不插...


dsp总结_计算机硬件及网络_IT/计算机_专业资料。1.Dsp 的应用领域: 移动通信领域...41、文件扩展名: .prj 工程文件 .c C 语言源程序 .asm 汇编源程序 .h 头...


4.28335 DSP指令测试总结_计算机软件及应用_IT/计算机_专业资料。符号说明 dma shift shift2 n(x) k lk m 数据存储器地址的低七位(7LSB) 左移位数(0~15)...


汇编指令总结 105页 1下载券 汇编 指令总结 暂无评价 12页 1下载券 DSP汇编指令总结 5页 2下载券 汇编跳转指令小结 暂无评价 4页 1下载券 汇编语言-跳转指令...


DSP复习总结_教育学_高等教育_教育专区。1.DSP 芯片的主要结构特点: (1)哈佛...通常用 C 语言构 成程序主框架; 汇编语言程序代码的特点:具有很高的运行效率,...


DSP原理及应用复习 总结_教育学_高等教育_教育专区。DSP 芯片的主要结构特点:...DSP 编程语言特点:c 语言:具有良好可读性和可移植性,开发率高;汇编语言:高的...


DSP复习总结_教育学_高等教育_教育专区。关于DSP的期末复习总结第...对于用汇编语言编写的一个或多 个源程序,则直接送往汇编器进行汇编。汇编后...


线操作; (3)专用的硬件乘 法器; (4)特殊的 DSP 指令; (5)快速的指令周期...DSP 程序在开发环境下,经过汇编及链接先生成可执 行的输出文件” .OUT” ,再...


DSP学习总结 1页 2下载券D​S​P​终​极​总​结 ...(10 分) 3、以 8 点的 FFT 为例, C55x 的汇编语言实现 FFT 的算法,...


DSP学习总结_计算机硬件及网络_IT/计算机_专业资料。DSP 学习总结摘要:本总结介绍...大部分DSP芯片具有零消耗循环控制的专门硬件,可以省去循环计数器的 测试指令,...

网站首页 | 网站地图
3986 3986.net
文档资料库内容来自网络,如有侵犯请联系客服。zhit325@qq.com