




已阅读5页,还剩31页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
,系统总线,存储器,运算器,控制器,接口与通信,输入/输出设备,林楠办公室:211办公电话子邮件:linnan,计算机组成原理,第六章计算机的运算方法,第六章计算机的运算方法,3、定点乘法运算3.1、原码一位乘法3.2、补码一位乘法(重点:布斯乘法)3.3、补码两位乘法3.4、阵列乘法器,方法:充当计算机!严格按照运算法则去做,不加思考,态度认真,保证结果正确。,4、定点除法运算4.1、原码一位除法4.2、补码一位除法4.3、阵列除法器5、浮点四则运算5.1、浮点加减运算对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出,第六章计算机的运算方法,原码一位除法基本上是从手算演变过来,符号位单独处理。两个原码表示的数相除运算规则:商的符号位:两数的符号相异或商的数值部分:两数的绝对值相除。运算方法与普通的十进制小数除法相类似,设n位被乘数X和乘数Y用定点小数表示(定点整数同样)被除数:X原=Xf.Xn-1X1X0除数:Y原=Yf.Yn-1Y1Y0商Q原=(XfYf)+(0.Xn-1X1X0)/(0.Yn-1Y1Y0)于是原码与原码相除就变成如何进行两个正数相除的问题了。两种除法:恢复余数法不恢复余数法(加减交替法),4.1、原码一位除法,两个数相除,上商时,人会心算,一看就知道够不够减。够减商1,不够减商0。但机器不会,必须先作减法。若余数为正,才知道够减;若余数为负,才知道不够减。不够减时,必须恢复原来的余数。顾名思义恢复余数法。,4.1、原码一位除法,1)恢复余数法,被除数X=0.1011除数Y=0.1101求X/Y。商精确到小数点后四位。手算方法计算步骤如下:,4.1、原码一位除法,0.11010.11010.1011-0.11011.1110+0.11010.10110.10110-0.011010.010010.010010-0.0011010.0001010.0001010-0.00011011.1111101+0.00011010.00010100.00010100-0.000011010.00000111,-Y得负数,不够减,商0,X低位补0-2-1Y得正数,够减,商1X低位补0,-2-2Y得正数,够减,商1X低位补0,-2-3Y得负数,不够减,商0+2-3Y,恢复余数,-2-4Y得正数,够减,商1,+Y,恢复余数,X低位补0,4.1、原码一位除法,1)恢复余数法,1、符号单独处理,Qf=(XfYf),取绝对值相除;2、作减法,若不溢出,运算开始;3、-Y,若余数R为正(够减),商1,左移一位;-Y,若余数R为负(不够减),商0,恢复余数,左移一位;4、重复n步;5、若最后一步余数为负(不够减),应恢复余数(+Y补)。右移除数Y,可以通过左移余数来替代,左移出界的余数的高位都是无用的零,对运算不会产生任何影响。,如果,余数一共被左移了n次,最后需要校正。最终的余数再右移n次。,寄存器A存放被除数X=0.1011,后来可存放余数,累次参加运算。寄存器B存放除数Y=0.1101寄存器C存放商Q=X/Y另外设置计数器CR控制循环次数。X原-Y原运算可以用X补+-Y补取代;Y补=0.1101-Y补=1.0011,4.1、原码一位除法,分析:参加运算的数X,Y都是正数,正数的原码与补码表示相同。,被除数X(余数)商操作0.101100000+1.0011-Y(+-Y补)1.111000000负数:不够减,商0+0.1101+Y恢复余数,(+Y补)0.101100000余数和商同时左移一位1.011000000+1.0011-Y(+-Y补)0.100100001正数:够减,商11.001000010余数和商同时左移一位+1.0011-Y(+-Y补)0.010100011正数:够减,商10.101000110余数和商同时左移一位+1.0011-Y(+-Y补)1.110100110负数:不够减,商0+0.1101+Y恢复余数,(+Y补)0.101000110余数和商同时左移一位1.010001100+1.0011-Y(+-Y补)0.011101101正数:够减,商1,余数再右移四位得正确结果:0.00000111。,2)不恢复余数法(加减交替法)加减交替法是对恢复余数除法的一种修正。当余数为负时,不恢复,继续求下一位商,但用加上除数(+Y)的办法来取代(-Y)操作,其他操作不变。加减交替法的规则如下:余数为正,商1,左移一位,减除数(-Y);余数为负,商0,左移一位,加除数(+Y)。此方法不用恢复余数,所以又叫不恢复余数法。但若最后一次上商为0,则仍需恢复余数(+Y补)。,4.1、原码一位除法,被除数(余数)商操作0.101100000+1.0011-Y(+-Y补)1.111000000负数:商01.110000000余数和商同时左移一位+0.1101+Y0.100100001正数:商11.001000010余数和商同时左移一位+1.0011-Y(+-Y补)0.010100011正数:商10.101000110余数和商同时左移一位+1.0011-Y(+-Y补)1.110100110负数:商01.101001100余数和商同时左移一位+0.1101+Y0.011101101正数:商1,4.1、原码一位除法,余数再右移四位得正确结果:0.00000111。,CPA,2.3、补码定点加法器,+X,-Y,设开关电路负数不送回,思考问题:恢复余数法在电路上实现其实更简单!,4、定点除法运算4.1、原码一位除法4.2、补码一位除法4.3、阵列除法器5、浮点四则运算5.1、浮点加减运算对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出,第六章计算机的运算方法,4.2、补码一位除法,补码加减交替法,法则如下:(Ri补为余数,数值部分共n位),1)比较2)上商3)求新余数,1)比较2)上商3)求新余数,由上式化简,方法:列表格,4)商的符号两种常见的做法:方法一:第一步比较XY同号做X补Y补;异号做X补+Y补;方法二:一开始就将被除数X当作初始余数R0,R0与Y同号商1,异号商0,得的假商最后求反进行校正。5)商的校正对于方法一,商符正确,商末位恒置1。对于方法二,商符取反,商末位恒置1。,4.2、补码一位除法,思考:由于方法一开始比较被除数与除数,后来比较余数与除数,控制部署不一样。所以采用方法二,硬件电路比较好实现,全部是比较余数与除数,便于计算机控制。,4.2、补码一位除法,被除数X(余数R)商Q操作0.101100000+1.0011XY同号:+-Y补1.111000000RY异号:商01.110000000余数R和商同时左移一位+0.1101+Y补0.100100001RY同号:商11.001000010余数R和商同时左移一位+1.0011+-Y补0.010100011RY同号:商10.101000110余数R和商同时左移一位+1.0011+-Y补1.110100110RY异号:商01.101001100余数R和商同时左移一位+0.1101+Y补0.011101101商的末位恒置1,使用方法一:X补=0.1011Y补=0.1101-Y补=1.0011,余数再右移四位得正确结果,前面补符号位。,4.2、补码一位除法,被除数X(余数R)商Q操作0.101100001RY同号:商11.011000010余数R和商同时左移一位+1.0011+-Y补0.100100011RY同号:商11.001000110余数R和商同时左移一位+1.0011+-Y补0.010100111RY同号:商10.101001110余数R和商同时左移一位+1.0011+-Y补1.110101110RY异号:商01.101011100余数R和商同时左移一位+0.1101+Y补0.01111110001101校正:商符取反,商末位置1,使用方法二:X补=0.1011Y补=0.1101-Y补=1.0011,余数再右移四位得正确结果,前面补符号位。,4.2、补码一位除法,被除数X(余数R)商Q操作0.010000000RY异号:商00.100000000余数R和商同时左移一位+1.1000+Y补0.000000000RY异号:商00.000000000余数R和商同时左移一位+1.1000+Y补1.100000001RY同号:商11.000000010余数R和商同时左移一位+0.1000+-Y补1.100000011RY同号:商11.000000110余数R和商同时左移一位+0.1000+-Y补1.10000011010111校正:商符取反,商末位置1,使用方法二:X补=0.0100Y补=1.1000-Y补=0.1000,余数再右移四位得正确结果:1.11111000,4、定点除法运算4.1、原码一位除法4.2、补码一位除法4.3、阵列除法器5、浮点四则运算5.1、浮点加减运算对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出,第六章计算机的运算方法,和阵列乘法器相比,阵列除法器也是一种并行运算部件,采用大规模集成电路制造。它比早期的串行除法器的控制线路少,并提供较高的运算速度。,4.3、阵列除法器P297,可控加/减法单元(CAS),4、定点除法运算4.1、原码一位除法4.2、补码一位除法4.3、阵列除法器5、浮点四则运算5.1、浮点加减运算对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出,第六章计算机的运算方法,浮点数的表示形式(以2为底):X=S2j=定点小数*2定点整数S尾数,定点小数,用补码表示,决定数的有效精度。j阶码,定点整数,用移码或补码表示,决定数的表示范围。2基数,5、浮点四则运算,IEEE754国际标准:符号位数阶码j位数尾数S位数总位数短浮点数182332长浮点数1115264临时浮点数1156480,0.8125*105,浮点数的阶码为什么用移码表示呢?1)正数的移码大于负数的移码:X移-X移原码、补码、反码都不具备。2)如果:XY则X移Y移所以,在浮点运算中,可以方便地通过比较移码的大小来实现阶码真值大小的比较,其他三种码都不具备这一特性。,移码:补码符号位取反(1表示正号,0表示负号),数据0有唯一的编码,即+0移=-0移=10000。,5、浮点四则运算,移码运算特点:1)最高位符号位,1表示正号,0表示负号。如果是双符号位,最高位保持0:01正数,00负数。溢出判断:最高位为1,10上溢,11下溢。2)在计算机中,移码只执行加减法运算,且运算结果+2n修正;(即结果的符号位取反)得到X移。例如:X=+1010Y=+0011,则X移=11010Y移=10011X移+Y移=11010+10011=01101,修正:X+Y移=11101运算法则:X+Y移=X移+Y补X-Y移=X移+-Y补,5、浮点四则运算,X+Y移=X移+Y补=11010+00011=11101,4、定点除法运算4.1、原码一位除法4.2、补码一位除法4.3、阵列除法器5、浮点四则运算5.1、浮点加减运算对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出,第六章计算机的运算方法,X=104=01101000=0.1101000*27=00111;0.1101000Y=40=00101000=0.1010000*26=00110;0.1010000,5.1、浮点加减运算,思考1:X和Y的尾数可以直接相加减吗?,思考2:对齐阶码后,尾数才能进行加减运算。阶码大的向小的看齐?还是小的向大的看齐?,思考3:对齐阶码是不是等于小数点对齐了?,思考4:对齐阶码后,尾数应该做什么相应的改变?,Y=40=00101000=0.01010000*27=00111;0.01010000,800=0.8103=0.8103=0.08104+9000=0.9104=90103=0.91049800=0.98104,设有两浮点数X,Y,其中:X=SX*2jXY=SY*2jYXY运算执行以下五步:1)阶码对齐(对大阶):使两数的阶码值相等,对齐小数点。求阶码差j,j0时,小阶码的尾数右移j位:阶码+j,2)尾数相加减:两尾数进行加/减运算。3)尾数规格化:尾数符号01或10:尾数溢出。右规:尾数(带符号)右移1位,前补符号位。同时阶码+1。尾数符号00或11:尾数不溢出。但如符号位和最高数值位相同:000或111左规:尾数数值部分左移直到最高数值位与符号位不同为止(001,110)。同时阶码减去左移位数。,5.1、浮点加减运算,4)尾数舍入(处理多余位)在执行右规或对阶时,尾数低位上的数值会移掉,使数值的精度受到影响,常用“0”舍“1”入法。(三种舍去法:恒舍去,末位恒置1,0舍1入;一般取其精度受影响最小的方法:0舍1入)5)阶码判溢出若阶码符号00或11,不溢出。若阶码符号10为下溢,置运算结果为零,若阶码符号01为上溢,置溢出标志。,5.1、浮点加减运算,X=011100.1101000jXSXY=011000.1010000jYSY,SYjY+1,SXjX+1,SXjX+1,No,No,Yes,jX=jY?,SX+-SYSXjX(orjY)jX,Xf1Xf2=1,Xf1Xf2X1+Xf1Xf2X1=1?,SXjX-1,输出,Yes,Yes,No,3)尾数规格化,00.1101000SX+00.0101000SY01.0010000右规:011100.10010000,左规,右规,2)尾数加减,1)阶码对齐,4)尾数舍入5)阶码判溢出,jXjY?,No,Yes,例:已知X=0.11011011*2010,Y=-0.10101100*2100求X+Y解:阶码对齐:jX补=000010jY补=000100-jY补=111100求阶差j=jX补+-jY补=000010+111100=111110(-2)X的阶码小:X阶码+2(jX补=jY补=000100)X的尾数右移2位,前面补符号位SX补=000011011011(此时保留右移数据,不丢不舍)尾数相加:SX补=SX补+SY补=000011011011+1101010100=111000101011尾数规格化:左规:数值位左移1位=11000101011阶码-1(jX补=000011)尾数舍入:舍去的附加位最高位为1,结果最低位+1:Sx补=1100010110S=-0.11101010阶码判溢出:阶码符号为00,不溢出。最终结果为:X+Y=-0.11101010*2011,实际运算时,先确定位数!(阶码、尾数最好都取双符号位参加运算。)假设机器字长16位,采用浮点表示数,其中阶符2位,阶码4位,尾符2位,尾数8位,都用补码表示。,4、定点除法运算4.1、原码一位除法4.2、补码一位除法4.3、阵列除法器5、浮点四则运算5.1、浮点加减运算对阶、执行加减、规格化、舍入、判溢出5.2、浮点乘除运算阶码加减、尾数乘除、规格化、舍入、判溢出,第六章计算机的运算方法,X=SX2jXY=SY2jYX*Y=(SX*SY)2jX+jYX/Y=(SX/SY)2jX-jY,5.2、浮点乘除运算,1)阶码加减:乘法:jX+jY,除法:jX-jY2)尾数乘除:乘法:SX*S
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年度计算机四级题库检测试题打印含完整答案详解【网校专用】
- 个人歌唱活动策划与执行要点
- 物料能量衡算精要
- 酒店微笑问好服务培训纲要
- 2026届山东省曲阜市石门山镇中学九年级化学第一学期期中学业水平测试模拟试题含解析
- 2026届山东省德州市六校化学九上期末统考模拟试题含解析
- 2026届山东滨州阳信县九年级英语第一学期期末教学质量检测模拟试题含解析
- 2026届河南省驻马店九上化学期中预测试题含解析
- 河南省南阳市宛城区等2地2025-2026学年高二上学期开学英语试题(含答案)
- 2025年腔镜技能大赛试题及答案
- 部编版新教材道德与法治二年级上册《5. 这是我们班》教案
- 滴滴认证考试题库及答案
- 社会教育情感教案
- 法律律师委托协议书模板
- Unit4PlantsaroundusPartBHowcanwehelpplants(教学设计)-人教PEP版英语三年级上册
- 2025年公共基础知识综合考试练习题及解析答案
- 2025年小学英语教材培训心得体会范文
- 2025年广西继续教育公需科目考试试题和答案
- 众筹方案文案(3篇)
- 系统性风险压力测试框架-洞察阐释
- 子宫动脉栓塞术后护理常规
评论
0/150
提交评论