计算机组成原理笔算乘法改进,计算机组成原理(唐朔飞)运算方法 PPT.ppt

a7f4a3f590493a1e451dd952a488fd7c.gif 计算机组成原理(唐朔飞)运算方法 PPT.ppt

(62页)

计算机组成原理笔算乘法改进,计算机组成原理(唐朔飞)运算方法 PPT.ppt_第1张图片

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

23.9 积分

第6章 教 学 内 容§6.1 无符号数和有符号数§6.2 定点数和浮点数§6.3 定点运算§6.4 算术逻辑单元学 习 重 点 机器数与真值的区别计算机中数的符号和小数点的表示法各种机器数(原码、补码、反码、移码)的应用场合及其与真值的转换机器字长确定后,定点机和浮点机中各种机器数的表示范围移位运算在计算机中的特殊作用,不同机器数的移位规则定点补码加、减、原码一位乘法(原理)学 习 难 点 区别浮点数、补码表示的浮点规格化数定点机和浮点机中运算结果溢出的判断机器数运算规则对运算器硬件组成的影响[-x]补和[-X*]补的区别(x*是真值x的绝对值)机器字长相同时,±0的补码比原码、反码能多表示一个负数一、无符号数机器字长:寄存器的位数无符号数:寄存器中每一位均可存放数值,所表示的数值没有正负号 8 位 0 ~ 25516 位 0 ~ 655356.1 无符号数和有符号数无符号数的表示范围:带正负符号的数 正0负1 符号数字化的数+ 0.10110 1011小数点的位置+ 11000 1100小数点的位置– 11001 1100小数点的位置– 0.10111 1011小数点的位置真值 机器数1. 机器数与真值二、有符号数符号位 数值位2. 原码表示法原码:带符号的绝对值表示(1) 定义:符号位为0正1负,数值位为真值的绝对值整数原码定义x 为真值,n 为整数的位数如:x = +1110[x]原 = 0 , 1110 [x]原 = 24 + 1110 = 1 , 1110 x = 1110[x]原 = 0,x 2n > x ≥ 0正整数2n x 0 ≥ x > 2n负整数用 逗号 将符号位和数值位隔开小数原码定义x 为真值如:x = + 0.1101[x]原 = 0 . 1101 x = 0.1101[x]原 = 1 ( 0.1101) = 1 . 1101 x 1 > x ≥ 0[x]原 = 1 – x 0 ≥ x > 1x = 0.1000000[x]原 = 1 ( 0.1000000) = 1 . 1000000x = + 0.1000000[x]原 = 0 . 1000000用 小数点 将符号位和数值位隔开用 小数点 将符号位和数值位隔开(2) 例题例 6.1 已知 [x]原 = 1.0011 求 x解:例 6.2 已知 [x]原 = 1,1100 求 x解:x = 1 [x]原 = 1 1.0011 = 0.0011x = 24 [x]原 = 10000 1,1100 = 1100– –0.00111100由定义得由定义得由真值可以按照定义求原码,由原码也可以按照定义求真值例 6.4 求 x = ±0 的原码解:设 x = +0.0000例 6.3 已知 [x]原 = 0.1101 求 x解:∴ x = + 0.1101同理,对于整数[+ 0]原 = 0,0000[+0.0000]原 = 0.0000x = 0.0000[ 0.0000]原 = 1.0000[ 0]原 = 1,0000∴ [+ 0]原 ≠ [ 0]原 根据 定义 ∵ [x]原 = 0.1101原码的特点:简单、直观但是用原码做加法时,会出现如下问题:能否 只做加法 ? 找到一个与负数等价的正数 来代替这个负数就可使 减 加加法 正 正加加法 正 负加法 负 正加法 负 负减减加 要求 数1 数2 实际操作 结果符号正可正可负可正可负负(1) 补数的概念 时钟逆时针- 363顺时针+ 9 615- 1233. 补码表示法可见 3 可用 + 9 代替记作 3 ≡ + 9 (mod 12)同理 4 ≡ + 8 (mod 12) 5 ≡ + 7 (mod 12) 时钟以 12为模减法 加法称 + 9 是 – 3 以 12 为模的补数9圈3圈 3 ≡ + 97 (mod 100)结论: 一个负数加上 “模” 即得该负数的补数互为补数的正、负数,它们绝对值之和即为 模 数 计数器(模 16)– 101110110000+ 0101 1011100001011 0000 ?可见 1011 可用 + 0101 代替记作 1011≡ + 0101 (mod 24)同理 011≡ + 101 (mod 23) 0.1001≡ + 1.0111 (mod 2)自然去掉 + 0101(mod24)≡ 1011(mod24)(2) 正数的补数即为其本身 + 10000+ 10000两个互为补数的数+ 0101+ 10101≡分别加上模结果仍互为补数∴ + 0101 ≡ + 0101 + 010124+1 – 10111,0101用 逗号 将符号位和数值位隔开丢掉 10110 , 1 ,??1011(mod24)可见?+ 01010101010110110101+(mod 24+1)100000=(3) 补码定义整数补码定义x 为真值n 为整数的位数[x]补 = 0,x 2n > x ≥ 02n+1 + x 0 > x ≥ 2n(mod 2n+1)如:x = +1010[x]补 = 27+1 +( 1011000 )= 1000000001011000[x]补 = 0,1010x = 10110001,0101000用 逗号 将符号位和数值位隔开小数补码定义x 为真值x = + 0.1110[x]补 = x 1 > x ≥ 02 + x 0 > x ≥ 1(mod 2)如:[x]补 = 0.1110x = 0.11000001.0100000[x]补 = 2+( 0.1100000 )= 10.00000000.1100000用 小数点 将符号位和数值位隔开(4) 求补码的快捷方式= 100000= 1,011010101 + 1= 1,0110 又[x]原 = 1,1010则[x]补 = 24+1 1010= 11111 + 1 1010= 1111110101010当真值为 负 时,补码 可用 原码除符号位外每位取反,末位加 1 求得+ 1设 x = 1010 时(5) 举例解:x = + 0.0001解:由定义得x = [x]补 – 2 = 1.0001 – 10.0000[x]原 = 1.1111例 。省略部分。od 2)A–B= A+(–B )整数 [A – B]补= [A+(–B )]补= [A]补 + [ – B]补(mod 2n+1)小数 [A – B]补= [A+(–B )]补(mod 2)连同符号位一起相加,符号位产生的进位自然丢掉= [A]补 + [ – B]补2. 举例解:[A]补[B]补[A]补 + [B]补+= 0 . 1 0 1 1= 1 . 1 0 1 1= 1 0 . 0 1 1 0= [A + B]补验证例 6.18设 A = 0.1011,B = – 0.0101求 [A + B]补0.1011– 0.01010.0110∴ A + B = 0 . 0 1 1 0[A]补[B]补[A]补 + [B]补+= 1 , 0 1 1 1= 1 , 1 0 1 1= 1 1 , 0 0 1 0= [A + B]补验证– 1001– 1110– 0101+例 6.19设 A = –9,B = –5 求 [A+B]补解:∴ A + B = – 1110例 6.20设机器数字长为 8 位(含 1 位符号位)且 A = 15, B = 24,用补码求 A – B解:A = 15 = 0001111B = 24= 0011000[A]补 + [– B]补+[A]补= 0, 0001111[– B]补= 1, 1101000= 1, 1110111= [A – B]补[B]补 = 0, 0011000练习 1设 x = y = 用补码求 x+y9161116x + y = – 0.1100 =1216–练习 2 设机器数字长为 8 位(含 1 位符号位) 且 A = – 97,B = +41,用补码求 A – BA – B = + 1110110 = + 118∴ A – B = – 1001 = –9错错3. 溢出判断(1) 一位符号位判溢出参加操作的 两个数(减法时即为被减数和“求补”以后的减数)符号相同,其结果的符号与原操作数的符号不同,即为溢出硬件实现最高有效位的进位 符号位的进位 = 1如1 0 = 10 1 = 1有 溢出0 0 = 01 1 = 0无 溢出溢出(2) *两位符号位判溢出[x]补' = x 1 >x ≥ 0 4 + x 0 >x ≥ –1(mod 4)[x]补' + [y]补' = [ x + y ]补' (mod 4)[x –y]补' = [x]补' + [– y]补' (mod 4)结果的双符号位 相同 未溢出结果的双符号位 不同 溢出最高符号位 代表其 真正的符号00. ×××××11. ×××××10. ××××× 01. ×××××00, ×××××11, ×××××10, ××××× 01, ×××××4. 补码加减法的硬件配置-1V0 A nGAGS 加法器(n+1)溢出判断求补控制 逻 辑0 X nA、X 均 n+1 位用减法标记 GS 控制求补逻辑∑A(X)补B(Y)补+AA+B+BBB+1∑→ACP4. 补码加减法的硬件配置-2三、乘法运算1. 分析笔算乘法A = – 0.1101 B = 0.1011A×B = – 0.100011110 . 1 1 0 10 . 1 0 1 11 1 0 11 1 0 10 0 0 01 1 0 10 . 1 0 0 0 1 1 1 1符号位单独处理乘数的某一位决定是否加被乘数 4个位积一起相加乘积的位数扩大一倍×乘积的符号心算求得 ?2. 笔算乘法改进A • B = A • 0.1011= 0.1A + 0.00A + 0.001A +0.0001A= 0.1A + 0.00A + 0.001( A +0.1A)= 0.1A + 0.01[0 • A + 0. 1( A +0.1A)]= 0.1{A +0.1[ 0 • A+0.1(A + 0.1A)]}= 2-1{A +2-1[ 0 • A+2-1(A + 2-1(A+0))]}①②⑧第一步 被乘数A + 0第二步 1,得新的部分积第八步 1,得结果③第三步 部分积 + 被乘数…右移一位3. 改进后的笔算乘法过程(竖式)0 . 0 0 0 00 . 1 1 0 10 . 1 1 0 10 . 1 1 0 10 . 0 0 0 00 . 1 1 0 1初态,部分积 = 0乘数为 1,加被乘数乘数为 1,加被乘数乘数为 0,加 01 . 0 0 1 110 . 1 0 0 11 11 . 0 0 0 11 1 1乘数为 1,加 被乘数0 . 1 0 0 01 1 1 11,得结果1 0 1 1=0 . 0 1 1 01,形成新的部分积1 1 0 1=0 . 1 0 0 11,形成新的部分积1 1 1 0=0 . 0 1 0 01,形成新的部分积1 1 1 1= 部分积B7-B4 乘 数B3-B0 说 明A寄存器=1101 0000B寄存器=0000 1011积 存在B中AAA小结 被乘数只与部分积的高位相加 由乘数的末位决定被乘数是否与原部分积相加, 然后 1 形成新的部分积,同时 乘数 1(末 位移丢),空出高位存放部分积的低位。硬件2个寄存器 A:被乘数和高位积 B: 乘数和低位积1个移位寄存器1个全加器∑ 乘法 运算 加和移位。n = 4,加 4 次,移 4 次解:X=+0001111 [X]补=0,0001111 Y=+0011000 [Y]补=0,0011000 [-Y]补=1,1101000 [X-Y]补=[X]补+[-Y]补=1,1110111 X-Y=-0001001B=-9习题1:X=15、Y=24,列写用补码运算方法求X-Y的真值的过程。机器数字长8,含1位符号位。解:[X]补=0.1011 [Y]补=1.1011 [X+Y]补=[X]补+[Y]补=0.0110 X+Y=0.0110习题2:已知x = 0.1011 y =–0.0101 计算X+Y 解:[X]补=1.0101, [Y]补=0.0011[X+Y]补=[X]补+[Y]补=1.1000, X+Y=-0.1000=-0.5D习题3:已知x = -0.1011,y = 0.0011,计算X+Y真值。组合逻辑电路 Ki 不同取值 Fi 不同ALUAiBiFi…Ki算术逻辑单元ALU_29C101 P283ALU_74181 P281 关 键 词: 组成 ppt 原理 计算机 运算方法

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

关于本文

你可能感兴趣的:(计算机组成原理笔算乘法改进)