《DJ9第3章4-算术逻辑运算基础.ppt》由会员分享,可在线阅读,更多相关《DJ9第3章4-算术逻辑运算基础.ppt(27页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三节第三节 运算方法运算方法 本节主要内容本节主要内容 :补码加减法补码加减法 原码一位乘法原码一位乘法 补码一位乘法补码一位乘法 原码除法原码除法 补码除法补码除法 浮点运算法浮点运算法一一.补码加减法补码加减法 操作数用补码表示,符号位参加运算,结果操作数用补码表示,符号位参加运算,结果也用补码表示。也用补码表示。采用补码的优点:采用补码的优点:实际操作只取决于操作码,与操作数的正实际操作只取决于操作码,与操作数的正负无关负无关结果不需要修正结果不需要修正加法和减法统一为加法处理加法和减法统一为加法处理 3.3.1 定点加减运算定点加减运算1.补码加减运算的补码加减运算的基本关系式基本关
2、系式(X+Y)补补 =X补补 +Y补补 (1)(X-Y)补补 =X补补 +(-Y)补补 (2)(1)式)式:操作码为操作码为“加加”时,两数直接相加。时,两数直接相加。3)X=3 Y=2 X补补=0 0011 Y补补=1 11100 0001(+1补码)补码)2)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补码)补码)4)X=3 Y=2 X补补=1 1101 Y补补=0 00101 1111(1补码)补码)例例.求求(X+Y)补补(X+Y)补补 =X补补 +Y补补 (1)(
3、X-Y)补补 =X补补 +(-Y)补补 (2)(2)式:)式:操作码为操作码为“减减”时,将减转换为加。时,将减转换为加。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)补补Y补补 (Y)补补:将将Y Y补补变补变补不管不管Y Y补补为正或负,将其符号连同为正或负,将其符号连同尾数一起各位变反,末位加尾数一起各位变反,末位加1 1。即将减数变补后与被减数相加。即将减数变补后与被减数相加。X补
4、补=0 0100 Y补补=1 1011 X补补=1 1100 Y补补=0 0101注意:某数的注意:某数的补码表示补码表示与某数与某数变补变补的区别。的区别。例例.1 0101.1 0101原原 1 10111 1011补码表示补码表示1 00111 0011补补 0 11010 1101变补变补 0 01010 0101原原 0 01010 0101补码表示补码表示符号位不变;符号位不变;负数尾数改变负数尾数改变,正数尾数不变正数尾数不变0 00110 0011补补 1 11011 1101变补变补符号位改变,符号位改变,尾数改变。尾数改变。补码表示补码表示:数的正负关系不变数的正负关系不变
5、变补变补:数的正负关系发生改变数的正负关系发生改变2.算法流程算法流程操作数用补码表示,操作数用补码表示,符号位参加运算符号位参加运算结果为补码表示,符结果为补码表示,符号位指示结果的正负号位指示结果的正负X补补+Y补补X补补+(-Y)补补ADDSUB3.补码加减运算的逻辑实现补码加减运算的逻辑实现A(X补补)B(Y补补)+AABB+B+B+1CPA A(1)控制信号控制信号加法器输入端控制:加法器输入端控制:+A+A:打开控制门,将打开控制门,将A A送送。+B+B:打开控制门,将打开控制门,将B B送送。+1+1:控制末位加控制末位加 1 1。+B+B:打开控制门,将打开控制门,将B B送
6、送。加法器输出端控制:加法器输出端控制:A:打开控制门,将结打开控制门,将结 果送果送A输入端。输入端。CPCPA A:将结果打入将结果打入A A。(2)补码加减运算器粗框补码加减运算器粗框3.3.2 溢出判断、移位和舍入溢出判断、移位和舍入1、溢出以及判断方法、溢出以及判断方法 什么是溢出什么是溢出?在什么情况下可能产生溢出在什么情况下可能产生溢出?例例.数数A有有4位尾数位尾数,1位符号位符号SA 数数B有有4位尾数位尾数,1位符号位符号SB 符号位参与运算符号位参与运算 结果符号结果符号Sf尾数最高位进位尾数最高位进位C符号位进位符号位进位Cf正确正确0 00110 0010+(1)A=
7、3 B=2 3+2:0 0101 (2)A=10 B=7 10+7:0 10100 0111+1 0001 正溢正溢正确正确负溢负溢(3)A=3 B=2 3+(2):1 1011 1 11011 1110 +(4)A=10 B=7 10+(7):0 1111 1 01101 1001+正确正确正确正确(5)A=6 B=4 6+(4):0 0010 0 01101 1100+(6)A=6 B=4 6+4:1 1110 1 10100 0100+上式中上式中,有两种情况产生溢出有两种情况产生溢出:(2)A=10 B=7 10+7:0 10100 0111+1 0001 正溢正溢负溢负溢(4)A=1
8、0 B=7 10+(7):0 1111 1 01101 1001+尾数最高位进位尾数最高位进位C=1符号位进位符号位进位Cf=0尾数最高位进位尾数最高位进位C=0符号位进位符号位进位Cf=1 硬件判断逻辑一硬件判断逻辑一(SA、SB与与Sf的关系的关系)溢出溢出=SA SB Sf+SA SB Sf 硬件判断逻辑二硬件判断逻辑二(Cf与与C的关系的关系)上述的溢出情况上述的溢出情况:(2)A=10 B=7 10+7:0 10100 0111+1 0001 正溢正溢负溢负溢(4)A=10 B=7 10+(7):0 1111 1 01101 1001+尾数最高位进位尾数最高位进位C=1符号位进位符号
9、位进位Cf=0尾数最高位进位尾数最高位进位C=0符号位进位符号位进位Cf=1溢出溢出=Cf C 硬件判断逻辑三硬件判断逻辑三(双符号位双符号位Sf1、Sf2)采用单符号位采用单符号位,在溢出时结果的符号发生错误在溢出时结果的符号发生错误;若采用双符号位若采用双符号位,在溢出时在溢出时,仍然能够判断结果仍然能够判断结果的正确符号位的正确符号位;采用双符号位的计算例采用双符号位的计算例:正确正确(1)3+2:00 001100 0010+00 0101 (2)10+7:00 101000 0111+01 0001 正溢正溢第一符号位第一符号位Sf1第二符号位第二符号位Sf2负溢负溢正确正确正确正确
10、正确正确(3)3+(2):11 1011 11 110111 1110+(4)10+(7):10 1111 11 011011 1001+(5)6+(4):00 0010 00 011011 1100+(6)6+4:11 1110 11 101000 0100+溢出溢出=Sf1 Sf2由此可得由此可得:溢出判断的三种方式溢出判断的三种方式:溢出溢出=SA SB Sf+SA SB Sf溢出溢出=Cf C溢出溢出=Sf1 Sf2(对双符号位对双符号位)2、移位操作、移位操作 逻辑移位逻辑移位:移位类型移位类型1 0 0 0 1 1 1 1循环左移循环左移:纯粹逻辑数码位置的移动纯粹逻辑数码位置的移
11、动,无数值含义。无数值含义。0 0 0 1 1 1 1 1 1 算术移位算术移位:数码位置变化数码位置变化,有数值和符号的有数值和符号的区别。移位后符号位不变。区别。移位后符号位不变。1 0 0 1 1 1 1算术左移算术左移:1 0 1 1 1 1 0(15 原码原码)(30 原码原码)移位寄存器移位寄存器:移位逻辑移位逻辑在寄存器中移位在寄存器中移位 D4 D3 D2 D1移位寄存器移位寄存器D4 D3 D2 右移右移左移左移 D3 D2 D1 移位门移位门:斜位传送斜位传送(运算器中运算器中)。左斜送左斜送 右斜送右斜送 门门4 门门3 门门2 门门1移位门移位门加法器加法器 4 3 2
12、 1 原码移位规则原码移位规则符号位不变符号位不变,空位补空位补0 01001111(15 原码原码)左移左移:原数原数 21011110(30 原码原码)右移右移:原数原数 201010(10原码原码)00101(5原码原码)补码移位规则补码移位规则 正数的补码移位规则正数的补码移位规则单符号位单符号位:双符号位双符号位:00 1110 00 01110 01110 1110 左移左移右移右移右移右移0 0111 0 0011 左移左移左移左移右移右移右移右移01 1100 00 1110 00 0111 数符不变数符不变(单单:符号位不变符号位不变;双双:第一符号位不变第一符号位不变)左移
13、空位补左移空位补0,尾数最高位移至第二符号位尾数最高位移至第二符号位右移时第二符号位移至尾数最高位右移时第二符号位移至尾数最高位单符号位单符号位:1 10111 0110 双符号位双符号位:10 1100 11 0110 负数补码移位规则负数补码移位规则左移左移右移右移右移右移1 1011 1 1101 左移左移右移右移右移右移11 0110 11 1011 数符不变数符不变(单单:符号位不变符号位不变;双双:第一符号位不变第一符号位不变)左移空位补左移空位补0,尾数最高位移至第二符号位尾数最高位移至第二符号位右移空位补右移空位补1(第二符号位移至尾数最高位第二符号位移至尾数最高位)易出错处易
14、出错处:00 1110 左左右右01 1100 正确正确:10 1100 00 1100 01 1100 00 0110 正确正确:00 1110 11 0110 11 1100 左左正确正确:10 1100 11 1110 右右11 0110 正确正确:3、舍入方法、舍入方法 0舍舍1入入(原码、补码原码、补码)0 00100原原 1 00101原原 1 11011补补 末位恒置末位恒置1(原码、补码原码、补码)0 00100原原 1 11011补补 1 00101原原 0 0010原原 1 0011原原 1 1110补补 0 0011原原 1 0011原原 1 1101补补 例例.保留保留
15、4位尾数位尾数:例例.保留保留4位尾数位尾数:(0舍舍)(1入入)(1入入)3.3.3 定点乘法运算定点乘法运算 乘法运算的三个步骤乘法运算的三个步骤:相乘相乘、移位移位、部分积累加部分积累加1、原码一位乘法、原码一位乘法基本思想基本思想:每次用乘数中的一位去乘被乘数。每次用乘数中的一位去乘被乘数。例例.0.1101 1.1011积符积符 SP=SX SYX原原Y原原乘积乘积 P=X Y(1)算法分析算法分析(2)手算手算 0.1101 0.10110.10001111需解决的问题需解决的问题:1)加数增多加数增多(由乘数位数决定由乘数位数决定)2)加数的位数增多加数的位数增多(与被乘数、乘数
16、位数有关与被乘数、乘数位数有关)3)部分积错位相加部分积错位相加解决方法解决方法:将一次性相加改为分步累加。将一次性相加改为分步累加。上符号上符号:1.100011111101110100001101+部分积部分积部分积部分积部分积部分积部分积部分积(3)分步乘法分步乘法 每次将乘数的一位所对应的部分积与原部每次将乘数的一位所对应的部分积与原部分积的累加和相加分积的累加和相加,并右移一位。并右移一位。设置寄存器设置寄存器:A:存放部分积累加和、乘积高位存放部分积累加和、乘积高位 B:存放被乘数存放被乘数 C:存放乘数、乘积低位存放乘数、乘积低位 设置初值设置初值:C=Y =.1011 B=X
17、=00.1101A=00.0000步数步数 条件条件 操作操作 A C A C 00.0000 .10100.0000 .1011 1 1 1)C Cn n=1=1+B+BC Cn n+00.1101+00.110100.00.11011101 0.11010.1101 0.101 0.1011 1 1101 1101 1101 1101 0000 0000 1101 1101 0.100011110.10001111BC 1101 1101 00.00.011001101 1.10.101 1 0.11010.1101 0.10 0.101 11 12 2)C Cn n=1=1+B+B+00
18、.1101+00.11010 01 1.0011001100.00.100110011111.1.10 0 0.11010.1101 0.1 0.10 01111 0.11010.1101 0.1011 0.1011 1101 1101 1101 1101 0000 0000 1101 1101 0.100011110.10001111BC3 3)C Cn n=0=0+0+0+00.0000+00.000000.00.1001100100.00.01000100111111.1 14 4)C Cn n=1=1+B+B+00.1101+00.11010 01 1.0001000100.00.10
19、00100011111111加符号位加符号位 X X原原YY原原 =1.10001111=1.10001111 0.1101 0.1101 0.101 0.1011 1 1101 1101 1101 1101 0000 0000 1101 1101 0.10001111 0.10001111BC 2.算法流程算法流程0 A0 A、X BX B、Y CY C、0 CR0 CRC Cn n=1 =1?CR=n CR=n?1/21/2(A+BA+B)A A,C C1/21/2(A+0A+0)A A,C C CR+1 CRCR+1 CRYYNN SxSx+SySy S SA A循环次数循环次数 3.3.运算规则运算规则(1 1)操作数、结果用原码表示;)操作数、结果用原码表示;(2 2)绝对值运算,符号单独处理;)绝对值运算,符号单独处理;(3 3)被乘数)被乘数(B)(B)、累加和累加和(A)(A)取双符号位取双符号位,乘数只取尾数乘数只取尾数或其绝对值或其绝对值(将乘数的符号位略去,以免计算时将符号位将乘数的符号位略去,以免计算时将符号位误作一位数字加以处理误作一位数字加以处理);(4 4)乘数末位)乘数末位(CnCn)为判断位,其状态决定下步操作;为判断位,其状态决定下步操作;(5 5)作)作n n(乘数有效位数)(乘数有效位数)次循环次循环(累加、右移)累加、右移)