计算机组织与系统结构第三章知识题目解析
- 格式:doc
- 大小:266.42 KB
- 文档页数:17
第3章 部分习题参考答案3.2 (题目略)【解】overlap o i cpu T T T T -+=/,其中T overlap 的最大值为T cup 。
由题意可得当CPU 速度提高4倍后,T =30/4+20-30/4=20(s)。
(注:T overlap 为CPU 和I/O 重叠执行的时间)3.7 (题目略)【解】(1)处理机响应各中断源的中断请求的先后次序与它们的中断优先级一样:D 1D 2D 3D 4D 5;实际的中断处理次序为:D 1D 2D 3D 4D 5。
(2)处理机响应各中断源的中断请求的先后次序与它们的中断优先级一样:D 1D 2D 3D 4D 5;实际的中断处理次序为: D 4D 5 D 3 D 2D 1。
(3)处理机响应各中断源的中断服务请求和实际运行中断服务程序过程的示意图如下:(4)处理机响应各中断源的中断服务请求和实际运行中断服务程序过程的示意图如下:3.9 (题目略)【解】字节多路通道适用于连接大量像光电机等字符类低速设备。
这些设备传送一个字中断请求D 3,D 4,D 5时间tD 1, D 2 中断请求主程序中断服务程序 D 1,D 2,D 3,D 4,D 5 时间t符(字节)的时间很短,但字符(字节)间的等待时间很长。
通道“数据宽度”为单字节,以字节交叉方式轮流为多台设备服务,使效率提高。
字节多路通道可有多个子通道,同时执行多个通道程序。
数组多路通道适合于连接多台像磁盘等高速设备。
这些设备的传送速率很高,但传送开始前的寻址辅助操作时间很长。
通道“数据宽度”为定长块,多台设备以成组交叉方式工作,以充分利用并尽量重叠各台高速设备的辅助操作时间。
传送完K个字节数据,就重新选择下个设备。
数组多路通道可有多个子通道,同时执行多个通道程序。
选择通道适合于连接像磁盘等优先级高的高速设备,让它独占通道,只能执行一道通道程序。
通道“数据宽度”为可变长块,一次将N个字节全部传送完,在数据传送期只选择一次设备。
1. 什么是存储系统?对于一个由两个存储器M 1和M 2构成的存储系统,假设M1的命中率为h ,两个存储器的存储容量分别为s 1和s 2,存取时间分别为t 1和t 2,每千字节的成本分别为c 1和c 2。
⑴ 在什么条件下,整个存储系统的每千字节平均成本会接近于c 2? ⑵ 该存储系统的等效存取时间t a 是多少?⑶ 假设两层存储器的速度比r=t 2/t 1,并令e=t 1/t a 为存储系统的访问效率。
试以r 和命中率h 来表示访问效率e 。
⑷ 如果r=100,为使访问效率e>0.95,要求命中率h 是多少?⑸ 对于⑷中的命中率实际上很难达到,假设实际的命中率只能达到0.96。
现在采用一种缓冲技术来解决这个问题。
当访问M 1不命中时,把包括被访问数据在内的一个数据块都从M 2取到M 1中,并假设被取到M 1中的每个数据平均可以被重复访问5次。
请设计缓冲深度(即每次从M 2取到M 1中的数据块的大小)。
答:⑴ 整个存储系统的每千字节平均成本为:12s 1s 2c 2s 1s 1c 2s 1s 2s 2c 1s 1c c ++⨯=+⨯+⨯=不难看出:当s1/s2非常小的时候,上式的值约等于c2。
即:s2>>s1时,整个存储器系统的每千字节平均成本会接近于c2。
⑵ 存储系统的等效存取时间t a 为:2t )h 1(1t h t a ⨯-+⨯=⑶r)h 1(h 1t )h 1(t h t t t e 211a 1⨯-+=⨯-+⨯==⑷ 将数值代入上式可以算得:h>99.95% ⑸通过缓冲的方法,我们需要将命中率从0.96提高到0.9995。
假设对存储器的访问次数为5,缓冲块的大小为m 。
那么,不命中率减小到原来的1/5m ,列出等式有:m596.0119995.0--= 解这个方程得:m=16,即要达到⑷中的访问效率,缓冲的深度应该至少是16(个数据单位)。
2. 要求完成一个两层存储系统的容量设计。
计算机系统结构作业答案第三章(张晨曦)3.1 -3.3为术语解释等解答题。
3.4 设一条指令的执行过程分为取指令,分析指令和执行指令3个阶段,每个阶段所需时间分别为ΔT, ΔT, 2ΔT,分别求出下列各种情况下,连续执行N条指令所需的时间。
(1) 顺序执行方式(2) 只有“取指令”与“执行指令”重叠(3) “取指令”,“分析指令”与“执行指令”重叠解:(1) 4NΔT(2) (3N+1) ΔT(3) 2(N+1) ΔT3.6 解决流水线瓶颈问题有哪两种常用方法?解:(1) 细分瓶颈段将瓶颈段细分为若干个子瓶颈段(2) 重复设置瓶颈段重复设置瓶颈段,使之并行工作,以此错开处理任务3.9 列举下面循环中的所有相关,包括输出相关,反相关,真数据相关。
for(i = 2; i < 100; i=i+1){a[i] = b[i] + a[i]; -----(1)c[i+1] = a[i] + d[i]; -----(2)a[i-1] = 2*b[i]; -----(3)b[i+1] = 2*b[i]; -----(4)}解:输出相关:第k次循环时(1)与第k+1轮时(3)反相关:第k次循环时(1)和(2)与第k-1轮时(3)真数据相关:每次循环(1)与(2),第k次循环(4)与k+1次循环(1),(3),(4)3.12 有一指令流水线如下所示50ns 50ns 100ns 200ns(1)求连续如入10条指令的情况下,该流水线的实际吞吐率和效率(2)该流水线的“瓶颈”在哪一段?请采用两种不同的措施消除此“瓶颈”。
对于你所给出的两种新的流水线连续输入10条指令时,其实际吞吐率和效率各是多少?解:(1)(m表示流水线级数,n 表示任务数)(2)瓶颈在3、4段。
方法一:变成八级流水线(细分)11.7e8方法二:变成两级流水线(合并)方法三:将段1、2 合并为一段,段4 细化流水为两段方法四:重复设置部件,设置2个部件3,4个部件4,和第一种方法结果相同3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段时间为2Δt,其余各段时间均为Δt,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中,现要在该流水线上计算41()i iiA B =+∏,画出其时空图,并计算其吞吐率、急速比和效率。
3.参考答案:4 •参考答案:(1) 源操作数是立即数 OxFF ,需在前面加’$' (2) 源操作数是16位,而长度后缀是字节’b',不一致 (3 )目的操作数不能是立即数寻址(4) 操作数位数超过 16位,而长度后缀为 16位的’w' (5) 不能用8位寄存器作为目的操作数地址所在寄存器 (6) 源操作数寄存器与目操作数寄存器长度不一致 (7) 不存在 ESX 寄存器(8) 源操作数地址中缺少变址寄存器 5 •参考答案:机器级表示 dst_type src_type movsbl %al, ( lx) int char movb %al, ( K) char int movl ( lx) int unsigned movswl %ax, ( K) short int movzbl %al, ( lx) unsigned char unsigned movsbl %al, ( lx) unsigned char movl ( lx) int int6 •参考答案:(1) xptr 、yptr 和zptr 对应实参所存放的存储单元地址分别为: R[ebp]+8、R[ebp]+12、R[ebp]+16。
(2) 函数func 的C 语言代码如下:void fun c(i nt *xptr, i nt *yptr, int *zptr){int tempx=*xptr;(1) 后缀 (2) 后缀 (3) 后缀 (4) 后缀 (5) 后缀 (6) 后缀 (7) 后缀(8) 后缀源:基址+比例变址+偏移, 目:寄存器 w , b ,源:寄存器, l ,源:比例变址, b ,源:基址, l ,源:立即数, l ,源:立即数, w ,源:寄存器,l , 目:基址+偏移 目:寄存器 目:寄存器 目栈 目:寄存器目:寄存器源:基址+变址+偏移, 目:寄存器int tempy=*yptr;int tempz=*zptr;*yptr=tempx;*zptr = tempy;*xptr = tempz;}7 •参考答案:(1)R[edx]=x(2)R[edx]=x+y+4(3)R[edx]=x+8*y(4)R[edx]=y+2*x+12(5)R[edx]=4*y(6)R[edx]=x+y8 •参考答案:(1)指令功能为:R[edx] ■R[edx]+M[R[eax]]=0x00000080+M[0x8049300] ,寄存器EDX 中内容改变。
第三章练习题(1)一、单项选择题在下面各题的4个备选答案中,只有一个答案是正确的,请把正确答案的标号(A~D)填入题后面的括号中。
1.程序员编写程序时使用的访存地址是()。
A.物理地址B.有效地址C.逻辑地址D.主存地址2.虚拟存储器通常采用的地址映像是(D )。
A.全相联、组相联和直接映像B.直接映像C.组相联映像D.全相联映像3.不属于堆栈型替换算法是()。
A.近期最少使用替换算法B.先进先出替换算法C.最优替换算法D.近期最久未使用替换算法4.确保提高虚拟存储器的主存命中率的途径是()。
A.采用LFU替换算法并增大页面数B.采用FIFO替换算法并增大页面C.采用FIFO替换算法并增大页面数D.采用LRU替换算法并增大页面5.虚拟存储器主要是为了解决()问题。
A.便于程序的“访存操作”B.扩大存储系统的容量和提高存储系统的速度C.提高存储系统的速度D.扩大存储系统的容量6.与虚拟存储器的等效访问速度无关的是()。
A.辅存的容量B.主存的容量C.页面替换算法D.访存页地址流二、填空题1.使二级存储系统的等效访问速度接近于第一级存储器访问速度的依据是程序的(局部性原理),它包括(时间局部性)和(空间局部性)两个方面。
2.程序的空间局部性是指程序通常是(顺序)存储和执行的,程序使用的数据通常是(簇聚或集中)存储的。
3.假设T1和T2分别是CPU访问到M1和M2中信息所需要的时间,H为命中M1的概率,则由M1和M2构成的二级存储系统的等效访问时间应当表示为(H*T1+(1-H)*T2)。
4.存储器速度性能可以采用存储器的(频宽)衡量,它是存储器单位时间能够访问的信息量。
5.虚拟存储器的存储管理方式有(页式)、(段式)和(段页式)三种。
6.页式虚拟存储器把(程序“虚拟”)空间和(主存储器“物理实”)空间都分成相同大小的页。
7.当两个虚拟空间的页面要求装入同一个主存页面的位置,称为(实页冲突或页面争用)。
计算机组成原理第三章课后题参考答案第三章课后习题参考答案1.有⼀个具有20位地址和32位字长的存储器,问:(1)该存储器能存储多少个字节的信息(2)如果存储器由512K×8位SRAM芯⽚组成,需要多少芯⽚(3)需要多少位地址作芯⽚选择解:(1)∵ 220= 1M,∴该存储器能存储的信息为:1M×32/8=4MB (2)(1024K/512K)×(32/8)= 8(⽚)(3)需要1位地址作为芯⽚选择。
3.⽤16K×8位的DRAM芯⽚组成64K×32位存储器,要求:(1) 画出该存储器的组成逻辑框图。
(2) 设DRAM芯⽚存储体结构为128⾏,每⾏为128×8个存储元。
如单元刷新间隔不超过2ms,存储器读/写周期为µS, CPU在1µS内⾄少要访问⼀次。
试问采⽤哪种刷新⽅式⽐较合理两次刷新的最⼤时间间隔是多少对全部存储单元刷新⼀遍所需的实际刷新时间是多少解:(1)组成64K×32位存储器需存储芯⽚数为N=(64K/16K)×(32位/8位)=16(⽚)每4⽚组成16K×32位的存储区,有A13-A0作为⽚内地址,⽤A15 A14经2:4译码器产⽣⽚选信号,逻辑框图如下所⽰:(2)根据已知条件,CPU在1us内⾄少访存⼀次,⽽整个存储器的平均读/写周期为,如果采⽤集中刷新,有64us的死时间,肯定不⾏;所以采⽤分散式刷新⽅式:设16K×8位存储芯⽚的阵列结构为128⾏×128列,按⾏刷新,刷新周期T=2ms,则分散式刷新的间隔时间为:t=2ms/128=(s) 取存储周期的整数倍s的整数倍)则两次刷新的最⼤时间间隔发⽣的⽰意图如下可见,两次刷新的最⼤时间间隔为tMAXt MAX=×2-=(µS)对全部存储单元刷新⼀遍所需时间为tRt R=×128=64 (µS)4.有⼀个1024K×32位的存储器,由128K×8位DRAM芯⽚构成。
自考《计算机系统结构》第3章精讲第三章数据类型和数据表示这一章主要讲述计算机中所采用的数据类型,它们主要有两类:一类是基本数据类型,包罗位、串、整数、实数、字符和布尔量等;另一类是结构数据类型,包罗向量、数据、字符串、堆栈、队列、记录等。
因为计算机只能识别”0”和”1”这些二进制位,那么在计算机中如安在存储器中用”0”和”1”来表示上面的这些数据,就是我们要学的数据表示。
这一章内容不多,比力难理解的似乎是”向量”这种数据类型。
本章的内容主要应掌握浮点数的数据表示。
一、数据类型(识记)计算机中所使用的数据一般可分为三类:第一类是用户定义的数据,这类数据通常是由程序设计语言所确定的;第二类是系统数据,它是程序在执行时由计算机系统蕴含生成的;第三类是指令,即被执行的程序可看成是数据的复合。
上面讲的是”数据”,那么”数据类型”是什么呢?它不同于数据,数据类型除了指一组值的集合外,还定义了可作用于这个集合上的操作集,比如有一组整数值的集合,连同定义在这个集合上可进行的加减乘除等算术操作,这个整数的集合就成为了整数数据类型。
从系统结构的不雅点来看,数据类型可分为基本数据、结构数据、拜候指针和抽象数据等类型。
我们这里讲的主要是基本数据和结构数据。
1、基本数据类型(识记)一般包罗二进制位及其位串、整数及自然数、实数(浮点数)、字符和布尔数等。
2、结构数据类型(识记)结构数据类型是一组由彼此有关的数据元素复合而成的数据类型,这些数据元素可以是基本数据类型中的元素,也可以是结构数据类型本身中的元素。
也就是说这些数据是有结构的,包罗向量和数组、字符串、堆栈、队列、记录等,结构数据类型中的元素不必然都具有相同类型。
这里提到了向量,向量通常是指由标量的一组有序集合表示的量,它类似于一维数组,但又有所不同,因为标量通常只是一个整数或实数,而数组元素不必然只取实数。
从计算机存储结构上来说,向量通常存储在一段连续的存储空间里。
计算机系统结构-第三章(习题解答)1. 什么是存储系统?对于一个由两个存储器M 1和M 2构成的存储系统,假设M1的命中率为h ,两个存储器的存储容量分别为s 1和s 2,存取时间分别为t 1和t 2,每千字节的成本分别为c 1和c 2。
⑴ 在什么条件下,整个存储系统的每千字节平均成本会接近于c 2? ⑵ 该存储系统的等效存取时间t a 是多少?⑶ 假设两层存储器的速度比r=t 2/t 1,并令e=t 1/t a 为存储系统的访问效率。
试以r 和命中率h 来表示访问效率e 。
⑷ 如果r=100,为使访问效率e>0.95,要求命中率h 是多少?⑸ 对于⑷中的命中率实际上很难达到,假设实际的命中率只能达到0.96。
现在采用一种缓冲技术来解决这个问题。
当访问M 1不命中时,把包括被访问数据在内的一个数据块都从M 2取到M 1中,并假设被取到M 1中的每个数据平均可以被重复访问5次。
请设计缓冲深度(即每次从M 2取到M 1中的数据块的大小)。
答:⑴ 整个存储系统的每千字节平均成本为:12s 1s 2c 2s 1s 1c 2s 1s 2s 2c 1s 1c c ++⨯=+⨯+⨯=不难看出:当s1/s2非常小的时候,上式的值约等于c2。
即:s2>>s1时,整个存储器系统的每千字节平均成本会接近于c2。
⑵ 存储系统的等效存取时间t a 为:2t )h 1(1t h t a ⨯-+⨯=⑶r)h 1(h 1t )h 1(t h t t t e 211a 1⨯-+=⨯-+⨯==⑷ 将数值代入上式可以算得:h>99.95% ⑸通过缓冲的方法,我们需要将命中率从0.96提高到0.9995。
假设对存储器的访问次数为5,缓冲块的大小为m 。
那么,不命中率减小到原来的1/5m ,列出等式有:m596.0119995.0--= 解这个方程得:m=16,即要达到⑷中的访问效率,缓冲的深度应该至少是16(个数据单位)。
第3章计算机网络体系结构(习题答案)————————————————————————————————作者:————————————————————————————————日期:2第3章计算机网络体系结构一、填空题1.协议主要由(语法)、(语义)和(同步)三个要素组成。
2.OSI模型分为(物理层)、(数据链路层)、(网络层)、(传输层)、(会话层)、(表示层)和(应用层)七个层次。
3.OSI模型分为(资源子网)和(通信子网)两个部分。
4.物理层定义了(机械特性)、(电气特性)、(功能特性)和(规程特性)四个方面的内容。
5.数据链路层处理的数据单位称为(帧)。
6.数据链路层的主要功能有(链路管理)、(成帧)、(信道共享)、(帧同步)、(流量控制)、(差错控制)、(透明传输)和(寻址)。
7.在数据链路层中定义的地址通常称为(硬件地址)或(物理地址)。
8.网络层所提供的服务可以分为两类:(面向连接的)服务和(无连接的)服务。
9.传输层的功能包括(服务选择)、(连接管理)、(流量控制)、(拥塞控制)和(差错控制)等。
二、名词解释同步协议实体对等层对等层通信服务 CIDR 协议数据单元服务数据单元同步同步指的是广义的、在一定条件下发生什么事情的特性,而且条件和时间有关,具有时序的含义。
协议计算机网络中意图进行通信的结点必须要遵守一些事先约定好的规则。
这些为进行数据交换而建立的规则、标准或约定即称为协议,也称为网络协议。
实体任何接收或者发送数据的硬件单元或者软件进程模块都可以称为通信实体,简称实体。
对等层不同的网络结点,若它们遵循的是同一种网络体系结构的话,那么在不同结点上完成同样功能的层次称为对等层。
对等层通信在分层的网络体系结构中,每个层次只知道自己从上层接收来数据并处理后再传递给下一层,结果通信目的方该层次的对等层就收到与己方处理的一模一样的数据。
就好像在两个对等层之间有一条“通道”直接把数据传送过去一样,这种情况就称为对等层通信。
第3 章习题答案2(4)高级语言中的运算和机器语言(即指令)中的运算是什么关系?假定某一个高级语言源程序P中有乘、除运算,但机器M中不提供乘、除运算指令,则程序P能否在机器M上运行?为什么?参考答案:(略)3.考虑以下C语言程序代码:int func1(unsigned word){return (int) (( word <<24) >> 24);}int func2(unsigned word){return ( (int) word <<24 ) >> 24;}假设在一个32位机器上执行这些函数,该机器使用二进制补码表示带符号整数。
无符号数采用逻辑移位,带符号整数采用算术移位。
请填写下表,并说明函数func1和func2的功能。
函数func1的功能是把无符号数高24位清零(左移24位再逻辑右移24位),结果一定是正的有符号数;而函数func2的功能是把无符号数的高24位都变成和第25位一样,因为左移24位后进行算术右移,高24位补符号位(即第25位)。
4.填写下表,注意对比无符号数和带符号整数的乘法结果,以及截断操作前、后的结果。
5.以下是两段C语言代码,函数arith( )是直接用C语言写的,而optarith( )是对arith( )函数以某个确定的M和N编译生成的机器代码反编译生成的。
根据optarith( ),可以推断函数arith( ) 中M和N 的值各是多少?#define M#define Nint arith (int x, int y){int result = 0 ;result = x*M + y/N;return result;}int optarith ( int x, int y){i nt t = x;x << = 4;x - = t;i f ( y < 0 ) y += 3;y>>2;r eturn x+y;参考答案:可以看出x*M和“int t = x; x << = 4; x-=t;”三句对应,这些语句实现了x乘15的功能(左移4位相当于乘以16,然后再减1),因此,M等于15;y/N与“if ( y < 0 ) y += 3; y>>2;”两句对应,功能主要由第二句“y右移2位”实现,它实现了y除以4的功能,因此N是4。
而第一句“if ( y < 0 ) y += 3;”主要用于对y=–1时进行调整,若不调整,则–1>>2=–1而–1/4=0,两者不等;调整后–1+3=2,2>>2=0,两者相等。
思考:能否把if ( y < 0 ) y += 3; 改成if ( y < 0 ) y += 2; ?不能!因为y = - 4时不正确。
6.设A4~A1和B4~B1分别是四位加法器的两组输入,C0为低位来的进位。
当加法器分别采用串行进位和先行进位时,写出四个进位C4 ~C1的逻辑表达式。
参考答案:串行进位:C1 = X1C0+Y1C0 + X1 Y1C2 = X2C1+Y2C1 + X2 Y2C3 = X3C2+Y3C2 + X3 Y3C4 = X4C3+Y4C3 + X4 Y4并行进位:C1 = X1Y1 + (X1+Y1)C0C2 = X2Y2 + (X2 +Y2) X1Y1 + (X2+Y2) (X1+Y1)C0C3 = X3Y3 + (X3 + Y3) X2Y2 + (X3 + Y3) (X2 + Y2) X1Y1 + (X3 + Y3) (X2 + Y2)(X1 + Y1)C0C4=X4Y4+(X4+Y4)X3Y3+(X4+Y4)(X3+Y3)X2Y2+(X4+Y4)(X3+Y3)(X2+Y2)X1Y1+(X4+Y4)(X+Y3) (X2+Y2)(X1+Y1)C037.用SN74181和SN74182器件设计一个16位先行进位补码加/减运算器,画出运算器的逻辑框图,并给出零标志、进位标志、溢出标志、符号标志的生成电路。
参考答案(图略):逻辑框图参见教材中的图3.15和图3.16,将两个图结合起来即可,也即只要将图3.15中的B输入端的每一位B i取反,得到B i,和原码B i一起送到一个二路选择器,由进位C0作为选择控制信号。
当C0为1时做减法,此时,选择将B i作为SN74181的B输入端;否则,当C0为1时,做加法。
零标志ZF、进位标志CF、溢出标志OF、符号标志SF的逻辑电路根据以下逻辑表达式画出即可。
ZF=F15+F14+F13+F12+F11+F10+F9+F8+F7+F6+F5+F4+F3+F2+F1+F0CF=C16OF= C0(A15B15F15 + A15B15F15)+ C0(A15B15F15 + A15B15F15)SF= F158.用SN74181和SN74182器件设计一个32位的ALU,要求采用两级先行进位结构。
(1)写出所需的SN74181和SN74182芯片数。
(2)画出32位ALU的逻辑结构图。
参考答案(图略):将如图3.15所示的两个16位ALU级联起来即可,级联时,低16位ALU的高位进位C16作为高16位ALU的低位进位C0,因此,只要用8片SN74181和2片SN74182。
9.已知x = 10,y = –6,采用6位机器数表示。
请按如下要求计算,并把结果还原成真值。
(1)求[x+y]补,[x–y]补。
(2)用原码一位乘法计算[x×y]原。
(3)用MBA(基4布斯)乘法计算[x×y]补。
(4)用不恢复余数法计算[x/y]原的商和余数。
(5)用不恢复余数法计算[x/y]补的商和余数。
参考答案:[10]补= 001010 [–6]补= 111010 [6]补= 000110 [10]原= 001010 [–6]原= 100110(1)[10+(–6)]补= [10]补+[–6]补= 001010+111010 = 000100 (+4)[10–(–6)]补= [10]补+[–(–6)]补= 001010+000110 = 010000 (+16)(2)先采用无符号数乘法计算001010×000110的乘积,原码一位乘法过程(前面两个0省略)如下:C P Y 说明0 0 0 0 0 0 1 1 0 P0 = 0+ 0 0 0 0 y4 = 0,+00 0 0 0 0 C, P 和Y同时右移一位0 0 0 0 0 0 0 1 1 得P1+ 1 0 1 0 y3 = 1,+X0 1 0 1 0 C, P 和Y同时右移一位0 0 1 0 1 0 0 0 1 得P2+ 1 0 1 0 y2 = 1,+X0 1 1 1 1 0 0 0 0 C, P 和Y同时右移一位0 0 1 1 1 1 0 0 0 得P3+ 0 0 0 0 y1 = 0,+00 0 1 1 1 C, P 和Y同时右移一位0 0 0 1 1 1 1 0 0 得P4若两个6位数相乘的话,则还要右移两次,得000000 111100符号位为:0 1 = 1,因此,[X×Y]原= 1000 0011 1100即X ×Y = –11 1100B = –60(3)[–10]补= 110110,布斯乘法过程如下:P Y y-1说明0 0 0 0 0 0 1 1 1 0 1 0 0 设y-1 = 0,[P0]补= 0y0 y-1 = 00,P、Y直接右移一位0 0 0 0 0 0 0 1 1 1 0 1 0 得[P1]补+ 1 1 0 1 1 0 y1 y0 =10,+[–X]补1 1 0 1 1 0 P、Y同时右移一位1 1 1 0 1 1 0 0 1 1 1 0 1 得[P2]补+ 0 0 1 0 1 0 y2 y1 =01,+[X]补0 0 0 1 0 1 P、Y同时右移一位0 0 0 0 1 0 1 0 0 1 1 1 0 得[P3]补+ 1 1 0 1 1 0 1 0 0 1 1 1 0 y3 y2 = 10,+[–X]补1 1 1 0 0 0 P、Y同时右移一位1 1 1 1 0 0 0 1 0 0 1 1 1 得[P4]补+ 0 0 0 0 0 0 0 1 0 0 1 1 1 y4 y3 = 11,+01 1 1 1 0 0 P、Y同时右移一位1 1 1 1 1 0 0 0 1 0 0 1 1 得[P5]补+ 0 0 0 0 0 0 0 0 1 0 0 1 1 y5 y4 = 11,+01 1 1 1 1 0 P、Y同时右移一位1 1 1 1 1 1 0 0 0 1 0 0 1 得[P6]补因此,[X ×Y]补=1111 1100 0100,即X ×Y = –11 1100B= –60(4)因为除法计算是2n位数除n位数,所以[6]原=0110,[10]原=0000 1010,[–6]补=1010,商的符号位:0 1 = 1,运算过程(前面两个0省略)如下:余数寄存器R 余数/商寄存器Q 说明1 0 1 0 1 0 1 0 0 R1< 0,则q 4 = 0,没有溢出0 1 0 1 2R1(R和Q同时左移,空出一位商)+ 0 1 1 0 R2 = 2R1+Y商的数值部分为:00001。
所以,[X/Y]原=00001 (最高位为符号位),余数为0100。
(5)将10和–6分别表示成补码形式为:[10]补= 0 1010 , [–6]补= 1 1010,计算过程如下:先对被除数进行符号扩展,[10]补=00000 01010,[6]补= 0 0110余数寄存器R 余数/商寄存器Q 说明0 0 0 0 0 0 1 0 1 0 开始R0 = [X]+ 1 1 0 1 0 R1=[X] +[Y]1 1 0 1 0 0 1 0 1 0 R1与[Y]同号,则q5 =11 0 1 0 0 1 0 1 0 1 2R1(R和Q同时左移,空出一位上商1)+0 0 1 1 0 R2 = 2R1+[–Y]1 1 0 1 0 1 0 1 0 1 R2与[Y]同号,则q4= 1,1 0 1 0 1 0 1 0 1 1 2R2(R和Q同时左移,空出一位上商1)+ 0 0 1 1 0 R3 = 2R2 +[-Y]1 1 0 1 1 0 1 0 1 1 R3与[Y]同号,则q3 = 11 0 1 1 0 1 0 1 1 1 2R3(R和Q同时左移,空出一位上商1)+ 0 0 1 1 0 R4 = 2R3 +[–Y]1 1 1 0 0 1 0 1 1 1 R4与[Y]同号,则q2 = 11 1 1 1 0 1 1 1 1 1 2R5(R和Q同时左移,空出一位上商1)+ 0 0 1 1 0 R6= 2R5 +[–Y]0 0 1 0 0 1 1 1 1 0 R6与[Y]异号,则q 0 = 0,Q左移,空出一位上商1+ 0 0 0 0 0 + 1 商为负数,末位加1;余数不需要修正0 0 1 0 0 1 1 1 1 1所以,[X/Y]补=11111,余数为00100。