根据两数相加时产生的进位判别溢出:OVR=Cf⊕C1③ 根据变形补码运算后的符号判别溢出:sf1sf2=00,表示结果为正数,无溢出;sf1sf2=11,表示结果为负数,无溢出;sf1sf2=01,表示结果为正溢出;sf1sf2=10,表示结果为负溢出。⑵ 浮点补码加减运算的溢出判断方法浮点补码加减运算的溢出通常是指浮点数上溢,浮点数是否溢出是由阶码是否大于浮点数所能表示的最大正阶来判断的。例如,设浮点数的阶码采用补码表示,双符号位,这时浮点数的溢出与否可由阶码的符号进行判断:若阶码 [j]补=01 ××…×,则表示出现上溢,需作溢出处理;符号若阶码 [j]补=10 ××…×,则表示出现下溢,按机器零处理。3.12 说明定点原码[1]除法和定点补码除法运算的溢出判断方法。答:定点原码不恢复余数除法的溢出算法为:因为在定点小数运算时,若|被除数|>|除数|,则除法将发生溢出,不能进行除法运算。因此,如果在第一次上商时得到的商为“1”,则表示除法发生溢出。定点补码不恢复余数除法的溢出算法为:当被除数[x]补与除数[y]补同号时,如果余数[r]补与[y]补同号,且上商为“1”,则表示商溢出。当被除数[x]补与除数[y]补异号时,如果余数[r]补与[y]补异号,且上商为“0”,则表示商溢出。3.13 比较舍入方法中截断法、恒置“1”法和0舍1入法的优缺点。答:⑴ 截断法(恒舍法)截断法是:将右移移出的值一律舍去,余下的不作任何改变。该方法简单,精度较低。⑵ 0舍1入法0舍1入法的方法是:若右移时被丢掉数位的最高位为0,则舍去;若右移时被丢掉数位的最高位为1,则将1加到保留的尾数的最低位。“0舍1入”法类似于十进制[2]数的“四舍五入”。其主要优点是单次舍入引起的误差小,精度较高;其缺点是加1时需多做一次运算,而且可能造成尾数溢出,需要再次右规。⑶ 末位恒置1法末位恒置1法也称冯·诺依曼舍入法。其方法是:尾数右移时,无论被丢掉的数位的最高位为0还是为1,都将保留的尾数的最低位恒置为1。末位恒置1法的主要优点是舍入处理不用做加法运算,方法简单、速度快且不会有再次右规的可能,并且没有积累误差,是常用的舍入方法。其缺点是单次舍入引起的误差较大。3.14 利用用十进制加减运算算法计算下列各题:(1) 125+436=? (2) 125-436=? (3) 436-125=?解: (1) 125+436=561(2) 125-436=-311(3) 436-125=3113.15 参照第二章表2-12给出的余3码的编码规则,设计利用余3码进行十进制加法的修正逻辑。答:余3码的编码规则:十进制数余3码0011101002010130110401115100061001710108101191100余3码十进制加法器[3]运算结果的修正关系十进制数用余3码表示的十进制和数 F4F3F2F1两个余3码按二进制[4]规则相加得到的和数C4 S4S3S2S1修正逻辑0 00110 0110加“1101”修正“-3”10 01000 011120 01010 100030 01100 100140 01110 101050 10000 101160 10010 110070 10100 110180 10110 111090 11000 1111101 00111 0000加“0011”修正“+3”111 01001 0001121 01011 0010131 01101 0011141 01111 0100151 10001 0101161 10011 0110171 10101 0111181 10111 1000191 11001 10013.16 设有一个16位定点补码运算器[5],数据最低位的序号为1。运算器可实现下述功能:(1) A±B→A(2) B×C→A、C(乘积高位在A中)(3) A÷B→C(商在C中)请设计并画出运算器第3位及A、C寄存器[6]第三位输入逻辑。加法器本身逻辑可以不画,原始操作数[7]输入问题可以不考虑。解:见附页3.19 设一个8位寄存器中的内容为十六进制[8]数C5H,连续经过一次算术右移、一次逻辑左移、一次大循环右移、一次小循环左移。写出每次移位后寄存器的内容和进位标志C的状态。解:C5H=C 寄存器一次算术右移: 1一次逻辑左移: 1一次大循环右移: 0一次小循环左移: 13.20 已知寄存器A的内容为01011010,寄存器B的内容为,分别写出经过下列移位操作后,寄存器A、B中的内容。(1)算术左移两位。(2)逻辑左移两位。(3)算术右移两位。(4)逻辑右移两位。解:寄存器A的内容为01011010 寄存器B的内容为c c(1)算术左移两位 1 01101000 (1)算术左移两位。 1 01101100 移位溢出(2)逻辑左移两位。 1 01101000 (2)逻辑左移两位。 1 01101100(3)算术右移两位。 1 00010110 (3)算术右移两位。 1(4)逻辑右移两位。 1 00010110 (4)逻辑右移两位。 1 001101103.21 选择题(1) 运算器的核心部分是 C 。A. 数据总线[9] B. 累加寄存器[10] C. 算术逻辑运算单元 D. 多路开关 C. 。 D. 对阶时应采用向左规格化[11] E. 对阶时可以使小阶向大阶对齐,也可以使大阶向小阶对齐 F. 尾数相加后可能会出现溢出,但可采用向右规格化的方法得出正确结论 G. 尾数相加后不可能得出规格化的数。无溢出 B. 正溢出 C. 负溢出 D. 不能判别是否溢出。操作数用补码表示,符号位单独处理操作数用补码表示,连同符号位一起相加操作数用补码表示,将加数变补,然后相加操作数用补码表示,将被加数变补,然后相加。操作数必须都是正数操作数必须具有相同的符号位对操作数符号没有限制以上都不对。首先在乘数最末位yn后增设附加位yn+1,且初始yn+1=0,再依照ynyn+1的值确定下面的运算。首先在乘数最末位yn后增设附加位yn+1,且初始yn+1=1,再依照ynyn+1的值确定下面的运算。首先观察乘数符号位,然后决定乘数最末位yn后附加位yn+1的值,再依照ynyn+1的值确定下面的运算。不应在乘数最末位yn后增设附加位yn+1,而应直接观察乘数的末两位yn-1yn确定下面的运算。。浮点运算器由阶码部件和尾数部件实现。阶码部件可实现加、减、乘、除四种运算。阶码部件只能进行阶码的移位操作。尾数部件只能进行乘法和加法运算。。阶符与数符相同为规格化数。阶符与数符相异为规格化数。数符与尾数小数点后第一位数字相异为规格化数。数符与尾数小数点后第一位数字相同为规格化数。[x]补=1.01010,[y]补=1.10001,下列答案正确的是 D 。[x]补+[y]补=1.11011[x]补+[y]补=0.11011[x]补-[y]补=0.11011 D. [x]补-[y]补=1.11001。定点补码运算时,其符号位不参加运算。浮点运算中,尾数部分只进行乘法和除法运算。浮点数的正负由阶码的正负符号决定。在定点小数一位除法中,为了避免溢出,被除数的绝对值一定要小于除数的绝对值。3.22 填空题(1) 在补码加减运算中,符号位与数据 ① 参加运算,符号位产生的进位 ② 。答:① 按同样规则一起 ② 自动丢失(2) 在采用变形补码进行加减运算时,若运算结果中两个符号位 ① ,表示发生了溢出。若结果的两个符号位为 ② ,表示发生正溢出;为 ③ ,表示发生负溢出。答:① -55 ② ③ +73 ④ 01001001(3) 在原码一位乘法的运算过程中,符号位与数值位 ① 参加运算,运算结果的符号位等于 ② 。答:① 分别 ② 两操作数的符号的模2加(异或)(4) 浮点乘除法运算的运算步骤包括: ① 、 ② 、 ③ 、 ④ 和 ⑤ 。答:① 阶码运算 ② 溢出判断 ③ 尾数乘除运算 ④ 结果规格化处理 ⑤ 舍入处理(5) 在浮点运算过程中,如果运算结果的尾数部分不是 ① 形式,则需要进行规格化处理。设尾数采用补码表示形式,当运算结果 ② 时,需要进行右规操作;当运算结果 ③ 时,需要进行左规操作。答:① 规格化 ② 溢出 ③ 不是规格化数CD码相加,为了得到正确的十进制运算结果,需要对结果进行修正,其修正方法是 ① 。答:① 两个8421码相加后,若相加的和数<10,则不需修正,按二进制规则相加的结果就是正确的8421码的和数;若相加的和数≥10,则需在二进制相加的结果上加“0110”进行修正。(7) 浮点运算器由 ① 和 ② 两部分组成,它们本身都是定点运算器,其中①要求能够进行 ③ 运算;②要求能够进行 ④ 运算。答:① 阶码部件 ② 尾数部件 ③ 加减 ④ 加减乘除H和AL组成的寄存器AX中,其中数据的高8位存放在AH寄存器中,低8位存放在AL寄存器中。现需要将AX中的数据进行一次算术左移,其操作方法是:先对 ① 进行一次 ② 操作,再对 ③ 进行一次 ④ 操作。L ② 算术左移 ③ AH ④ 带进位循环左移3.23 是非题(1)运算器的主要功能是进行加法运算。 ×(2)加法器是构成运算器的主要部件,为了提高运算速度,运算器中通常都采用并行加法器[12]。 √(3)在定点整数除法中,为了避免运算结果的溢出,要求|被除数|<|除数|。 √(4)浮点运算器中的阶码部件可实现加、减、乘、除运算。 ×(5)根据数据的传递过程和运算控制过程来看,阵列乘法器[13]实现的是全并行运算。 √(6)逻辑右移执行的操作是进位标志位移入符号位,其余数据位依次右移1位,最低位移入进位标志位。×
根据两数相加时产生的进位判别溢出:OVR=Cf⊕C1
③ 根据变形补码运算后的符号判别溢出:
sf1sf2=00,表示结果为正数,无溢出;
sf1sf2=11,表示结果为负数,无溢出;
sf1sf2=01,表示结果为正溢出;
sf1sf2=10,表示结果为负溢出。
⑵ 浮点补码加减运算的溢出判断方法
浮点补码加减运算的溢出通常是指浮点数上溢,浮点数是否溢出是由阶码是否大于浮点数所能表示的最大正阶来判断的。
例如,设浮点数的阶码采用补码表示,双符号位,这时浮点数的溢出与否可由阶码的符号进行判断:
若阶码 [j]补=01 ××…×,则表示出现上溢,需作溢出处理;
符号
若阶码 [j]补=10 ××…×,则表示出现下溢,按机器零处理。
3.12 说明定点原码[1]除法和定点补码除法运算的溢出判断方法。
答:定点原码不恢复余数除法的溢出算法为:
因为在定点小数运算时,若|被除数|>|除数|,则除法将发生溢出,不能进行除法运算。因此,如果在第一次上商时得到的商为“1”,则表示除法发生溢出。
定点补码不恢复余数除法的溢出算法为:
当被除数[x]补与除数[y]补同号时,如果余数[r]补与[y]补同号,且上商为“1”,则表示商溢出。当被除数[x]补与除数[y]补异号时,如果余数[r]补与[y]补异号,且上商为“0”,则表示商溢出。
3.13 比较舍入方法中截断法、恒置“1”法和0舍1入法的优缺点。
答:⑴ 截断法(恒舍法)
截断法是:将右移移出的值一律舍去,余下的不作任何改变。该方法简单,精度较低。
⑵ 0舍1入法
0舍1入法的方法是:若右移时被丢掉数位的最高位为0,则舍去;若右移时被丢掉数位的最高位为1,则将1加到保留的尾数的最低位。
“0舍1入”法类似于十进制[2]数的“四舍五入”。其主要优点是单次舍入引起的误差小,精度较高;其缺点是加1时需多做一次运算,而且可能造成尾数溢出,需要再次右规。
⑶ 末位恒置1法
末位恒置1法也称冯·诺依曼舍入法。其方法是:尾数右移时,无论被丢掉的数位的最高位为0还是为1,都将保留的尾数的最低位恒置为1。
末位恒置1法的主要优点是舍入处理不用做加法运算,方法简单、速度快且不会有再次右规的可能,并且没有积累误差,是常用的舍入方法。其缺点是单次舍入引起的误差较大。
3.14 利用用十进制加减运算算法计算下列各题:
(1) 125+436=? (2) 125-436=? (3) 436-125=?
解: (1) 125+436=561
(2) 125-436=-311
(3) 436-125=311
3.15 参照第二章表2-12给出的余3码的编码规则,设计利用余3码进行十进制加法的修正逻辑。
答:余3码的编码规则:
十进制数
余3码
0011
1
0100
2
0101
3
0110
4
0111
5
1000
6
1001
7
1010
8
1011
9
1100
余3码十进制加法器[3]运算结果的修正关系
十进制数
用余3码表示的
十进制和数
F4F3F2F1
两个余3码按二进制[4]规则相加得到的和数
C4 S4S3S2S1
修正逻辑
0 0011
0 0110
加
“1101”
修
正
“-3”
1
0 0100
0 0111
2
0 0101
0 1000
3
0 0110
0 1001
4
0 0111
0 1010
5
0 1000
0 1011
6
0 1001
0 1100
7
0 1010
0 1101
8
0 1011
0 1110
9
0 1100
0 1111
10
1 0011
1 0000
加
“0011”
修
正
“+3”
11
1 0100
1 0001
12
1 0101
1 0010
13
1 0110
1 0011
14
1 0111
1 0100
15
1 1000
1 0101
16
1 1001
1 0110
17
1 1010
1 0111
18
1 1011
1 1000
19
1 1100
1 1001
3.16 设有一个16位定点补码运算器[5],数据最低位的序号为1。运算器可实现下述功能:
(1) A±B→A
(2) B×C→A、C(乘积高位在A中)
(3) A÷B→C(商在C中)
请设计并画出运算器第3位及A、C寄存器[6]第三位输入逻辑。加法器本身逻辑可以不画,原始操作数[7]输入问题可以不考虑。
解:见附页
3.19 设一个8位寄存器中的内容为十六进制[8]数C5H,连续经过一次算术右移、一次逻辑左移、一次大循环右移、一次小循环左移。写出每次移位后寄存器的内容和进位标志C的状态。
解:C5H=
C 寄存器
一次算术右移: 1
一次逻辑左移: 1
一次大循环右移: 0
一次小循环左移: 1
3.20 已知寄存器A的内容为01011010,寄存器B的内容为,分别写出经过下列移位操作后,寄存器A、B中的内容。
(1)算术左移两位。
(2)逻辑左移两位。
(3)算术右移两位。
(4)逻辑右移两位。
解:寄存器A的内容为01011010 寄存器B的内容为
c c
(1)算术左移两位 1 01101000 (1)算术左移两位。 1 01101100 移位溢出
(2)逻辑左移两位。 1 01101000 (2)逻辑左移两位。 1 01101100
(3)算术右移两位。 1 00010110 (3)算术右移两位。 1
(4)逻辑右移两位。 1 00010110 (4)逻辑右移两位。 1 00110110
3.21 选择题
(1) 运算器的核心部分是 C 。
A. 数据总线[9]B. 累加寄存器[10] C. 算术逻辑运算单元 D. 多路开关
C. 。
D. 对阶时应采用向左规格化[11]
E. 对阶时可以使小阶向大阶对齐,也可以使大阶向小阶对齐
F. 尾数相加后可能会出现溢出,但可采用向右规格化的方法得出正确结论
G. 尾数相加后不可能得出规格化的数
。
无溢出 B. 正溢出 C. 负溢出 D. 不能判别是否溢出
。
操作数用补码表示,符号位单独处理
操作数用补码表示,连同符号位一起相加
操作数用补码表示,将加数变补,然后相加
操作数用补码表示,将被加数变补,然后相加
。
操作数必须都是正数
操作数必须具有相同的符号位
对操作数符号没有限制
以上都不对
。
首先在乘数最末位yn后增设附加位yn+1,且初始yn+1=0,再依照ynyn+1的值确定下面的运算。
首先在乘数最末位yn后增设附加位yn+1,且初始yn+1=1,再依照ynyn+1的值确定下面的运算。
首先观察乘数符号位,然后决定乘数最末位yn后附加位yn+1的值,再依照ynyn+1的值确定下面的运算。
不应在乘数最末位yn后增设附加位yn+1,而应直接观察乘数的末两位yn-1yn确定下面的运算。
。
浮点运算器由阶码部件和尾数部件实现。
阶码部件可实现加、减、乘、除四种运算。
阶码部件只能进行阶码的移位操作。
尾数部件只能进行乘法和加法运算。
。
阶符与数符相同为规格化数。
阶符与数符相异为规格化数。
数符与尾数小数点后第一位数字相异为规格化数。
数符与尾数小数点后第一位数字相同为规格化数。
[x]补=1.01010,[y]补=1.10001,下列答案正确的是 D 。
[x]补+[y]补=1.11011
[x]补+[y]补=0.11011
[x]补-[y]补=0.11011 D. [x]补-[y]补=1.11001
。
定点补码运算时,其符号位不参加运算。
浮点运算中,尾数部分只进行乘法和除法运算。
浮点数的正负由阶码的正负符号决定。
在定点小数一位除法中,为了避免溢出,被除数的绝对值一定要小于除数的绝对值。
3.22 填空题
(1) 在补码加减运算中,符号位与数据 ① 参加运算,符号位产生的进位 ② 。
答:① 按同样规则一起 ② 自动丢失
(2) 在采用变形补码进行加减运算时,若运算结果中两个符号位 ① ,表示发生了溢出。若结果的两个符号位为 ② ,表示发生正溢出;为 ③ ,表示发生负溢出。
答:① -55 ② ③ +73 ④ 01001001
(3) 在原码一位乘法的运算过程中,符号位与数值位 ① 参加运算,运算结果的符号位等于 ② 。
答:① 分别 ② 两操作数的符号的模2加(异或)
(4) 浮点乘除法运算的运算步骤包括: ① 、 ② 、 ③ 、 ④ 和 ⑤ 。
答:① 阶码运算 ② 溢出判断 ③ 尾数乘除运算 ④ 结果规格化处理 ⑤ 舍入处理
(5) 在浮点运算过程中,如果运算结果的尾数部分不是 ① 形式,则需要进行规格化处理。设尾数采用补码表示形式,当运算结果 ② 时,需要进行右规操作;当运算结果 ③ 时,需要进行左规操作。
答:① 规格化 ② 溢出 ③ 不是规格化数
CD码相加,为了得到正确的十进制运算结果,需要对结果进行修正,其修正方法是 ① 。
答:① 两个8421码相加后,若相加的和数<10,则不需修正,按二进制规则相加的结果就是正确的8421码的和数;若相加的和数≥10,则需在二进制相加的结果上加“0110”进行修正。
(7) 浮点运算器由 ① 和 ② 两部分组成,它们本身都是定点运算器,其中①要求能够进行 ③ 运算;②要求能够进行 ④ 运算。
答:① 阶码部件 ② 尾数部件 ③ 加减 ④ 加减乘除
H和AL组成的寄存器AX中,其中数据的高8位存放在AH寄存器中,低8位存放在AL寄存器中。现需要将AX中的数据进行一次算术左移,其操作方法是:先对 ① 进行一次 ② 操作,再对 ③ 进行一次 ④ 操作。
L ② 算术左移 ③ AH ④ 带进位循环左移
3.23 是非题
(1)运算器的主要功能是进行加法运算。 ×
(2)加法器是构成运算器的主要部件,为了提高运算速度,运算器中通常都采用并行加法器[12]。 √
(3)在定点整数除法中,为了避免运算结果的溢出,要求|被除数|<|除数|。 √
(4)浮点运算器中的阶码部件可实现加、减、乘、除运算。 ×
(5)根据数据的传递过程和运算控制过程来看,阵列乘法器[13]实现的是全并行运算。 √
(6)逻辑右移执行的操作是进位标志位移入符号位,其余数据位依次右移1位,最低位移入进位标志位。×
题目解答
答案
C B B C A A C D D ① 按同样规则一起 ② 自动丢失 ① -55 ② ③ +73 ④ 0 1001001 ① 分别 ② 两操作数的符号的模2加(异或) ① 阶码运算 ② 溢出判断 ③ 尾数乘除运算 ④ 结果规格化处理 ⑤ 舍入处理 ① 规格化 ② 溢出 ③ 不是规格化数 ① 两个8421码相加后, 若相加的和数<10,则不需修正,按二进制规则相加的结果就是正确的8421码的和数;若相加的和数≥10,则需在二进制相加的结果上加“0110”进行修正。 ① 阶码部件 ② 尾数部件 ③ 加减 ④ 加减乘除 ① AL ② 算术左移 ③ AH ④ 带进位循环左移 × √ √ × √ ×