- 1、本文档共294页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
DSP技术原理及应用课件
② ST T,EXPONENT 将保存在T寄存器中的指数存放到数据存储器的指定单元中。 ③ NORM src [,dst] 将src中有符号数左移TS位,结果存放在dst中。 该指令常与EXP指令结合使用,完成归一化处理。 例如: NORM A 3) 浮点数转换为定点数: 按指数值将尾数右移(指数为负时是左移,为正时右移) 使用NORM指令实现浮点数转换为定点数,而NORM指令是T寄存器值为正左移;因此实现浮点数转换为定点数之前先将指数值变号。 * 例7: 编写浮点乘法程序,完成x1×x2=0.3×(-0.8)的运算。要求包括将定点数转换成浮点数、浮点乘法,最后再将浮点数转换成定点数。 X1*X2=(尾数1 ×2(-指数1) )×(尾数2 ×2(-指数2))=(尾数1 ×尾数2) × 2((-指数1) +(-指数2)) 程序中保留10个数据存储单元: x1(被乘数) el(被乘数的指数) m1(被乘数的尾数) x2(乘数) e2(乘数的指数) m2(乘数的尾数) product(乘积) ep(乘积的指数) mp(乘积的尾数) temp(暂存单元) * .title “example7.asm” .def start STACK: .usect “STACK”,100 .bss x1,1 .bss x2,1 .bss el,1 .bss m1,1 .bss e2,1 .bss m2,1 .bss ep,1 .bss mp,1 .bss product,1 .bss temp,1 .data table: .word 3*32768/10 .wotd -8*32768/10 * .text Start:STM #STACK+100,SP ;设置堆栈指针SP MVPD table,@x1 ;将x1和x2传送至数据存储器 MVPD table+1,@x2 LD @x1,16,A ;将xl规格化为浮点数(先移到最高有效位再取指数) EXP A ST T,@el ;保存x1的指数 NORM A STH A,@ml ;保存x1的尾数 LD @x2,16,A ;将x2规格化为浮点数 EXP A ST T,@e2 ;保存x2的指数 NORM A STH A,@m2 ;保存x2的尾数 CALL MULT ;调用浮点乘法子程序 done:B done * 复位向量文件:vectors.asm .title “vector.asm” .ref start .sect “.vectors” reset: B start .end * 5.2.2 汇编语言编程编辑、汇编和链接过程 编辑汇编链接调试固化用户程序 调试工具:软件仿真器、硬件仿真器、评价模板 * 1.公用目标文件格式(COFF) 汇编源程序经汇编器运行后创建的目标文件 将程序划分为若干段,每段含有特定的代码和数据——便于模块化编程 ⑴ COFF文件中的段 段就是一段代码或数据或是保留的空间 三个缺省段:.text、.data和.bss段 重定位——链接器把这些段再放到目标存储器中 ⑵ 段程序计数器 SPC表示一个代码或数据段中的当前计数值(地址)。 ⑶ COFF文件中的符号 内部符号与外部符号 有关于程序中符号的信息 * 2.汇编 将汇编语言源程序转换成机器语言目标文件。 ⑴运行汇编程序 asm500 [input file[object file[listing file]]][-options] ⑵列表文件 源程序语句的行号、段程序计数器(SPC)、用十六进制表示的目标代码、源程序语句 ⑶交叉引用清单 清单列出了交叉
文档评论(0)