1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第 三章 运算方法和运算部件 ASCII码字符形式 例如:+123的编码为2B 31 32 33 -123在主存中为2D 31 32 33 压缩十进制形式 例如: +123的编码为123C  -123在主存中为12 3D   3.2 带符号的二进制数... 3.2.3 定点数和浮点数 3.3 定 点 运 算 3.3 二进制乘法运算 3.3.1 定点数一位乘法 1. 定点原码一位乘法 两个原码数相乘,其乘积的符号为相乘两数的异或值,数值则为两数绝对值之积。 假设[X]原=X0X1X2…Xn [Y]=Y0Y1Y2…Yn 则[X·Y]原=[X]原·[Y]原 =(X0Y0)|(X1X2…Xn)·(Y1Y2…Yn) 符号|表示把符号位和数值邻接起来。 例3.31 X=0.1101,Y=0.1011,计算乘积X·Y。 解: 1 1 0 1 × 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 即X·Y=0符号为正。 在计算时,逐次按乘数每1位上的值是1还是0,决定相加数取被乘数的值还是取零值,而且相加数逐次向左偏移1位,最后一起求积。 部分积 乘数 0 0 0 0 0 0 1 0 1 1 +X 0 0 1 1 0 1 0 0 1 1 0 1 右移1位→ 0 0 0 1 1 0 1 1 0 1 1(丢失) +X 0 0 1 1 0 1 0 1 0 0 1 1 右移1位→ 0 0 1 0 0 1 1 1 1 0 1(丢失) +0 0 0 0 0 0 0 0 0 1 0 0 1 右移1位→ 0 0 0 1 0 0 1 1 1 1 0(丢失) +X 0 0 1 1 0 1 0 1 0 0 0 1 右移1位→ 0 0 1 0 0 0 1 1 1 1 1(丢失) 乘积高位 乘积低位 在计算机内实现原码乘法的逻辑框图如图3.5所示。其中三个寄存器A,B,C分别存放部分积、被乘数和乘数,运算方法在人工计算的基础上作了以下修改。 (1) 在机器内多个数据一般不能同时相加,一次加法操作只能求出两数之和,因此每求得一个相加数,就与上次部分积相加。 (2) 观察计算过程很容易发现,在求本次部分积时,前一次部分积的最低位,不再参与运算,因此可将其右移一位,相加数可直送而不必偏移,于是用N位加法器就可实现两个N数相乘。 图3.5 实现原码一位乘法的逻辑电路框图 (3) 部分积右移时,乘数寄存器同时右移一位,这样可以用乘数寄存器的最低位来控制相加数(取被乘数或零),同时乘数寄存器的最高位可接收部分积右移出来的一位,因此,完成乘法运算后,A寄存器中保存乘积的高位部分,乘数寄存器中保存乘积的低位部分。 X·Y=0 乘积的符号位=X0Y0=00=0,乘积为正数。乘法开始时,A寄存器被清为零,作为初始部分积。被乘数放在B寄存器中,乘数放在C寄存器中。实现部分积和被乘数相加是通过给出A→ALU和B→ALU命令,在ALU中完成的。ALU的输出经过移位电路向右移一位送入A寄存器中。C寄存器是用移位寄存器实现的,其最低位用作B→ALU的控制命令。加法器最低一位的值,右移时将移入C寄存器的最高数值位,使相乘之积的低位部分保存进C寄存器中,原来的乘数在逐位右移过程中丢失了。 图3.5上还给出了一个计数器Cd,用来控制逐位相乘的次数。它的初值经常放乘数位数的补码值,以后每完成一位乘计算就使其计数一次,待计数到0时,给出结束乘运算的控制信号。 图3.5上未画出求结果的符号的电路。 乘法运算的控制流程图如图3.6所示。该图中,数据的位序号从左至右按0,1,…,n的次序编,0位表示符号,共n位数值。 从流程图上可以清楚地看到,这里的原码一位乘是通过循环迭代的办法实现的。每次迭代得到的部分积(P0,P1,…,Pn)可用下述式(3.14)表示: 图3.6 乘法运算的控制流程 2. 定点补码一位乘法 有的机器为方便加减法运算,数据以补码形式存放。如采用原码乘法,则在相乘之前,要将负数还原成原码形式,相乘之后,如乘积为负数,又要将其转换成补码形式,增加了操作步骤。为此,有不少计算机直接采用补码相乘。为了得出

文档评论(0)

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

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档