计算机组成原理1-4练习题参考答案.ppt
1,第一章课后思考练习题一.填空1.电子数字计算机可以分为专用计算机和通用计算机两类。2.硬件采用LSI或VLSI的电子计算机属于计算机发展过程中的第四代。3.存储器中存放数据和程序。4.一台计算机包括运算、存储、控制、输入及输出五个单元。5.完成算术运算和逻辑运算的部件是运算器(或ALU);运算器的核心是加法器;控制、指挥程序和数据的输入、运行以及处理运算结果的部件是控制器。6.CPU内部连接各寄存器及运算部件之间的总线是内部总线;CPU同存储器、通道等互相连接的总线是系统总线;中、低速I/O设备之间互相连接的总线是I/O总线。7.在多总路线结构中,CPU总线、系统总线和高速总线相连通过桥实现。8.计算机软件一般分为系统软件和应用软件。9.完整的计算机系统由硬件系统和软件系统构成。10.机器字长是指一台计算机一次所能够处理的二进制位数量。11.数据分类、统计、分析属于计算机在数据处理方面的应用。,2,12.计算机是一种信息处理机,它最能准确地反映计算机的主要功能。13.个人台式商用机属于微型机。14.对计算机软硬件进行管理,是操作系统的功能。15.用于科学技术的计算机中,标志系统性能的主要参数是MFLOPS。16.通用计算机又可以分为超级机、大型机、服务器、工作站、微型机和单片机六类。17.“存储程序控制”原理是冯.诺依曼提出的。18.运算器和控制器构成CPU,CPU和主存构成主机。19.取指令所用的时间叫存取周期,执行指令所用的时间叫执行周期。20.每个存储单元都有一个编号,该编号称为地址。21.现代计算机存储系统一般由高速缓存、主存和辅存构成。22.计算机能够自动完成运算或处理过程的基础是存储程序和程序控制原理。二.单选1.存储器用来存放(C)。A.数据 B.程序 C.数据和程序 D.正在被执行的数据和程序2.下面的描述中,正确的是(B)A.控制器能够理解、解释并执行所有的指令及存储结果。B.一台计算机包括输入、输出、控制、存储及运算逻辑五个单元。C.所有的数据运算都在CPU的控制器中完成。,3,D.以上答案都是正确的。3.存储字长是指(B)。A.存放在一个存储单元中的二进制代码组合。B.存放在一个存储单元中的二进制代码位数。C.存储单元的个数。D.机器指令的位数。4.对有关数据进行分类、统计、分析是计算机的(C)应用。A.数值计算 B.辅助设计 C.数据处理 D.实时控制5.下面的四句话中,最能准确反映计算机主要功能的是(C)A.计算机可以存储大量信息 B.计算机能代替人的脑力劳动 C.计算机是一种信息处理机 D.计算机可实现高速运算6.我们通常所说的个人台式商用机属于(D)。A.巨型机 B.中型机 C.小型机 D.微型机7.对计算机软、硬件资源进行管理,是(A)的功能。A.操作系统 B.数据库管理系统 C.语言处理程序 D.用户程序8.微型计算机的发展以(B)技术为标志。A.操作系统 B.微处理器 C.外存储器 D.软件9.用于科学计算的计算机中,标志系统性能的主要参数是(C)。A.主时钟频率 B.主存容量 C.MFLOPS D.MIPS,4,三.简答和应用题1.比较数字计算机和模拟计算机的特点。模拟计算机的特点是数值由连续量来表示,运算过程也是连续的。数字计算机的主要特点是按位运算,并且不连续地跳动计算。模拟计算机用电压表示数据,采用电压组合和测量值的计算方式,盘上连线的控制方式,而数字计算机用0和1表示数据,采用数值计数的计算方式,程序控制的控制方式,数据计算机与模拟计算机相比,精度高,数据存储量大,逻辑判断能力强。2.数字计算机如何分类?分类的依据是什么?数字计算机分为专用计算机和通用计算机两类,是根据是计算机的效率、速度、价格、运行的经济性和适应性来划分的。3.什么叫总线?单总线结构和多总线结构各有何特点?(1)总线是计算机多个系统功能部件之间进行数据传送的公共通路。(2)单总线结构的特点是:各部件连接在单一的一组总线上。CPU与主存之间、CPU与外设之间、主存与外设、外设与外设之间都可以直接交换信息,不需要CPU的干预;多总线结构的特点是CPU、主存、I/O之间互联需要多条总线。CPU与Cache间采用高速CPU总线,主存连在系统总线上;CPU总线、系统总线和高速总线通过“桥”相连;高速总线通过扩充总线接口与扩充总线相连,扩充总线上可以连接串行工作,5,方式的I/O设备。4.冯.诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?主要设计思想是:存储程序通用电子计算机方案,主要组成部分有:运算器、控制器、存储器、输入和输出设备。5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?存储器所有存储单元的总数称为存储器的存储容量。每个存储单元都有编号,称为单元地址。如果某个单元代表要处理的数据,称为数据字。如果某字为一条指令,称为指令字。6.什么是内存?什么是外存?什么是CPU?什么是适配器?半导体存储器称为内存,存储容量更大的磁盘存储器和光盘存储器称为外存。内存和外存共同用来保存二进制数据。运算器和控制器合在一起称为中央处理器,简称CPU。适配器是外围设备与主机相连接的部件,它可以保证外围设备用计算机系统特性所要求的形式发送或接收信息。7.用一台40MHz处理器执行标准测试程序,它的混合指令数和相应所需的时钟周期数如下表所示,求这台计算机的有效CPI、MIPS速率和程序的执行时间。,6,7,第二章 课后练习题一.单选1.原码10000000的相应补码表示为(D)。A.1111111 B.10000000 C.01111111 D.00000000解:10000000原=-0原=00000000补=+0补=-0补,即0的补码只有一种表达形式,所以选D。2.某机字长8位,含一位数符,采用原码表示,则定点小数所能表示的非零最小正数为(D)。A.2-9 B.2-8 C.1-D.2-7解:求最小的非零正数,符号位为0,数值位取非0中原码最小值,该8位数据编码为:00000001,表示的值是2-7,所以选D。3.已知X补=01100011,则-X补等于(C)。A.00011100 B.100111000 C.10011101 D.以上都不是解:X为正整数,则原码、补码、反码相同。X原=01100011,-X原=11100011原=10011100反=10011101补,所以选取C。,8,4.十进制数137277的八进制表示为(A)。A.414066 B.4146666 C.414866 D.404166解:十进制转变为八进制的方法是:整数部分的转化采用除基取余法,将整数除以8,所得余数即为八进制数的个位上数码,余数为八进制十位上的数码如此反复进行,直到商为0为止。(137277)10=(414066)8,所以选A。5.十六进制小数0.ACBEDF的十进制表示为(C)。解:将十六进制小数0.ACBEDF转换为相应的十进制,可采用乘幂相加法完成,即1+1016-1+1216-2+1116-3+1416-4+1316-5+1516-6=1.1321055,所以选C。6.下列数中最小的数是(C)。A.(101001)2 B.(52)8 C.(101001)BCD D.(233)16解:(101001)2=(41)10,(52)8=(42)10,(101001)BCD=(29)10,(233)16=(563)10,其中29最小,所以选C。7.如果X为负数,由X补求-X补,是将(D)。A.X补各值保持不变 B.X补符号位变反,其他各位不变,9,10,4.如果X为负数,由X补求-X补是将X补连同符号位一起各位取反,末位加1。5.n+1位的定点小数,其补码表示是-1x1-2-n。6.奇偶校验码只有检错能力却没有纠错能力。7.无符号整数的所有二进制位都表示数值的大小。8.有符号整数用最高位的“0”表示“+”,“1”表示“-”,符号位以外的其余各位表示数值的大小9.8位有符号整数表示的范围为-127+127。10.定点小数的小数点隐含在符号位之后、数值位的最高有效数位之前。11.分别写出下列代码的奇校验码和偶校验码。10100010 01011000 01011100 奇校验码 偶校验码 010100010 110100010 001011000 101011000 101011100 00101110012.计算机中用“0”、“1”表示的数通常称为机器数。它有定点和浮点两种基本表示形式。13.用四位表示的+0原=00000;+0反=00000;-0原=10000;-0反=11111;+0补=00000;-0补=00000。,11,三.应用题1.设X1=1011,X2=-1011,X3=+10101,X4=-10101,求它们的移码。解:X1移=2n+X=24+1011=10000+1011=11011“1”为正X2移=2n+X=24+X=10000+(-1011)=10000-1011=00101“0”为负 X3移=2n+X=25+X=100000+10101=110101“1”为正 X4移=2n+X=25+X=100000+(-10101)=100000-10101=001011“0”为负2.设十进制真值X分别为-127和+127,求其二进制数及原码、反码、补码、移码。真值X(十进制)真值X(二进制)X原 X反 X补 X移-127-01111111 11111111 10000000 10000001 00000001+127+01111111 01111111 01111111 01111111 111111113.求(178.125)10的短浮点数(单精度浮点数)。解:(178.125)10=(10110010.001)2。规格化该二进制:10110010.001=1.011001000127=1011001000127加上偏移量。指数=7,偏移量=127,阶码E=7+127=134=(10000110)2。用短浮点存储。s=0,E=10000110,尾数。故(178.125)10的短浮点数代码为:0;10000110;。,12,4.求短浮点数的十进制数值。解:首先求出指数。阶码E=01111110=(126)10,指数=126-127=-1。计算尾数。规格化的尾数是:+1.1011。计算该浮点数的十进制数值:+1.10112-1=+0.11011=(+0.84375)10。,13,第三章 课后练习题一.单选1.主存直接寻址时指令的地址段给出的是(C)。A.存放操作数地址的寄存器号 B.存放操作数的寄存器号C.存放操作数的内容地址 D.以上都不是解:直接寻址指令中的地址码直接给出操作数所在主存单元的地址。CPU取操作数时进行一次访问。所以正确答案是C。2.间接寻址第一次访问内存所得到的是操作数的有效地址,该地址经系统总线的(A)传送到CPU。A.数据总线 B.地址总线 C.控制总线 D.总线控制器解:对操作数来说是有效地址,但是对第一次访问的内存地址来说是这个地址对应的数据,要通过数据线来传输。在执行指令时,先把地址寄存器对准主存单元,取出存储单元的数据,放到数据缓冲器中,再传到CPU的寄存器中。通过下面的指令知道这个数据是所需数据的地址,再进行访问。所以正确答案是A。,14,3.相对寻址方式中,指令所提供的相对地址实质上是一种(C)。A.立即数 B.内存地址C.以本条指令在主存中首地址为基准位置的偏移量D.以下条指令在主存中首地址为基准位置的偏移量解:相对寻址的有效地址是将程序计数器PC的内容即当前的地址与指令字中的形式地址A相加而成。所以是以本条指令在主存中首地址为基准位置。所以正确答案是C。4.为了缩短指令中某个地址段的位数,有效的方法是采取(D)。A.立即寻址 B.变址寻址 C.间接寻址 D.寄存器寻址解:由于计算机寄存器的数量一般很少,采取寄存器寻址时可用少量的代码来指定寄存器,这样可以减少对应地址的代码数,也可减少整个指令的代码长度。所以正确答案是D。5.下列寻址方式中,一旦指令从内存读出后,能够较快地获取操作数的寻址方式是(A)。,15,A.寄存器寻址 B.直接寻址 C.间接寻址 D.变址寻址解:由于操作数不在主存而在CPU寄存器中,寄存器寻址在指令执行阶段无须访存,可较快获取操作数。所以正确答案是A。6.与本指令的地址有关的寻址方式是(C)。A.立即寻址 B.寄存器寻址 C.相对寻址 D.直接寻址解:相对寻址的有效地址是将程序计数器PC的内容即当前指令的地址与指令字中的形式地址A相加而成。所以与本指令的地址有关。所以正确答案是C。7.假设寄存器R中的数值为200,主存地址为200和300的地址单元中存放的内容分别是200和400,则下列方式中,(D)访问到的操作数为200。A.直接寻址200 B.寄存器间接寻址(R)C.存储器间接寻址(200)D.寄存器寻址R解:直接寻址200的操作数为300,寄存器间接寻址(R)的操作数300,存储器间接寻址(200)的操作数为400,寄存器寻址R的操作数为200。所以正确答案是D。,16,8.变址寻址方式中,操作数的有效地址是(C)A.基址寄存器内容加上形式地址(位移量)B.程序计数器内容加上形式地址 C.变址寄存器内容加上形式地址D.寄存器内容加上形式地址解:指令指定一个CPU寄存器(称为变址寄存器)和一个形式地址,操作数地址是二者之和,EA=(R)变址+D。所以正确答案是C。9.直接寻址的无条件转移指令功能是将指令中的地址码送入(B)。A.ALU B.PC C.地址寄存器 D.累加器解:在指令中直接给出操作数在存储器中的地址。由于是无条件转移指令,所以指令中给的是地址码,直接将地址码送入程序计数器PC就可跳转。所以正确答案是C。10.直接、间接、立即三种寻址方式指令的执行速度,由快至慢的排序是(C)。A.直接、立即、间接 B.直接、间接、立即,17,C.立即、直接、间接 D.立即、间接、直接解:立即寻址:指令直接给出操作数本身,立即得到操作数,无须访存。直接寻址:指令直接给出操作数主存中的地址D。间接寻址:指令给出存放操作数地址的存储单元地址。立即寻址立刻得到操作数,直接寻址去所给的主存单元中取操作数,间接寻址先得到操作数地址所在的存储单元的地址,再得到操作数的地址,然后才能取操作数。所以正确答案是C。11.采用变址寻址可扩大寻址范围,且下列说法正确的是(D)。A.变址寄存器内容由用户确定,在程序执行过程中不可变。B.变址寄存器内容由操作系统确定,在程序执行过程中可变。C.变址寄存器内容由操作系统确定,在程序执行过程中不可变。D.变址寄存器内容由用户确定,在程序执行过程中可变。解:指令指定一个CPU寄存器(即变址寄存器)和一个形式地址,操作数地址是二者之和。EA=(R)变址+D。主要解决程序内部循环问题。变址寄存器的内容由用户指定,可改变。所以正确答案是D。12.在下列寻址方式中,(B)方式需要先计算,再访问主存。A.立即寻址 B.变址寻址 C.间接寻址 D.直接寻址,18,解:立即寻址:指令直接给出操作数本身,立即得到操作数,无须访存。直接寻址:指令直接给出操作数主存中的地址D,去所给的主存单元中取 操作数。间接寻址:指令给出存放操作数地址的存储单元地址,先得到操作数地址所在的存储单元的地址,再得到操作数的地址,然后才能取操作数。这三种寻址方式都不需要计算。变址寻址:指令指定一个CPU寄存器(称为变址寄存器)和一个形式地址,操作数地址是二者之和,需要先计算再访存。所以正确答案是B。13.在下列寻址方式中,(C)寻址对于实现程序浮动提供了较好的支持。A.间接寻址 B.变址寻址 C.相对寻址 D.直接寻址解:相对寻址是把程序计数器PC的内容加上由指令给出的形式地址而形成操作数地址。PC的值是变化的,根据当前指令的地址来计算,形式地址由指令给出,所以比较容易实现程序浮动。所以正确答案是C。14.指令系统中采用不同寻址方式的目的主要是(B)。A.可降低指令译码难度B.缩短指令字长,扩大寻址空间,提高编程灵活性C.实现过程控制 D.寻找操作,19,解:计算机指令系统中对操作数的寻址采用不同寻址方式,可以在有限的指令代码长度范围内增加指令的数量,可以扩大对内部存储器的访问空间,既扩大寻址空间,同时又给程序设计人员提供了更多编程的灵活性。所以正确答案是B。15.变址寻址和基址寻址的有效地址形成方式类似,但是(C)。A.变址寄存器的内容在程序执行过程中是不可变的B.在程序执行过程中,变址寄存器和基址寄存器的内容都可变C.在程序执行过程中,基址寄存器的内容不可变,变址寄存器的内容可变D.变址寄存器的内容在程序执行过程中是可变的解:基址寻址:把由指令中给出的地址(位移量)与CPU中的某个基址寄存器相加而得到实际的操作数地址。EA=(R)基址+D。要求基址寄存器的内容能提供整个主存范围的寻址能力,指令给出的位移地址实际上指出了相对基址的位移量。基址寄存器的内容通常由OS或管理程序确定,在程序执行过程中,用户不可修改基址寄存器的内容,以确保系统安全可靠地运行。变址寻址:指令指定一个CPU寄存器(变址寄存器)和一个形式地址,操作数地址是二者之和。EA=(R)变址+D。主要解决程序内部的循环问题。变址寄存器的内容是由用户设定的,在程序执行过程中其值可变。所以正确答案是C。,20,16.设变址寄存器为X,形式地址为D,某机具有先间址后变址的寻址方式,则这种寻址方式的有效地址为(B)。A.EA=(X)+D B.EA=(X)+(D)C.EA=(X)+D)D.EA=X+D解:先间址后变址,则先把寄存器单元内容当作地址,再加上形式地址的内容得到操作数的地址,即EA=(X)+(D)。所以正确答案是B。17.在按字节编址的存储器中,每个编址单元中存放(B)。A.1位 B.8位 C.16位 D.32位解:在按字节编址的存储器中,每个编址单元的容量为一个字节,一个字节由8位二进制数组成。一个字节存储单元可存放8位二进制数。所以正确答案是B。18.关于单地址指令,下列说法正确的是(D)。A.只能对单操作数进行加工处理 B.只能对双操作数进行加工处理C.无处理双操作数的功能D.既能对单操作数进行加工处理,也能在陷含约定另一个操作数(或地址)时,对双操作数进行运算二.简答1.指令长度和机器字长有什么关系?半字长指令、单字长指令、双字长指令分别表示什么意思?,21,答:(1)指令的长度是指一条指令中所包含的二进制代码的位数,它取决于操作码字段的长度、操作数地址的个数及长度。指令长度与机器字长没有固定的关系,它可以等于机器字长,也可以大于或小于机器字长。(2)指令长度等于半个机器字长的指令称为半字长指令;指令长度等于机器字长的指令称为单字长指令;指令长度等于两个机器字长的指令称为双字长指令。2.试比较基址寻址和变址寻址。答:(1)基址寻址:把由指令中给出的地址(位移量)与CPU中的某个基址寄存 器相加而得到实际的操作数地址。EA=(R)基址+D。要求基址寄存器 的内容能提供整个主存范围的寻址能力,指令给出的位移地址实际上 指出了相对基址的位移量。基址寄存器的内容通常由OS或管理程序确 定,在程序执行过程中,用户不可修改基址寄存器的内容,以确保系 统安全可靠地运行。(2)变址寻址:变址寻址和基址寻址的有效地址形成方式类似,指令指定 一个CPU寄存器(变址寄存器)和一个形式地址,操作数地址是二者之 和。EA=(R)变址+D。主要解决程序内部的循环问题。由于变址寄存 器的内容是由用户设定的,所以在程序执行过程中其值可变。,22,23,(1)该指令格式能定义多少种不同的操作?立即寻址操作数的范围是多少?(2)在非间接寻址情况下,写出各计算有效地址的表达式。(3)设基址寄存器14位,在非变址直接基址寻址时,确定存储器可寻址的地址范围。(4)间接寻址时,寻址范围是多少?(5)指出间接寻址的缺点。解:(1)该指令格式16位单字长访存可定义16种不同的操作。立即寻址操作数范围为-128+127。(2)绝对寻址(直接寻址):指令直接给出操作数主存中的地址A。E=A。基址寻址:把由指令中给出的地址(或称为位移量)与CPU中的某个基址寄存器相加而得到实际操作数地址。E=(Rb)+A。相对寻址:把程序计数器PC的内容,加上由指令给出的形式地址而形成操作数地址。E=(PC)+A。立即寻址:指令直接给出操作数本身。D=A。变址寻址:指令指定一个CPU寄存器(变址寄存器)和一个形式地址,操作数地址是二者之和。E=(Rx)+A。(3)由于E=(Rb)+A,Rb=14位,故寄存器可寻址的地址范围为(16383-128)(16383+127),即16255 16510。,24,25,解:(1)双字长二地址指令,用于访问存储器。操作码字段可指定64位操作。(2)RS型指令,一个操作数在通用寄存器(共16个),另一个操作数在主存中。(3)有效地址可通过变址寻址求得,即有效地址等于变址寄存器(共16个)内容加上位移量。4.一种单地址指令格式如下所示,其中I为间接特征,X为寻址模式,D为形式地址。I,X,D组成该指令的操作数有效地址E。设R为变址寄存器,R1为基址寄存器,PC为程序计数器。请在下表第一列序号后填入适当的寻址方式名称。,26,第四章 课后练习题一.填空1.全加器有3个输入量和2个输出量。2.并行加法器的每个全加器都有一个从低位传来的进位输入和1个传送给高位的进位输出。3.串行进位的并行加法器的总延迟时间与字长成正比。4.在分组并行进位中,组内各位之间并行快速进位,组与组之间串行进位,称为组内并行,组间串行(或单级先行进位)。5.在分组并行进位中,组内各位之间并行快速进位,组与组之间也采取并行快速进位,这种进位方式称为组内并行,组间并行(多级先行进位)。6.原加减运算时,参加运算的操作数取其绝对值。7.原码减法运算时,参加运算的操作数均取其绝对值,减数先变补,再做加法运算。8.两个补码表示的数相加,符号位参加运算,且两数和的补码等于两数补码之和。,27,9.两个正数相加,结果大于机器字长所能表示的最大正数,称为正溢;而两个负数相加,结果小于机器所能表示的最小负数,称为负溢。10.有符号数的移位叫算术移位。11.原码移位时,数值位空出位一律补0。12.补码移位时,符号位不变,若补码为正数,空出位一律补入0;若补码为负数,符号位不变,左移空出位补0,右移空出后补1。13.有符号数的移位称为算术移位,无符号的移位称为逻辑移位。14.做原码一位乘法时,符号位与数值位单独计算;乘积的符号位取相乘两数符号位的异或值;乘积为相乘两数的绝对值之积。15.两个原码表示的数相除时,商的符号取两数符号的异或值,商的数值由两数的数值部分相除求得。16.对阶时,必须是小阶向大阶看齐。二.单选1.原码乘法是(B)。A.用原码表示操作数,然后直接相乘。B.先取操作数绝对值相乘,符号位单独处理。,28,C.被乘数用原码表示,乘数取绝对值,然后相乘。D.乘数用原码表示,被乘数取绝对值,然后相乘。2.在原码一位乘法中,当乘数Yi为1时(A)。A.被乘数绝对值与原部分积相加后,右移一位B.被乘数连同符号位与原部分积相加后,右移一位C.被乘数连同符号位右移一位,再与原部分积相加D.被乘数绝对值右移一位后,再与原部分积相加3.当定点运算发生溢出时,应(C)。A.向左规格化 B.向右规格化 C.发出出错信息 D.舍入处理4.在原码加减交替除法中,符号位单独处理,参加操作的数是(B)。A.原码 B.绝对值 C.绝对值的补码 D.补码,29,