网站大量收购独家精品文档,联系QQ:2885784924

15第五章汇编语言编程2.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NanKai University Email: gengwd@nankai.edu.cn Tel: 022*§5.8 64位加法与减法运算 例5-16:编写计算 Z64=W64+X64-Y64 的程序段 W, X, Y和结果Z都是64位数,它们都是由两个32位的长字组成。利用长字指令可以完成64位数的加/减法。 算式如下: 由于没有长字带进(借)位加/减法指令,上述程序中只能用16位带进(借)位指令ADDC和SUBB。 代码段如下: *§5.9 32位乘法运算 例5-17:编写计算 W64=X32*Y32的程序段 32位的乘法运算包含了:U*U、S*U 和 S*S 三种运算 程序中利用的三条乘法指令: 代码段: *§5.10 小数运算 1、小数的表示方法 C54x采用2的补码小数 * 高位为符号位 * 数值范围 从-1到+1(1-2-15=0.999969482421875) * 16位2的补码小数(Q15格式)每个的权值为: MSB ………………… ……… LSB -1(0). 1/2 1/4 1/8 …… 2-15 0100 = 符号位0 + 1*1/2+0*1/4+0*1/8 ? 0.5 1101 = 符号位-1+1*1/2+ 0*1/4+1*1/8 ? - 1+0.625 ? -0.375 Q15是纯小数表示法 2、十进制小数到十六进制小数的变换 一个十进制小数乘以32768之后,再将其十进制整数部分转换成十六进制数,就能得到这个小数的16位2的补码 取Q15格式小数的绝对值*32768,再变换成16进制数以后: 对于正数就是小数的十六进制表示; 对于负数,再加上8000h(-1),就是负小数的十六进制表示。 3、汇编语言程序中小数的写法 在汇编语言程序中不能直接写入十进制的小数。 举例:如果定义一个系数0.707 .word 32768*707/1000 ;是对的 .word 32768*0.707 ;是错的 4、小数乘法与冗余符号位 符号位扩展 符号位相乘结果 7位乘积(-0.1875)送累加器时,经过符号位扩展,得(-0.09375),出现了错误,原因是出现了冗余符号位。解决的方法是: 在运行小数乘法之前,将ST1中FRCT(小数方式)位置1,C54x在把乘积传送到累加器时会自动地左移一位,消除冗余符号位。 如: SSBX FRCT ; FRCT置1 …… MPY *AR2, *AR3, A ;(AR2)x (AR3) 结果送A累加器 STH A, @z ; A累加器的高端字存到z存储单元 这样,C54x就完成了Q15*Q15=Q15的小数乘法。 5、小数乘法编程举例 例5-18:编写计算 的程序段。其中数据均为小数: 已知:a1=0.1 a2=0.2 a3= -0.3 a4=0.4 x1=0.8 x2=0.6 x3= -0.4 x4= -0.2 *§5.11 除法运算 在许多定点DSP芯片中,一般没有硬件除法器(硬件代价很高),也没有单周期的除法指令;而在实际应用中,又常常要用到除法运算,如何利用定点DSP芯片指令来实现除法是一个非常有意义的问题。 一、DSP实现除法的方法: ①用乘法代替除法,除以某个数相当于乘以这个数的倒 数,所以先求出其倒数再相乘; ②二进制除法是乘法的逆运算。乘法包括一系列的移    位和加法,而除法可分解为一系列的减法和移位; ③除法过程中,是以数的绝对值进行运算,最后再确定 商的符号。 例5-19:用减-移位法计算10除以3的实现过程   二进制除法的分析 例5-20:采用8位累加器计算12除以3的实现过程   二、条件减法指令 1、C5

文档评论(0)

183****7931 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档