机器数表示方法小结-Read.PPT

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
机器数表示方法小结-Read

计算机组成原理与汇编语言 课程设计 指导教师:王智广、吴卫江 主要任务: 1.熟悉定点数一位乘法的原理; 2.用汇编语言实现布斯(Booth)算法。 考核: 1.提交功能完整的汇编语言程序; 2.提交一份软件结构说明书; 3.答辩、笔试。 分组: 1人或2人一组。 定点数一位乘法 1.定点原码一位乘法 2.定点补码一位乘法 3.布斯公式(补码一位乘法的改良版) 1.定点原码一位乘法 两个原码数相乘,其乘积的符号为相乘两 数符号的异或值,数值为两数绝对值之积。 [X]原=X0.X1X2…Xn [Y]原=Y0.Y1Y2…Yn [X·Y]原= [X]原 · [Y]原 =X0⊕Y0 | (X1X2…Xn) · (Y1Y2…Yn) 例:X=0.1101,Y=0.1011,计算X·Y 0 . 1 1 0 1 × 0 . 1 0 1 1 1 1 0 1 1 1 0 1 0 0 0 0 1 1 0 1 0 .1 0 0 0 1 1 1 1 机器计算与人工计算的不同: (1)机器内一般不能进行多个数据同时相加, 因此每次都是一个相加数与上次部分积相加。 (2)由于前一次部分积的最低位不再参与运算, 可用部分积右移来替代人工计算时相加数的 左移。 (3)机器计算时,部分积可与乘数寄存器同时右 移,用乘数寄存器的最低位控制加数,同时 乘数寄存器的最高位接收移出的部分积。 例:X=0.1101,Y=0.1011,计算X·Y 原码一位乘的迭代公式: 设每次迭代得到的部分积为:P0,P1,…,Pn 则: 2.定点补码一位乘法 设被乘数 乘数 则有: 例:X=-0.1101,Y=0.1011,计算[X·Y]补 [X]补=11.0011,[Y]补=0.1011 例:X=-0.1101,Y=-0.1011,计算[X·Y]补 [X]补=11.0011,[Y]补=11.0101 ,[-X]补=00.1101 3.布斯(Booth)公式 布斯对定点补码一位乘法公式进行变换,得如下公式,称为布斯公式。 设被乘数 乘数 则有: 乘数的最低位为Yn,在其后添加Yn+1,值为0 已知: 设每次迭代得到的部分积为:P0,P1,…,PnPn+1 则: Yi+1与Yi为相邻两位,(Yi+1-Yi)有三种情况, 运算规则如下: (1)Yi+1-Yi=0(Yi+1Yi=00或11) 部分积加0,右移1位。 (2) Yi+1-Yi=1(Yi+1Yi=10) 部分积加[X]补,右移1位。 (3) Yi+1-Yi=-1(Yi+1Yi=01) 部分积加[-X]补,右移1位。 最后一步(i=n+1)不移位。 例:X=-0.1101,Y=0.1011,计算[X·Y]补 [X]补=11.0011,[Y]补=0.1011 ,[-X]补=00.1101 软件编程方法实现 由手算到机器实现,要解决三个问题: 符号问题、部分积相加进位问题、移位问题。 (1)原码乘法 先取绝对值相乘,符号位单独决定。 (2)补码乘法 符号位直接参加运算,但算法较复杂。 硬件快速乘法器实现 利用中大规模集成电路芯片,在一个节拍中实现多项部分积的相加,成为阵列乘法器。 程序要求: 输入:真值形式的两个二进制纯小数(8位以内) 输出:乘积的补码形式及其真值 求解方法:利用布斯公式计算乘法。 * * 人工计算时,逐次按乘数每位上的值是1还是0,决定相加数取被乘数的值还是取0,且相加数逐次向左偏移1位,最后一起求和。 乘积的符号位=X0⊕Y0=0,所以X·Y=0乘积的符号由参与运算的两个数的符号位进行异或得到。 [X·Y]补=1 X·Y= -0 [X·Y]补=0[X·Y]补=1 X·Y= -0

文档评论(0)

youbika + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档