补码加减法运算(计算机组成原理)页
- 格式:pdf
- 大小:3.13 MB
- 文档页数:26
第二章运算方法和运算器练习一、填空题1. 补码加减法中,(符号位)作为数的一部分参加运算,(符号位产生的进位)要丢掉。
2. 为判断溢出,可采用双符号位补码,此时正数的符号用(00)表示,负数的符号用(11)表示。
3. 采用双符号位的方法进行溢出检测时,若运算结果中两个符号位(不相同),则表明发生了溢出。
若结果的符号位为(01),表示发生正溢出;若为(10),表示发生负溢出。
4. 采用单符号位进行溢出检测时,若加数与被加数符号相同,而运算结果的符号与操作数的符号(不一致),则表示溢出;当加数与被加数符号不同时,相加运算的结果(不会产生溢出)。
5. 利用数据的数值位最高位进位C和符号位进位Cf的状况来判断溢出,则其表达式为over=(C⊕Cf)。
6. 在减法运算中,正数减(负数)可能产生溢出,此时的溢出为(正)溢出;负数减(正数)可能产生溢出,此时的溢出为(负)溢出。
7. 补码一位乘法运算法则通过判断乘数最末位Yi和Yi-1的值决定下步操作,当YiYi-1=(10)时,执行部分积加【-x】补,再右移一位;当YiYi-1=(01)时,执行部分积加【x】补,再右移一位。
8. 浮点加减运算在(阶码运算溢出)情况下会发生溢出。
9. 原码一位乘法中,符号位与数值位(分开运算),运算结果的符号位等于(两操作数符号的异或值)。
10. 一个浮点数,当其补码尾数右移一位时,为使其值不变,阶码应该(加1)。
11. 左规的规则为:尾数(左移一位),阶码(减1)。
12. 右规的规则是:尾数(右移一位),阶码(加1)。
13. 影响进位加法器速度的关键因素是(进位信号的传递问题)。
14. 当运算结果的补码尾数部分不是(11.0×××××或00.1×××××)的形式时,则应进行规格化处理。
当尾数符号位为(01)或(10)时,需要右规。
第三章运算方法和运算器3.1补码的移位运算1、左移运算:各位依次左移,末位补0对于算术左移,若没有改变符号位,左移相当于乘以2。
2、右移运算:算术右移:符号位不变,各位(包括符号位)依次右移。
(相当于除以2)逻辑右移:最高位补0,其余各位依次右移例1:已知X=0.1011 ,Y=-0.0101 求 [0.5X]补;[0.25X]补;[-X]补;2[-X]补;[0.5Y]补;[0.25Y]补; [-Y]补;2[-Y]补[X]补=0.1011 [Y]补=1.1011[0.5X]补=0.01011 [0.5Y]补=1.11011[0.25X]补=0.001011 [0.25Y]补=1.111011[-X]补=1.0101 [-Y]补=0.01012[-X]补=0.1010 (溢出) 2[-Y]补=0.10103.2定点加减法运算及其实现3.2.1 补码加减法运算方法由于计算机中的进行定点数的加减运算大都是采用补码。
(1)公式:[X+Y]补=[X]补+[Y]补[X-Y]补=[X]补+[-Y]补(证明过程见教材P38)例1 X=0.001010 Y=-0.100011 求[X-Y]补,[X+Y]补解:[X]补=0.001010 [-Y]补=0.100011则 [X-Y]补=[X]补+[-Y]补=0.001010 + 0.100011=0.101101 [X]补=0.001010 [Y]补=1.011101则 [X+Y]补=[X]补+[Y]补=0.001010 + 1.011101=1.100111例2:已知X=+0.25,Y=-0.625,求X+Y; X-Y写出计算的过程.例3:已知X=25,Y=-9,求X+Y; X-Y写出计算的过程.例4:已知X=-25,Y=-9,求X+Y; X-Y写出计算的过程.解: (8位二进制表示)例2: X=0.0100000 Y=-0.1010000[X]补=0.0100000 [Y]补=1.0110000则 [X+Y]补=[X]补+[Y]补=0.0100000 + 1.0110000=1.1010000[X+Y]原=-0.0110000=(-0.375)D[X]补=0.0100000 ,[-Y]补=0.1010000则 [X-Y]补 = [X]补+[-Y]补 = 0.0100000+0.1010000=0.1110000[X+Y]原 = 0.1110000 =(0.875)D例3: X=+0011001 Y=-0001001[X]补=00011001,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 00011001 + 11110111= 00010000[X+Y]原 =+0010000=(+16)D[X]补= 00011001 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 00011001 + 00001001= 00100010[X+Y]原 = +0100010 =(34)D例4: X=-0011001 Y=-0001001[X]补=11100111,[Y]补=11110111则 [X+Y]补 = [X]补+[Y]补= 11100111 + 11110111[X+Y]原 =-00100010=(-34)D[X]补= 11100111 ,[-Y]补= 00001001则 [X-Y]补 = [X]补+[-Y]补= 11100111 + 00001001= 11110000[X+Y]原 = -0010000 =(-16)D3.2.2 定点加减法运算中的溢出问题溢出:运算结果大于机器所能表示的最大正数或者小于机器所能表示的最小负数.溢出只是针对带符号数的运算.比如:[X]补=0.1010,[Y]补=0.1001,那么[X]补+[Y]补=1.0011(溢出)溢出是一种错误,计算机中运算时必须能够发现这个现象,并加以处理判断溢出的方法:1、采用变形补码法[X+Y] 变补=[X] 变补+[Y] 变补[X-Y] 变补=[X] 变补+[-Y] 变补例1 X=0.1011 Y=0.0011 求[X+Y]补解: [X]变补 = 00.1011, [Y]变补 = 00.0011[X+Y]变补 = 00.1011 + 00.0011 = 00.1110所以 [X+Y]补 = 0.1110例2 X=0.1011 Y=0.1001 求[X+Y]补解: [X]变补 = 00.1011 [Y]变补 = 00.1001[X+Y]变补 = 00.1011 + 00.1001 = 01.0100运算结果的两符号位是01,不相同,发生溢出,因第一符号位是0,代表正数,所以称这种溢出为“正溢出”。
计算机科学与技术学院计算机组成原理实验报告书实验名称八位补码加/减法器的设计与实现班级学号姓名指导教师日期成绩实验1八位补码加/减法器的设计与实现一、实验目的1.掌握算术逻辑运算单元(ALU)的工作原理。
2.熟悉简单运算器的数据传送通路。
3.掌握8位补码加/减法运算器的设计方法。
4.掌握运算器电路的仿真测试方法二、实验任务1.设计一个8位补码加/减法运算器(1)参考图1,在QUARTUS II里输入原理图,设计一个8位补码加/减法运算器。
(2)创建波形文件,对该8位补码加/减法运算器进行功能仿真测试。
(3)测试通过后,封装成一个芯片。
2.设计8位运算器通路电路参考下图,利用实验任务1设计的8位补码加/减法运算器芯片建立运算器通路。
3.利用仿真波形,测试数据通路的正确性。
设定各控制信号的状态,完成下列操作,要求记录各控制信号的值及时序关系。
(1)在输入数据IN7~IN0上输入数据后,开启输入缓冲三态门,检查总线BUS7~BUS0上的值与IN0~IN7端输入的数据是否一致。
(2)给DR1存入55H,检查数据是否存入,请说明检查方法。
(3)给DR2存入AAH,检查数据是否存入,请说明检查方法。
(4)完成加法运算,求55H+AAH,检查运算结果是否正确,请说明检查方法。
(5)完成减法运算,分别求55H-AAH和AAH-55H,检查运算结果是否正确,请说明检查方法。
(6)求12H+34H-56H,将结果存入寄存器R0,检查运算结果是否正确,同时检查数据是否存入,请说明检查方法。
三、实验要求(1)做好实验预习,掌握运算器的数据传送通路和ALU的功能特性。
(2)实验完毕,写出实验报告,内容如下:①实验目的。
②实验电路图。
③按实验任务3的要求,填写下表,以记录各控制信号的值及时序关系。
表中的序号表示各控制信号之间的时序关系。
要求一个控制任务填一张表,并可用文字对有关内容进行说明。
⑤实验体会与小结。
四、实验预习内容1.实验电路设计原理及思路说明本实验利用基本逻辑门电路设计一位全加器(FA),如表1:表1-一位全加器(FA)电路的输入输出信号说明然后以此基础上实现八位补码加/减法器的设计,考虑到实现所需既可以实现加法又可以实现减法,所以使用了一个M输入来进行方式控制加减。
1、浮点数:尾数*2阶码步骤:①把十进制转化成二进制,写成如上形式②把尾数和阶码求补码(阶码还可以求移码)③写成浮点数的表示格式:⑴阶码+尾数(数符+尾数值)⑵数符+阶码+尾数值④注意规格化2补码①正数:补码=原码②负数:补码=除符号位,其他数全部取反,末位加12、[-x]补=[x]补包括符号位全部取反,末位加13、移码=补码的符号位取反4、补码一位乘法①y n=y n+1,只右移一位部分积②y n=0,加[x]补,再右移一位;y n=1,加[-x],再右移一位。
补5、海明码:步骤①根据题目中收端的N=k+r≤2r—1(N为校验码位数)②按位置标出Pi和Bi③分别求出Pi的值④写入海明码数中。
纠错①计算Gi,得出的二进制数转化为十进制数,G1G2G3=000表示无错②等于几就是第几个数字错③将错的数字取反@表示异或㈠11位校验码中,P1=b1@b2@b4@b5@b7;P2=b1@b3@b4@b7;P3=b2@b3@b4;P4=b5@b6@b7㈡纠错中,G1=P1@b1@b2@b4@b5@b7;G2=P2@b1@b3@b4@b7;G3=P3@b2@b3@b4;G4=P4@b5@b6@b76、高速缓存的基本原理①CPU与cache之间的数据交换是以字为单位,而cache与主存之间的数据交换是以块为单位。
一个块由若干定长字组成的。
②当CPU读取主存中一个字时,便发出此字的内存地址到cache和主存。
此时cache控制逻辑依据地址判断此字当前是否在cache中:若是,此字立即传送给CPU;若非,则用主存读周期把此字从主存读出送到CPU,与此同时,把含有这个字的整个数据块从主存读出送到cache中。
步骤:①把十进制转化成二进制,写成如上形式②把尾数和阶码求补码(阶码还可以求移码)③写成浮点数的表示格式:⑴阶码+尾数(数符+尾数值)⑵数符+阶码+尾数值④注意规格化2补码①正数:补码=原码②负数:补码=除符号位,其他数全部取反,末位加16、[-x]补=[x]补包括符号位全部取反,末位加17、移码=补码的符号位取反8、补码一位乘法①y n=y n+1,只右移一位部分积②y n=0,加[x]补,再右移一位;y n=1,加[-x],再右移一位。
计算机组成原理-定点整数的原码补码运算(待验证)计算机组成原理 - 定点整数的原码补码运算(待验证)⽬录〇、环境对象运算定点整数原码、定点整数补码移位、加、减、乘、除原码定义:x =x0≤x <2n 2n −x −2n <x ≤0其中,n 为x 的位数,最终原码有n+1位。
定义分析:当真值为正时,原码即为真值的⼆进制形式,但是在⼆进制最⾼位添加⼀个0作为符号位(定义没有体现)。
当真值为负时,去掉原码⼆进制形式的负号,在⼆进制最⾼位添加⼀个1作为符号位。
伸展和收缩:由定义分析可知,x 宽度变化时,⾮符号部分添加或移除⾼位0(也即整数的⼆进制形式调整宽度),符号部分不变。
在形式上,⽆论正负,都是在最⾼位新增或移除0。
例0-1 求11b 的8位原码表⽰解:为011,扩展到8位为0000 0011。
例0-2 求−11b 的8位原码表⽰解:100-(-11)=111,扩展到8位为0000 0111。
补码定义:x =x0≤x <2n 2n +1+x −2n ≤x <0其中n 为x 的位数,最终有n+1位(去掉⼀定为0的最⾼位)。
定义分析:当真值为正时,保留真值的⼆进制形式,并在最⾼位添加⼀个0作为符号位。
当真值为负时,则与10...0(共n+2位)相加,联系反码的特点,即将真值负号移除后每位取反,然后加1,然后最⾼位添加1作为符号位。
伸展与收缩:由定义分析,当真值为正时,则和原码⼀致,添加0即可。
当为负时,扩展添0,取反后则为添1,加1时不会影响扩展位(因为负值的⼆进制形式必不全为0),最后保持符号位不变。
形式上,正值在最⾼位添加和删除0,负值扩在最⾼位添加和删除1。
例0-3 求11的8位补码表⽰解:为011,扩展到8位为0000 0011。
例0-4 求-11的8位补码表⽰解:为1000-11=0101,即101,扩展到8位为1111 1101。
还可以利⽤性质来求:^11=00,00+1=01,添加符号位即101。
题目:1.某机字长16位,采用定点小数表示,符号位为1位,尾数为15位,则可表示的最大正小数为,最小负小数为。
选项A:+(216-1),-(1-2-15)选项B:+(215-1),-(1-2-16)选项C:+(1-2-15),-(1-2-15)选项D:+(215-1),-(1-2-15)答案:+(1-2-15),-(1-2-15)题目:2.定点数补码加法具有两个特点:一是符号位;二是相加后最高位上的进位要舍去。
选项A:与数值位分别进行运算选项B:与数值位一起参与运算选项C:要舍去选项D:表示溢出答案:与数值位一起参与运算题目:3.长度相同但格式不同的2种浮点数,假设前者阶码长、尾数短,后者阶码短、尾数长,其他规定均相同,则它们可表示的数的范围和精度为。
选项A:两者可表示的数的范围和精度相同选项B:前者可表示的数的范围大但精度低选项C:后者可表示的数的范围大且精度高选项D:前者可表示的数的范围大且精度高答案:前者可表示的数的范围大但精度低题目:4.在定点二进制运算器中,减法运算一般通过来实现。
选项A:原码运算的二进制减法器选项B:补码运算的二进制减法器选项C:补码运算的十进制加法器选项D:补码运算的二进制加法器答案:补码运算的二进制加法器题目:5.间接寻址是指。
选项A:指令中直接给出操作数地址选项B:指令中直接给出操作数选项C:指令中间接给出操作数选项D:指令中间接给出操作数地址答案:指令中间接给出操作数地址题目:6.输入输出指令的功能是。
选项A:进行算术运算和逻辑运算选项B:进行主存与CPU之间的数据传送选项C:进行CPU和I/O设备之间的数据传送选项D:改变程序执行的顺序答案:进行CPU和I/O设备之间的数据传送题目:7.指令周期是指。
选项A:CPU从主存取出一条指令的时间选项B:CPU执行一条指令的时间选项C:CPU从主存取出一条指令加上执行这条指令的时间选项D:时钟周期时间答案:CPU从主存取出一条指令加上执行这条指令的时间题目:8.在控制器中,必须有一个部件,能提供指令在内存中的地址,服务于读取指令,并接收下条将被执行的指令的地址,这个部件是。