8467|0

11

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

TI C54xx DSP 十天速成讲义 <二> [复制链接]

实验二 基本运算<本节选自为HK-DSP实验箱写的实验指导书,有待整理> DSP指令数量最多的是:算术指令、逻辑指令和数据加载与传送指令。数据加载与传送指令由于处处要用,所以不单独列为实验。算术与逻辑指令也是数量繁多,无法一一举例,这里简单举一个加法和除法的例子,乘法和乘加指令在FIR用得比较多,稍后一并介绍。其它指令有兴趣可以对照指令表的说明,试验一下各指令运行的结果。实验2.1 加减法计算 ************************************************ *计算z=x+y-w。 ************************************************ .mmregs .def CodeStart Data_DP: ;数据段指针 x: .word 10 ;初始化变量 y: .word 26 w: .word 23 z: .word 0 .text CodeStart: LD #Data_DP,DP ;装载数据指针DP STM #STACK+10H,SP SUMB: LD x,A ;A=x ADD y,A ;A=A+y SUB w,A ;A=A-w STL A,z ;z=A END: B END 计算结果数据存储器地址存储内容十进制 x1010H000aH10 y1011H001aH26 w1012H0017H23 z1013H000dH13 技巧提示:试验算术指令由于不需要外部资源,可以不需要仿真器和实验箱。同学们可以平时自己用软件仿真,多多实验。但是复杂的算法最好还是在线仿真,因为程序是流水线执行,软件仿真有时与实际硬件执行结果有所不同。 实验2.2 除法计算 DSP并没有除法指令,回想一下我们用在稿纸上演算除法列的竖式,实际是一种移位减法,DSP中也是通过做多次减法的办法来做除法。下面例子是把用除以10的办法二进制数转成BCD码例子: ********************************* *16进制转BCD码 ********************************* .mmregs .global CodeStart .data x: .word 1234 ;待转换的数字 y: .word 10 ;除数 z: .word 0Fh,0Fh,0Fh,0Fh,0Fh;结果区,每位BCD存一个字, ;初始化为F因为实验板的数码管不显示F .text   CodeStart: LD #x,DP ;设置DP LD x,A ;被除数 STM #z,AR1 ;结果区指针 loop: RPT #15 ;执行完16次减法后,A的高16位是余数 SUBC y,A ;低16位是商 STH A,*AR1+ ;余数保存到Z AND #0FFFFH,A ;掩盖掉高16位,保留商值 BC loop,ANEQ ;继续做除法直到商为0 end: B end 练习:练习其他算术指令其它参考: spru172c:TMS320C54x DSP Reference Set Volume 2: Mnemonic Instruction Set,2.1 Arithmetic Operations 这个资料对每个指令都有详细说明。也可以在Help中的TMS320C54x DSP Mnemonic Instruction Set中查询或搜索相关指令。
点赞 关注

回复
举报
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表