计算机组成原理中移码的运算,计算机组成原理_基本运算方法.ppt

本文详细介绍了计算机组成原理中定点数和浮点数的运算方法,包括补码加减乘除的运算规则、溢出判断、原码运算以及浮点数的对阶、尾数运算和规格化处理。内容涵盖加法器设计、溢出判断逻辑以及浮点数乘除的步骤和处理。
摘要由CSDN通过智能技术生成

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理_基本运算方法.ppt

(47页)

ad9940ddb44fca335a33fded19235abe.gif

本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦!

14.90 积分

2.4 基本运算方法补码(+、–、 ×、÷ )原码(+、 –、 ×、÷)浮点数运算移码(+、 –)定点数运算*/472.4.1 定点数的运算定点数一般用补码表示;符号位参加运算。重点:基于补码的加、减乘、除法*/471.补码的加减法 ( X + Y )补 = X补 + Y补 (1) ( X - Y )补 = X补 + (-Y)补 (2)数学依据:(X+Y)补=X+Y+2n=X+Y+2n+2n=X补+Y补全过程以2n为模,即除以2n后取余数。(X-Y)补=X-Y+2n=X-Y+2n+2n=X补+(-Y)补其中,(-Y)补 = [Y补]变补Y的符号置反后再表示成补码Y补连同符号一起变反、末尾+1*/472) X= –3 Y= –2 X补=1 1101 Y补=1 11101 1011(-5补码)1) X=3 Y=2 X补=0 0011 Y补=0 00100 0101(+5补码)【例】求(X+Y)补1) X= 4 Y= –5 X补=0 0100 Y补=1 1011(-Y)补=0 01010 1001(+9补码)2) X= –4 Y= 5 X补=1 1100 Y补=0 0101(-Y)补=1 10111 0111(–9补码)【例】求(X–Y)补 X补=0 0100 Y补=1 1011 X补=1 1100 Y补=0 0101*/4700101原10101原※补码表示与变补运算的区别补码表示10011补变补运算补码表示符号位不变负数尾数改变,正数尾数不变。00011补变补运算符号位变反,尾数变反、末尾加1【举例】11011001010110111101(-Y)补也称为Y补的机器负数。*/47(2)补码加减运算流程操作数用补码表示,符号位参加运算得到补码表示的结果,符号位指示结果的正负X补+Y补X补+(-Y)补ADDSUB*/47(3)逻辑实现#控制信号加法器输入端:Sub:控制MUX和CinA:输入A补B:输入B补加法器输出端:Sum: 加法结果Cout:进位信号#补码加减运算器框图MUXSum加法器444AZFCinCout4B401SubBOF补码加/减运算部件逻辑SFCFB'ZF: 0标志位;SF:符号标志;CF:进位/借位标志;OF:溢出标志。*/47(4)溢出判断思考:在什么情况下可能产生溢出?A:4位尾数,1位符号(SA)B:4位尾数,1位符号(SB) 补码,故符号位也参加运算 结果的符号,记为Sf符号位的进位,记为Cf尾数最高位的进位,记为C[假设]补码表示的A、B两数做加减运算*溢出的判断规则*/470 01101 1100正确0 00110 00101)A=3、B=2 3+2:0 0101 2)A=10、B=7 10+7:0 10100 01111 0001 正溢正确负溢正确正确3)A= -3、B= -2-3+(-2):1 1011 1 11011 11104)A= -10、B= -7 -10+(-7):0 1111 1 01101 10015)A=6、B= -4 6+(-4):0 0010 6)A= -6、B=4 -6+4:1 1110 1 10100 0100*/470 10100 0111(2)A=10 B=7 10+7 :1 0001 (4)A= -10 B= -7 -10+(-7):0 1111 1 01101 1001①硬件判断逻辑一(根据SA、SB与Sf的关系)+溢出逻辑=SASBSf②硬件判断逻辑二(根据Cf与C的关系)正溢负溢SASBSf*/47正确0 00110 00101)A=3 B=2 3+2:0 0101 2)A=10 B=7 10+7:0 10100 01111 0001 正溢正确负溢正确正确3)A= -3 B= -2-3+(-2):1 1011 1 11011 11104)A= -10 B= -7 -10+(-7):0 1111 1 01101 10015)A=6 B= -4 6+(-4):0 0010 0 01101 11006)A= -6 B=4 -6+4:1 1110 1 10100 0100Cf=0C =0Cf=0C =1Cf=1C =1Cf=1C =0Cf=1C =1Cf=0C =01111 11*/47②硬件判断逻辑二(Cf与C的关系)溢出逻辑= Cf⊕C③硬件判断逻辑三(从双符号位)①硬件判断逻辑一(SA、SB与Sf的关系)+溢出逻辑=SASBSfSASBSf*/471)3+2:正确00 001100 001000 0101 2)10+7:00 101000 011101 0001 正溢正确负溢正确正确3)-3+(-2):11 1011 11 110111 11104)-10+(-7):10 1111 11 011011 10015)6+(-4):00 0010 00 011011 11006)-6+4:11 1110 11 101000 0100第1符号位Sf1第2符号位Sf2*/47③硬件判断逻辑三(双符号位Sf1、Sf2)溢出逻辑= Sf1⊕Sf2②硬件判断逻辑二(Cf与C的关系)溢出逻辑= Cf⊕C①硬件判断逻辑一(SA、SB与Sf的关系)+溢出逻辑=SASBSfSASBSf00/11-正确;10-正溢;01-负溢;*/472、原码加减运算[符号位单独处理、数值位加减] 先比较两数符号:①加法:同号数值位求和,异号求差;②减法:异号数值位求和,同号求差;※求和时:数值位相加,和的符号取被加数(被减数)符号[若最高位产生进位,则结果有溢出。※求差时:被加数(被减数)与加数(减数)求补后相加。⊙最高数值位有进位,相加结果为正,数值位正确;符号取被加数(被减数)的符号。⊙最高数值位无进位,相加结果为负,得到数值位的补码,需对结果求补还原为绝对值形式的数值位;符号位与被加数(被减数)的符号相反。*/473原+2原3原+[-2]原3原 - 2原3原-[-2]原求和求差[例]已知 [X]原 = 1.0011,[Y]原 = 1.1010,计算[X+Y]原解:由原码加减运算规则知:同号相加,则求和,和的符号同被加数符号。 和的数值位为:0011 + 1010 = 1101 和的符号位为:1 [X+Y]原 = 1.1101[例]已知 [X]原 = 1.0011,[Y]原 = 1.1010,要求计算[X–Y]原 解:由原码加减运算规则知:同号相减,则数值位求差 差的数值位为:0011+(1010)求补 = 0011 + 0110 = 1001 。省略部分。000÷(-0.1010)=?R=X补=001000,001000 000001 r0Y补异号2 r1Y补异号2r0 /← + 110110010000 00000+B r12r1 /← 001100 00000+B + 110110r2r0上商0 000110000000步数 条件 操作 被除数/余数 商Q上商0 */47B=Y补=110110,-B=001010,Q=000000111010R=X补=001000,B=Y补=110110,-B=0010103 r2Y补异号2r2 /← +B 4 r3Y补同号r32r3 /← 111010 0000000010 00000r2000100 00000+ 110110上商0 商校正: -B + 001010111110余数:000010 00000110100 000102-4 × r4r4数符+1、末尾恒置1上商1 10011补 */4701+1置1左移了4位2.4.4 浮点数四则运算浮点运算的实现:低档微机,通过子程序中档微机,通过浮点处理器(协处理器)高档微机,通过专门的浮点运算部件*/47[以IEEE754浮点数为例]浮点数运算→尾数运算、阶码运算原码移码加减乘除加减*/470、IEEE754短浮点数阶码的加减①Ex和Ey分别是两数阶码,Eb是结果阶码,则:Eb = Ex+Ey+129 ( mod 28)原理推导:阶码用非标准移码表示(仅偏移2n-1-1=127)*/47 [Ex+Ey]移 = 127 + (Ex+ Ey)= [Ex]移 + [Ey]移 +10000001= (127+Ex)+(127+Ey) –127= [Ex]移+[Ey]移–127 = [Ex]移+[Ey]移+127求补=[Ex]移+[Ey]移+(-127)补= [Ex]移 + [Ey]移 +129( mod 28)②Ex和Ey分别是两数阶码,Eb是结果阶码,则:Eb =Ex-Ey= Ex+[–Ey]补+127 ( mod 28)原理推导:*/47[Ex– Ey]移 = 127 +(Ex– Ey)( mod 28)= 127+Ex-Ey-127+127= [Ex]移–[Ey]移 +127 = [Ex]移+(–[Ey]移)补 +01111111= [Ex]移+([Ey]移)求补+01111111( mod 28)或者mod 28,等价于忽略最高位的进位。[例]若两个阶码分别为10和-5,求10+(-5)和10-(-5)Ex = 127+10 =137=1000 1001Ey = 127+ (–5) = 122 = 0111 1010[–Ey ]补= 1000 0110Eb = Ex+Ey +129 = 1000 1001 + 0111 1010 +1000 0001 = 1000 0100 = 132 (mod 28) = +5 正确Eb = Ex+[Ey]求补 +127 = 1000 1001 + 1000 0110 +0111 1111 = 1000 1110 = 142(mod 28) = +15 正确*/471000 1001 0111 1010 + 1000 00011 1000 0100 1000 1001 1000 0110 + 01 11 11111 1000 1110 1、浮点的加减运算浮点加减法的思路:假设:A=2AE ×AM,B=2BE ×BM A+B= (AM+BM)×2E 调整阶码和尾数:AE →E ←BE、AM、BM 浮点数的加减→移位操作→尾数原码加减*/47[目的]使两数阶码相等(小数点实际位置对齐,尾数对应权值相同)。[规则]22×0.100123×0.110123×0.010123×0.1101小阶向大阶对齐。判操作数是否为0尾数为0阶码下溢(归0)(3)对阶(1)检测能否简化操作(2)计算阶差*/47(4)尾数加减.※阶码比较:比较线路或减法。※对阶操作:小阶的阶码增大,尾数右移。[例]AE>BE,则BE+1→BE,BM,直到BE=AEAM±BM→AM(5)结果规格化 |M|<1|M| ≥2应左移规格化应右移规格化尾数M左右移动,使: 1≤|M|<2*/47溢出判断以下情况下,可能会导致阶码溢出左规(阶码 - 1)时 左规时:先判断阶码是否为全0,若是,则直接置阶码下溢;否则,阶码减1后判断阶码是否为全0,若是,则阶码下溢。右规(阶码 +1)时右规(+ 1)时,先判断阶码是否为全1,若是,则直接置阶码上溢;否则,阶码加1后判断阶码是否为全1,若是,则阶码上溢。 */47[例]已知x=0.5, y=-0.4375, 求x+y=? x=0.5=1/2=(0.100...0)2=(1.00...0)2 ×2-1 y=-0.4325=(-0.01110...0)2=(-1.110..0)2×2-2[x]浮=0 01111110,000…00 [y]浮=1 01111101,110…00求阶差、对阶: ΔE移=0111 1110 - 0111 1101+127 e=128-127=+1故对y进行对阶:[y]浮=1 0111 1110 1110…00尾数真值相加:01.0000...00 + (10.1110...00)(原码加法:异号求差,加数变补后求和) 左规: +0.00100…00×2-1 = +1.00…0×2-4 [x+y]浮=0 0111 1011 00…00 = + 0.0625 */470111 1110 1000 0011 + 01 11 11111 1000 0000 =1000 0000=1281.0000 …00 +1.0010 …00 1 0.0010 …00 = 00.00100…00 < 1求补求补2、浮点数的乘法※运算步骤:①求阶和AE+BE浮点乘法→分解成:移码加法、原码乘法;②尾数相乘,设:A=2AE×AM,B=2BE ×BM 则:A×B= (AM×BM)×2AE+BE ③结果规格化。④其它处理:如舍入、置0、阶码溢出判断不需左规!最多右规1次!*/473、浮点数的除法※运算步骤:浮点除法→分解成:移码减法、原码除法设:A=2AE×AM,B=2BE×BM 则:A÷B=(AM/BM)×2AE-BE①求阶差AE-BE②尾数相除,③结果规格化。需右规??④其它处理:如舍入、置0、阶码溢出判断*/47 关 键 词: 组成 基本 原理 计算机 运算方法

4d91c43bfc72ca913299809b07b4968f.gif  天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值