算术逻辑运算部件

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3.1.2 溢出判断与移位

负数补码
左移一位 左移一位 右移一位 右移一位 1.0110 10.1100 1.1011 11.0110
左移: 1.1011 11.0110 右移: 1.0110 10.1100
3.1.2 溢出判断与移位
三. 舍入 • 舍入的原则
使本次舍入产生的误差及累计误差都比较小
3.1.3 定点乘法运算

手算到机器实现要解决的问题
解决方法:原码乘法符号单独处理,补码乘法符 号参与运算
1、符号问题
2、乘积等于各位积之和(要考虑权) “位积”是乘数的某位乘以被乘数所得到的积。 “部分积”是位积的和。
1)n位乘法运算就有n个位积,要n个寄存器来存放位积; 2)加法器难以完成n个位积的同时求和; 3)需要2n位字长的加法器,通常的加法器都是n位字长。
3.1.1 定点加减运算
补码加减法:


补码的一个重要特点是它可以直接进行加 减法运算,并且计算简单,因此计算机中 基本采用补码加减法。 运算规则:
(1)参与运算的操作数用补码表示,符号位作为数 的一部分直接参与运算,所得即为补码表示的运 算结果。 (2)若操作码为加,则两数直接相加; (3)若操作码为减,则将减数变补后再与被减数相 加。
10 —结果负溢
11—结果为负,无溢出
3.1.2 溢出判断与移位
二. 移位

逻辑移位
(1) 数字代码为纯逻辑代码,没有数值 意义 (2)分为:循环左移、循环右移、非循环 左移、非循环右移
3.1.2 溢出判断与移位

算术移位
1、原码(及正数补码)移位规则:数符不 变,空位补0 2、负数补码移位规则: 左移:数符不变,空位即末位补0 右移:数符不变,空位补1
3.1.2 溢出判断与移位
3. 例:

原码和正数补码 0.0101 左移一位 0.1010 1.0101 左移一位 1.1010 00.1010 左移一位 01.0100 (*双符号位时可左移1位,第二符号位暂存数值,第 一符号位仍表示符号) 1.1010 右移一位 1.0101 01.0100 右移一位 00.1010 (* 双符号位时右移1位,第二符号位暂存的数值移到 最高有效位。)
解决方法:n次累加与移位循环或阵列乘法器
3.1.3 定点乘法运算
0.1101 (0.1011 )?
0.1 1 0 1 0.1 0 1 1

手算的改进(将一次相加改为分步累加)
1101 01101 + 1101 100111 100111 + 0000 100111 0100111 + 1101 10001111 10001111
3.1.2 溢出判断与移位
正溢:两个正数相加后结果超出允许的 表示范围。 如: P100 例3-3 负溢:两个负数相加后结果超出允许的 表示范围。 如: P100 例3-5

3.1.2 溢出判断与移位
溢出判别 定义:两操作数的数符分别为SA、SB,结 果的数符为Sf。符号位直接参与运算, 产生的符号位进位为Cf。最高有效数位 产生的进位为C。 1.判别方法一: 溢出=S A S B S f S A S B S f
第三章 CPU子系统

中央处理器(CPU)是计算机系统 的核心组成部件,它包括运算器和控 制器两大部分。
CPU组成
运算器 控制器 数据通路结构 与外部的连接 指令的执行过程
本章主要讨论:
CPU工作原理
3.1 算术、逻辑运算基础
计算机进行运算的特点:
(1)所有数据都是用二进制数位形式来表示的。 (2)在机器内部,数是以编码形式即机器数来表示 的。 (3)机器运算规模有限,因而机器运算就要解决运 算方法、数据表示格式及数据长度的选取、规定 等问题。 (4)用计算机进行运算时,都要把复杂的运算,简 化为一系列的、最基本的运算才能实现。计算机 可以实现的基本运算有算术运算(加、减、乘、除 等)和逻辑运算(与、或、异或等)。
3.1.1 定点加减运算
计算公式 [X+Y]补=[X]补+[Y]补 [X-Y]补=[X]补+[-Y]补 例1

已知X=9,Y=3,求[X+Y]补, [X-Y]补, [Y-X]补。
解: [X+Y]补= [X]补+[Y]补 =01001+00011=01100 [X-Y]补=[X]补+[-Y]补 =01001+11101=100110 [Y-X]补=[Y]补+[-X]补 =00011+10111=11010
• 两种舍入规则
1、 0 舍 1入 2、末位“恒置1”
例: 课本P103 例3-8 ~ 例3-11
3.1.3 定点乘法运算

手算例子: 0.1101 (0.1011 )?
0.1 1 0 1 0.1 0 1 1
1101 1101 0000 1101 0.10001111
(0.1011 ) 0.10001111 由于结果为负,所以 0.1101
3.1.3.1 原码一位乘法
一. 基本思想:
1. 2. 3. 乘积的数值部分是乘数和被乘数的数值部分相乘之积。 乘积的符号由两数的符号异或得到(同号相乘为正, 异号相乘为负)。 每次用一位乘数去乘被乘数,并将一位乘数所对应的 位积与原部分积的累加和相加,并移位。
3.1.1 定点加减运算

例2
X=0.001010 Y=-0.100011 求[X-Y]补

[X]补=0.001010 [-Y]补=0.100011 则 [X-Y]补 = [X]补+[-Y]补 = 0.001010 + 0.100011 = 0.101101
3.1.2 溢出判断与移位
一.溢出
机器数字长5位,其中含1位数符,补码 运算,问:定点整数表示范围? -16 ~ +15 (10000 ~ 01111) 所谓溢出就是指运算结果大于机器所能 表示的最大正数或小于机器所能表示的 最小负数。

Leabharlann Baidu
•只有同号数相加才能产生溢出,溢出的标志是结果数符与操 作数数符相反
3.1.2 溢出判断与移位
2.判别方法二:
溢出= C f C
(Cf为符号位运算产生的进位,C为最高有效数位产生的进位。)
3.判别方法三:
• Cf 和C不同时表明溢出
操作数采用双符号位(变形补码),通过运算结果 的符号位进行判断:(P101) 00 — 结果为正,无溢出 01— 结果正溢
相关文档
最新文档