计算机组成与设计第三版-第七章课后答案
- 格式:ppt
- 大小:92.00 KB
- 文档页数:16
《计算机组成原理》各章练习题参考答案第一章思考练习题一.填空1.电子数字计算机可以分为专用计算机和通用计算机两类。
2.硬件采用LSI或VLSI的电子计算机属于计算机发展过程中的第四代。
3.存储器中存放数据和程序。
4.一台计算机包括运算、存储、控制、输入及输出五个单元。
5.完成算术运算和逻辑运算的部件是运算器(或ALU);运算器的核心是加法器;控制、指挥程序和数据的输入、运行以及处理运算结果的部件是控制器。
6.CPU内部连接各寄存器及运算部件之间的总线是内部总线;CPU同存储器、通道等互相连接的总线是系统总线;中、低速I/O设备之间互相连接的总线是I/O总线。
7.在多总路线结构中,CPU总线、系统总线和高速总线相连通过桥实现。
8.计算机软件一般分为系统软件和应用软件。
9.完整的计算机系统由硬件系统和软件系统构成。
10.机器字长是指一台计算机一次所能够处理的二进制位数量。
11.数据分类、统计、分析属于计算机在数据处理方面的应用。
12.计算机是一种信息处理机,它最能准确地反映计算机的主要功能。
13.个人台式商用机属于微型机。
14.对计算机软硬件进行管理,是操作系统的功能。
15.用于科学技术的计算机中,标志系统性能的主要参数是MFLOPS。
16.通用计算机又可以分为超级机、大型机、服务器、工作站、微型机和单片机六类。
17.“存储程序控制”原理是冯.诺依曼提出的。
18.运算器和控制器构成CPU,CPU和主存构成主机。
19.取指令所用的时间叫取指周期,执行指令所用的时间叫执行周期。
20.每个存储单元都有一个编号,该编号称为地址。
21.现代计算机存储系统一般由高速缓存、主存和辅存构成。
22.计算机能够自动完成运算或处理过程的基础是存储程序和程序控制原理。
二.单选1.存储器用来存放( C )。
A.数据B.程序C.数据和程序D.正在被执行的数据和程序2.下面的描述中,正确的是( B )A.控制器能够理解、解释并执行所有的指令及存储结果。
单片微型计算机与接口技术思考与习题77.1 8XX51单片机内部设有几个定时/计数器?它们是由哪些专用寄存器组成的?答:(1)8XX51单片机内部设有2个定时/计数器。
(2)定时/计数器T1由寄存器TH1、TL1组成,定时/计数器T0由寄存器TH0、TL0组成。
7.3定时/计数器用作定时时,其定时时间与哪些因素有关?用作计数时,对外界计数频率有何限制?答:设置为定时工作方式时,定时器计数的脉冲是由51单片机片内振荡器经12分频后产生的。
每经过一个机器周期定时器(T0或T1)的数值加1直至计数满产生溢出。
设置为计数工作方式时,通过引脚T0(P3.4)和T1(P3.5)对外部脉冲信号计数。
当输入脉冲信号产生由1至0的下降沿时,定时器的值加1, 在每个机器周期CPU采样T0和T1的输入电平。
若前一个机器周期采样值为高,下一个机器周期采样值为低,则计数器加1。
由于检测一个1至0的跳变需要二个机器周期,故最高计数频率为振荡频率的二十四分之一。
7.5利用8XX51的T0计数。
每计10个脉冲,P1.0变反一次,用查询和中断两种方式编程。
使用方式2,计数初值C=100H—0AH=F6H查询方式:ORG 0000HMOV TMOD,#06HMOV TH0,#0F6HMOV TL0,#0F6HSETB TR0ABC:JNB TF0,$CLR TF0CPL P1.0SJMP ABC中断方式:ORG 0000HAJMP MAINORG 0000BHCPL P1.0RETIMAIN:MOV TMOD,#06HMOV THO,#0F6HSETB EASETB ET0SETB TR0SJMP $7.7已知8XX51单片机系统时钟频率为6MHz,利用定时器T0使P1.2每隔350us,输出一个50us脉宽的正脉冲。
解:fosc=6MHz,MC=2us,方式2的最大定时为512us,合乎题目的要求。
50us时,计数初值为C1=256-25=E7H,350us时,计数初值为C2=256-175=51HORG 0000HMOV TMOD,#02HNEXT:MOV TH0,#51HMOV TL0,51HCLR P1.2SETB TR0AB1:JBC TF0,EXTSJMP AB1EXT:SETB P1.2MOV TH0,#0E7HMOV TL0,#0E7HAB2:JBC TF0,NEXTSJMP AB27.9设系统时钟频率为6MHz,试用定时器T0作为外部计数器,编程实现每计到1000个脉冲后,使T1定时2ms,然后T0又开始计数,这样反复循环。
1.控制器有哪几种控制方式?各有何特点?解:控制器的控制方式可以分为3种:同步控制方式、异步控制方式和联合控制方式。
同步控制方式的各项操作都由统一的时序信号控制,在每个机器周期中产生统一数目的节拍电位和工作脉冲。
这种控制方式设计简单,容易实现;但是对于许多简单指令来说会有较多的空闲时间,造成较大数量的时间浪费,从而影响了指令的执行速度。
异步控制方式的各项操作不采用统一的时序信号控制,而根据指令或部件的具体情况决定,需要多少时间,就占用多少时间。
异步控制方式没有时间上的浪费,因而提高了机器的效率,但是控制比较复杂。
联合控制方式是同步控制和异步控制相结合的方式。
2.什么是三级时序系统?解:三级时序系统是指机器周期、节拍和工作脉冲。
计算机中每个指令周期划分为若干个机器周期,每个机器周期划分为若干个节拍,每个节拍中设置一个或几个工作脉冲。
3.控制器有哪些基本功能?它可分为哪几类?分类的依据是什么?解:控制器的基本功能有:(1)从主存中取出一条指令,并指出下一条指令在主存中的位置。
(2)对指令进行译码或测试,产生相应的操作控制信号,以便启动规定的动作。
(3)指挥并控制CPU 、主存和输入输出设备之间的数据流动。
控制器可分为组合逻辑型、存储逻辑型、组合逻辑与存储逻辑结合型3类,分类的依据在于控制器的核心———微操作信号发生器(控制单元CU)的实现方法不同。
4.中央处理器有哪些功能?它由哪些基本部件所组成?解:从程序运行的角度来看,CPU 的基本功能就是对指令流和数据流在时间与空间上实施正确的控制。
对于冯? 诺依曼结构的计算机而言,数据流是根据指令流的操作而形成的,也就是说数据流是由指令流来驱动的。
5.中央处理器中有哪几个主要寄存器?试说明它们的结构和功能。
解:CPU 中的寄存器是用来暂时保存运算和控制过程中的中间结果、最终结果及控制、状态信息的,它可分为通用寄存器和专用寄存器两大类。
通用寄存器可用来存放原始数据和运算结果,有的还可以作为变址寄存器、计数器、地址指针等。
第一章1.设计现代OS的主要目标是什么?答:(1)有效性(2)方便性(3)可扩充性(4)开放性2.OS的作用可表现在哪几个方面?答:(1)OS作为用户与计算机硬件系统之间的接口(2)OS作为计算机系统资源的管理者(3)OS实现了对计算机资源的抽象3.为什么说OS实现了对计算机资源的抽象?答:OS首先在裸机上覆盖一层I/O设备管理软件,实现了对计算机硬件操作的第一层次抽象;在第一层软件上再覆盖文件管理软件,实现了对硬件资源操作的第二层次抽象。
OS 通过在计算机硬件上安装多层系统软件,增强了系统功能,隐藏了对硬件操作的细节,由它们共同实现了对计算机资源的抽象。
4.试说明推动多道批处理系统形成和发展的主要动力是什么?答:主要动力来源于四个方面的社会需求与技术发展:(1)不断提高计算机资源的利用率;(2)方便用户;(3)器件的不断更新换代;(4)计算机体系结构的不断发展。
5.何谓脱机I/O和联机I/O?答:脱机I/O 是指事先将装有用户程序和数据的纸带或卡片装入纸带输入机或卡片机,在外围机的控制下,把纸带或卡片上的数据或程序输入到磁带上。
该方式下的输入输出由外围机控制完成,是在脱离主机的情况下进行的。
而联机I/O方式是指程序和数据的输入输出都是在主机的直接控制下进行的。
6.试说明推动分时系统形成和发展的主要动力是什么?答:推动分时系统形成和发展的主要动力是更好地满足用户的需要。
主要表现在:CPU 的分时使用缩短了作业的平均周转时间;人机交互能力使用户能直接控制自己的作业;主机的共享使多用户能同时使用同一台计算机,独立地处理自己的作业.7.实现分时系统的关键问题是什么?应如何解决?答:关键问题是当用户在自己的终端上键入命令时,系统应能及时接收并及时处理该命令,在用户能接受的时延内将结果返回给用户.解决方法:针对及时接收问题,可以在系统中设置多路卡,使主机能同时接收用户从各个终端上输入的数据;为每个终端配置缓冲区,暂存用户键入的命令或数据。
1.1-1.26qufac dikjo wpnry slgxz tbhme v1.27-1.44jbfji edgcj dcjbf haa3.1、1: t0=02: t1=13: if (a0<t1) t2=1; else t2=04: if (t2= =0) goto finish5: t0=t0+t16: t1=t1+27: jump to loop8: v0=t03.2、Find the element which appears most times, $v0 stores the the maxium number of theidentical integer in the array, $v1 stores its value.3.4、addi $t0,$t1,1003.5、lui $t1,61addi $t1,$t1,2304lw $t2,11($t1)add $t2,$t2,$t0sw $t2,10($t1)3.6、Loop: lw $v1, 0($a0)sw $v1, 0($a1)addi $a0, $a0, 4addi $a1, $a1, 4beq $v1, $zero, Endaddi $v0, $v0, 1j LoopEnd:3.7、1: I format,3: I format,4: I format,5: I format,6: I format,3.8、v0=0;v1=a0;v0++;a1=v1;a0++;a1++;if(v1= =0) goto loop;v0--;3.9、bne $t0,$s5,exitloop: add $t1,$s3,$s3add $t1,$t1,$t1add $s3,$s3,$s6lw $t0,0(t1)beq $t0,$s5,loop exit:3.11、slti $t5,$t0,1bne $t0,1,exitloop: addi $t0,$zero,0add $t4,$t0,$t0add $t4,$t4,$t4lw $t1,0($a0)add $t2,$t4,$t1add $t3,$a1,$t1sw $t2,0($t3)addi $t0,$t0,1slti $t5,$t0,101beq $t5,1,loopexit:3.23、loop: addi $t0,$zero,98lb $t1,0($a0)addi $a0,$a0,1beq $t1,$zero,exitbne $t1,$t0,loopbeq $t1,$t0,nextsub $v0,$a0,1exit: add $v0,$zero,$zeronext:3.24、bcount: addi $sp,$sp,-12sw $ra,8($sp)sw $a0,4($sp)sw $s0,0($sp)add $s0,$zero,$zeroNext: jal bfindadd $a0,$v0,$zerolb $t0,0($a0)beq $t0,$zero,End #encounter nulladdi $s0,$s0,1addi $v0,$v0,1j NextEnd: add $v0,$s0,$zerolw $s0,0($sp)lw $a0,4($sp)lw $ra,8($sp)addi $sp,$sp,12jr $ra4.1、000000000000000000000010000000004.2、111111111111111111111100000000014.4、-5004.5、-14.6、21474836474.10、loop: sub $t3,$zero,$t3slt $t0,$t3,$zerobeq $t0,$zero,loopadd $t2,$t3,$zero how to use 3 instructions?4.13、If A_lower is positive, A_upper_adjusted equals to A_upper.If A_lower is negative, A_upper_adjusted equals to A_upper+1.4.17、addu $t0, $t3,$t4sltu $t2,$t0,$t34.22、srl $t0,$s0,8andi $s1,$t0,40954.23、when it overflew , set should be converted .4.40、xor $s0,$s0,$s1xor $s1,$s1,$s0xor $s0,$s0,$s14.46、ripple carry c1=a0*c0+b0*c0+a0*b0 2Tc2=a1*c1+b1*c1+a1*b1 4Tc3=a2*c2+b2*c2+a2*b2 6TThe worst case : c4=a3*c3+b3*c3+a3*b3 8TCarry look ahead : gi=ai*bi T pi=ai+bi Tc1=c2=c3=c4=3T4.53、4.54、step1 6.42*101=0.642*102step2 9.51*102+0.642*102=10.152*102step3 10.152*102=1.0152*102step4 1.0152*103 is rounded to three significant digits 1.015*1034.55、6.42X101=0.642X1020.642+9.51=10.1526.42X101+9.51X102=10.152X102=1.0152X103so the answer is 1.02X1035.1、RegDst=0 lw sw and branchAluSrc=0 R-format beqMemtoReg=0 R-format sw and beqZero=0 R-format sw and lw5.2、RegDst=1 R-format sw and beqAluSrc=1 lw and swMemtoReg=1 lw sw and beqZero=1 R-format lw and sw5.6、修改两个信号:MemtoReg: 00 :Alu result01 :From Mem data10 :PC+4RegDst: 00 : Instruction[20-16]01 :Instruction[15-11]10 :$ra寄存器5.8、lw $t0 ,$t1,$t25.14、P374页图Instruction a b cR-formatlwswbeqjlongest8 10 10time5.165.17、5.22、jr rsIt is an R-type instruction.So the changes can be made like following .5.24、M1=5*22%+4*11%+4*49%+3*16%+3*2%=4.04M2=4*22%+4*11%+3*49%+3*16%+3*2%=3.33M3=3*22%+3*11%+3*49%+3*16%+3*2%=3So the CPU excution time isT1=CPI*Clockcycletime=4.04/(500*106 )=8.08nsT2=3.33/(400*106 )=8.325nsT3=3/(250*106 )=12nsHence M1 is the fastest machine.5.26、beq $t3,$zero,Exitadd $t3,$t3,$t3add $t3,$t3,$t3 #get 4*$t3add $t3,$t3,$t2 #caculate the address of destination[$t3] loop: lw $t4,0($t1)sw $t4,0($t2)addi $t1,$t1,4addi $t2,$t2,4bne $t2,$t3,loopExit:branch 3 lw 5 and the rest are 4The number of executed instructions is 4+5*100=504The nmber of cycles is3+3*4+(5+4*3+3)*100=20155.27、1. According to the figure above there will be two changes.1>Extend the multiplexor for ALUSrcA by adding ALUout to it .We mark it with 102> We add a multiplexor between B and Memory write data ,connect memory dataregister with the multiplexor and mark it with 1.The multi is controled by the ]signal bcp.2. By making these changes ,we can directly increase the address $t1,$t2,in ALUout by 4When the memory data loading from $t1is read into memory data register, we canquickly write it into memory by setting bcp to 0.3. By estination ,we can cut down clock cycles distinctively by implementing theinstruction in hardware above .The performance increase comes from adding internal registers.7.7、7.8、7.9、212*(32*4+16+1)=580Kb7.11、a. 1+16*10+16*1=177 clock cyclesb. 1+4*10+4*1=45 clock cyclesc. 1+4*10+16*1=57 clock cycles7.12、The CPI of a is 1.2+0.5%*177=2.085The CPI of b is 1.2+0.5%*45=1.425The CPI of c is 1.2+0.5%*57=1.485The processor using wide memory is 2.085/1,425=1.46 times faster than using nerrowand 1.04 times faster than the one using interleaved memories.7.15、AMAT=(1+0.05*20)*2ns=4ns7.20、7.22、7.24、The number of sets in the cache: S/ABThe number of index bits in the address: log2(S/AB)The number of bits needed to implement the cache : Tag =k- log2(S/AB)-log2B7.27、Cache1: X+(4%+0.5*8%)*7=2So,X=1.44Cache2: 1.44+(2%+0.5*5%)*10=1.85Cache3: 1.44+(2%+0.5*4%)*10=1.84Thus,machine1spemds the most cycles on cache mises.7.32、Page size is 16-KB=214B240/214=226Total size of bits 226*(36-14+4)=208MB7.33、Virtual addressCache hit8.1 A 200 1000/5B 150 750/58.2 (1)n*5*(1/1000)+n*(1/10)*(20/1000)=1 n=142(2)5*n*(1/750)+500/5*(1/10)*18*(1/1000)+(5n-500)/5/5/10*25/1000 =1 n=1168.3 7和8距离近的那张图,原因是路程短8.10 a=1+19.7ms/5ns+2+2=3.9*10^6 cyclesb=3.94*10^6*128/4=1.26*10^8cycles) 32/b=50.798/a=12.750.79 12.78.18 17.84。
计算机组成原理答案第一章计算机系统概论1.比较数字计算机和模拟计算机的特点。
解:模拟计算机的特点:数值由连续量来表示,运算过程是连续的;数字计算机的特点:数值由数字量(离散量)来表示,运算按位进行。
两者主要区别见P1 表1.1。
2.数字计算机如何分类?分类的依据是什么?解:分类:数字计算机分为专用计算机和通用计算机。
通用计算机又分为巨型机、大型机、中型机、小型机、微型机和单片机六类。
分类依据:专用和通用是根据计算机的效率、速度、价格、运行的经济性和适应性来划分的。
通用机的分类依据主要是体积、简易性、功率损耗、性能指标、数据存储容量、指令系统规模和机器价格等因素。
4.冯. 诺依曼型计算机的主要设计思想是什么?它包括哪些主要组成部分?解:冯. 诺依曼型计算机的主要设计思想是:存储程序和程序控制。
存储程序:将解题的程序(指令序列)存放到存储器中;程序控制:控制器顺序执行存储的程序,按指令功能控制全机协调地完成运算任务。
主要组成部分有:(控制器、运算器)(CPU的两部分组成)、存储器、输入设备、输出设备(I/O设备)。
5.什么是存储容量?什么是单元地址?什么是数据字?什么是指令字?解:存储容量:指存储器可以容纳的二进制信息的数量,通常用单位KB、MB、GB来度量,存储容量越大,表示计算机所能存储的信息量越多,反映了计算机存储空间的大小。
单元地址:简称地址,在存储器中每个存储单元都有唯一的地址编号,称为单元地址。
数据字:若某计算机字是运算操作的对象即代表要处理的数据,则称数据字。
指令字:若某计算机字代表一条指令或指令的一部分,则称指令字。
6.什么是指令?什么是程序?解:指令:计算机所执行的每一个基本的操作。
程序:解算某一问题的一串指令序列称为该问题的计算程序,简称程序。
7.指令和数据均存放在内存中,计算机如何区分它们是指令还是数据?解:一般来讲,在取指周期中从存储器读出的信息即指令信息;而在执行周期中从存储器中读出的信息即为数据信息。
第一章计算机系统概论p.191。
1 什么是计算机系统、计算机硬件和计算机软件?硬件和软件哪个更重要?计算机系统:计算机硬件、软件和数据通信设备的物理或逻辑的综合体计算机硬件:计算机的物理实体计算机软件:计算机运行所需的程序及相关资料硬件和软件在计算机系统中相互依存,缺一不可,因此同样重要1.2如何理解计算机系统的层次结构?实际机器M1向上延伸构成了各级虚拟机器,机器M1内部也可向下延伸而形成下一级的微程序机器M0,硬件研究的主要对象归结为传统机器M1和微程序机器M0,软件研究对象主要是操作系统及以上的各级虚拟机1。
3说明高级语言、汇编语言和机器语言的差别及其联系.机器语言是可以直接在机器上执行的二进制语言汇编语言用符号表示指令或数据所在存储单元的地址,使程序员可以不再使用繁杂而又易错的二进制代码来编写程序高级语言对问题的描述十分接近人们的习惯,并且还具有较强的通用性1。
4如何理解计算机组成和计算机体系结构?计算机体系结构是对程序员可见的计算机系统的属性计算机组成对程序员透明,如何实现计算机体系结构所体现的属性1.5冯·诺依曼计算机的特点是什么?由运算器、控制器、存储器、输入设备、输出设备五大部件组成指令和数据以同一形式(二进制形式)存于存储器中指令由操作码、地址码两大部分组成指令在存储器中顺序存放,通常自动顺序取出执行以运算器为中心(原始冯氏机)1。
6画出计算机硬件组成框图,说明各部件的作用及计算机硬件的主要技术指标。
计算机硬件各部件运算器:ACC, MQ, ALU, X控制器:CU, IR,PC主存储器:M,MDR, MARI/O设备:设备,接口计算机技术指标:机器字长:一次能处理数据的位数,与CPU的寄存器位数有关存储容量:主存:存储单元个数×存储字长运算速度:MIPS, CPI, FLOPS1。
7解释概念主机:计算机硬件的主体部分,由CPU+MM(主存或内存)组成CPU:中央处理器,是计算机硬件的核心部件,由运算器+控制器组成主存:计算机中存放正在运行的程序和数据的存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成存储单元:可存放一个机器字并具有特定存储地址的存储单位存储元件/存储基元/存储元:存储一位二进制信息的物理元件,是存储器中最小的存储单位,不能单独存取存储字:一个存储单元所存二进制代码的逻辑单位存储字长:一个存储单元所存二进制代码的位数存储容量:存储器中可存二进制代码的总量机器字长:CPU 能同时处理的数据位数指令字长:一条指令的二进制代码位数1.8解释英文代号CPU:Central Processing UnitPC:Program CounterIR: Instruction RegisterCU: Control UnitALU: Arithmetic Logic UnitACC:AccumulatorMQ: Multiplier—Quotient RegisterX:操作数寄存器MAR: Memory Address RegisterMDR:Memory Data RegisterI/O: Input/OutputMIPS: Million Instructions Per SecondCPI: Cycle Per InstructionFLOPS:Floating-point Operation Per Second1。
1、如图1表示使用快表(页表)的虚实地址转换条件,快表存放在相联存贮器中,其中容量为8个存贮单元。
问:(1)当CPU 按虚拟地址1去访问主存时,主存的实地址码是多少?(2)当CPU 按虚拟地址2去访问主存时,主存的实地址码是多少?(3)当CPU 按虚拟地址3去访问主存时,主存的实地址码是多少?页号该页在主存中的起始地址虚拟地址页号页内地址33 25 7 6 4 15 5 30420003800096000600004000080000500007000012315 03247 012848 0516 图1解:(1)用虚拟地址为1的页号15作为快表检索项,查得页号为15的页在主存中的起始地址为80000,故将80000与虚拟地址中的页内地址码0324相加,求得主存实地址码为80324。
(2)主存实地址码= 96000 + 0128 = 96128(3)虚拟地址3的页号为48,当用48作检索项在快表中检索时,没有检索到页号为48的页面,此时操作系统暂停用户作业程序的执行,转去执行查页表程序。
如该页面在主存中,则将该页号及该页在主存中的起始地址写入主存;如该页面不存在,则操作系统要将该页面从外存调入主存,然后将页号及其在主存中的起始地址写入快表。
2、假设某计算机的运算器框图如图2所示,其中ALU为16位的加法器,S A 、S B为16位暂存器,4个通用寄存器由D触发器组成,Q端输出,其读写控制如下表所示:读控制写控制R0 RA0RA1 选择W WA0WA1 选择1 1 1 1 0 011x11xR0R1R2R3不读出111111x11xR0R1R2R3不写入要求:(1)设计微指令格式。
(2)画出ADD,SUB两条指令微程序流程图。
图2解:(1)微命令字段共12位,微指令格式如下:1 2 1 2 1 1 1 1 1 1R RA0RA1 w WA0W A1 LDS A LDS B S B->ALU CLR ~ P字段下址字段各字段意义如下:R—通用寄存器读命令W—通用寄存器写命令.RA0RA1—读R0—R3的选择控制。
计算机组成原理(第三版)课后答案计算机是⼀种能⾃动地、⾼速地对各种数字化信息进⾏运算处理的电⼦设备。
1.2冯诺依曼计算机体系结构的基本思想是存储程序,也就是将⽤指令序列描述的解题程序与原始数据⼀起存储到计算机中。
计算机只要⼀启动,就能⾃动地取出⼀条条指令并执⾏之,直⾄程序执⾏完毕,得到计算结果为⽌。
按此思想设计的计算机硬件系统包含:运算器、控制器、存储器、输⼊设备和输出设备。
各部分的作⽤见教材:P10—P121.3计算机的发展经历了四代。
第⼀代:见教材P1第⼆代:见教材P2第三代:见教材P2第四代:见教材P21.4系统软件定义见教材:P12—13,应⽤软件定义见教材:P121.5见教材:P14—151.6见教材:P111.7见教材:P6—81.8硬件定义见教材:P9软件定义见教材:P12固件定义见教材:P131.91)听觉、⽂字、图像、⾳频、视频2)图像、声⾳、压缩、解压、DSP1.10处理程度按从易到难是:⽂本→图形→图像→⾳频→视频27/64=00011011/01000000=0.0110110=0.11011×2-1规格化浮点表⽰为:[27/64]原=101,011011000[27/64]反=110,011011000[27/64]补=111,011011000[27/64]反=110,100100111[27/64]补=111,1001010002.3 模为:29=10000000002.4 不对,8421码是⼗进制的编码2.5浮点数的正负看尾数的符号位是1还是0浮点数能表⽰的数值范围取决于阶码的⼤⼩。
浮点数数值的精确度取决于尾数的长度。
2.61)不⼀定有N1>N2 2)正确2.7 最⼤的正数:0111 01111111 ⼗进制数:(1-2-7)×27最⼩的正数:1 ⼗进制数:2-7×2-7最⼤的负数:1 ⼗进制数:--2-7×2-7最⼩的负数:0111 10000001 ⼗进制数:--(1-2-7)×272.81)[x]补=00.1101 [y]补=11.0010[x+y]补=[x]补+[y]补=11.1111⽆溢出x+y= -0.0001[x]补=00.1101 [--y]补=00.1110[x-y]补=[x]补+[--y]补=01.1011 正向溢出2)[x]补=11.0101 [y]补=00.1111[x+y]补=[x]补+[y]补=00.0100 ⽆溢出x+y= 0.0100[x]补=11.0101 [--y]补=11.0001[x-y]补=[x]补+[--y]补=10.0110 负向溢出3) [x]补=11.0001 [y]补=11.0100[x+y]补=[x]补+[y]补=10.0101 负向溢出[x]补=11.0001 [--y]补=00.1100[x-y]补=[x]补+[--y]补=11.1101 ⽆溢出X-y=-0.00112.91)原码⼀位乘法|x|=00.1111 |y|=0.1110部分积乘数y n00.0000 0.1110+00.000000.0000+00.111100.11110→00.011110 0.11+00.111101.011010→00.1011010 0.1+00.111101.1010010→00.11010010P f=x f⊕y f=1 |p|=|x|×|y|=0.11010010所以[x×y]原=1.11010010补码⼀位乘法[x]补=11.0001 [y]补=0.1110 [--x]补=11.0001 部分积y n y n+1 00.0000 0.11100→00.00000 0.1110+00.111100.11110→00.011110 0.111→00.0011110 0.11→00.0 0.1+11.000111.00101110[x×y]补=11.001011102)原码⼀位乘法|x|=00.110 |y|=0.010部分积乘数y n00.000 0.010+00.00000.000→00.0000 0.01+00.11000.1100→00.01100 0.0+00.00000.01100 0所以[x×y]原=0.001100补码⼀位乘法[x]补=11.010 [y]补=1.110 [--x]补=00.110部分积y n y n+100.000 1.1100→00.0000 1.110+00.11000.1100→00.01100 1.11→00.001100 1.1所以[x×y]补=0.0011002.101)原码两位乘法|x|=000.1011 |y|=00.0001 2|x|=001.0110部分积乘数 c000.0000 00.00010+000.1011000.1011→000.001011 0.000→000.00001011 00.0P f=x f⊕y f=1 |p|=|x|×|y|=0.00001011所以[x×y]原=1.00001011补码两位乘法[x]补=000.1011 [y]补=11.1111 [--x]补=111.0101部分积乘数y n+1000.0000 11.11110+111.0101111.0101→111.110101 11.111→111.11110101 11.1所以[x×y]补=111.11110101 x×y=--0.000010112)原码两位乘法|x|=000.101 |y|=0.111 2|x|=001.010 [--|x| ]补=111.011 部分积乘数 c 000.000 0.1110+111.011111.011→111.11011 0.11+001.010→000.100011P f=x⊕y f=0 |p|=|x|×|y|=0.100011所以[x×y]原=0.100011补码两位乘法[x]补=111.011 [y]补=1.001 [--x]补=000.101 2[--x]补=001.010 部分积乘数y n+1 000.000 1.0010+111.011111.011→111.111011 1.00+001.010001.00011→000.100011所以[x×y]补=0.1000112.111) 原码不恢复余数法|x|=00.1010 |y|=00.1101 [--|y| ]补=11.0011部分积商数00.1010+11.0011←11.1010+00.110100.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←01.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]原=0.1100 余数[r]原=0.0100×2—4补码不恢复余数法[x]补=00.1010 [y]补=00.1101 [--y]补=11.0011 部分积商数00.101000.0111 0.1←00.1110+11.001100.0001 0.11←00.0010+11.001111.0101 0.110←10.1010+00.110111.0111 0.1100+00.110100.0100所以[x/y]补=0.1100 余数[r]补=0.0100×2—42)原码不恢复余数法|x|=00.101 |y|=00.110 [--|y| ]补=11.010 部分积商数00.101+11.01011.111 0←11.110+00.11000.100 0.1←01.000+11.01000.010 0.11←00.100+11.01011.110 0.110+00.11000. 100所以[x/y]原=1.110 余数[r]原=1.100×2—3补码不恢复余数法[x]补=11.011 [y]补=00.110 [--y]补=11.010 部分积商数11.01111.100 1.0←11.000+00.11011.110 1.00←11.100+00.11000.010 1.001+11.01011.100所以[x/y]补=1.001+2—3=1.010 余数[r]补=1.100×2—32.121)[x]补=21101×00.100100 [y]补=21110×11.100110⼩阶向⼤阶看齐:[x]补=21110×00.010010求和:[x+y]补=21110×(00.010010+11.100110)=21110×11.111000 [x-y]补=21110×(00.010010+00.011010)=21110×00.101100 规格化:[x+y]补=21011×11.000000 浮点表⽰:1011,11.000000规格化:[x-y]补=21110×00.101100 浮点表⽰:1110,0.101100 2)[x]补=20101×11.011110 [y]补=20100×00.010110⼩阶向⼤阶看齐:[y]补=20101×00.001011求和:[x+y]补=20101×(11.011110+00.001011)=20101×11.101001 [x-y]补=20101×(11.011110+11.110101)=20101×00.010011 规格化:[x+y]补=21010×11.010010 浮点表⽰:1010,11. 010010规格化:[x-y]补=21010×00.100110 浮点表⽰:1010,00.1001102.13见教材:P702.141)1.0001011×262)0.110111*×2-62.151)串⾏进位⽅式C1=G1+P1C0G1=A1B1,P1=A1⊕B1C2=G2+P2C1G2=A2B2,P2=A2⊕B2C3=G3+P3C2G3=A3B3,P3=A3⊕B3C4=G4+P4C3G4=A4B4,P4=A4⊕B4C2=G2+P2G1+P2P1C0C3=G3+P3G2+P3P2G1+P3P2P1C0C4= G4+P4G3+P4P3G2+P4P3P2G1+P4P3P2P1C02.16参考教材P62 32位两重进位⽅式的ALU和32位三重进位⽅式的ALU 2.17C n“1”“1”3.1见教材:P79 3.2 见教材:P833.3与SRAM 相⽐,DRAM 在电路组成上有以下不同之处:1)地址线的引脚⼀般只有⼀半,因此,增加了两根控制线RAS 、CAS ,分别控制接受⾏地址和列地址。
什么叫机器指令什么叫指令系统为什么说指令系统与机器指令的主要功能以及与硬件结构之间存在着密切的关系机器指令:是CPU能直接识别并执行的指令,它的表现形式是二进制编码。
机器指令通常由操作码和操作数两部分组成。
指令系统:计算机所能执行的全部指令的集合,它描述了计算机内全部的控制信息和“逻辑判断”能力。
指令系统是计算机硬件和软件的接口部分,是全部机器指令的集合。
什么叫寻址方式为什么要学习寻址方式寻址方式:指确定本条指令的数据地址以及下一条将要执行的指令地址的方法,它与硬件结构紧密相关,而且直接影响指令格式和指令功能。
学习寻址方式,是为了找到指令中参与操作的数据,然后根据指令,得出结果。
什么是指令字长、机器字长和存储字长指令字长:是指机器指令中二进制代码的总位数。
指令字长取决于从操作码的长度、操作数地址的长度和操作数地址的个数。
不同的指令的字长是不同的。
机器字长:是指计算机进行一次整数运算所能处理的二进制数据的位数(整数运算即定点整数运算)。
机器字长也就是运算器进行定点数运算的字长,通常也是CPU内部数据通路的宽度。
即字长越长,数的表示范围也越大,精度也越高。
机器的字长也会影响机器的运算速度。
存储字长:一个存储单元存储一串二进制代码(存储字),这串二进制代码的位数称为存储字长,存储字长可以是8位、16位、32位等。
某指令系统字长为16位,地址码取4位,提出一种方案,使该指令系统有8条三地址指令、16条二地址指令、100条一地址指令。
解:三地址指令格式如下:4 4 4 4OP A1 A2 A3指令操作码分配方案如下:4位OP0000,……,A1,A2,A3:8条三地址指令0111,1000,0000,……,……,A2,A3:16条二地址指令1000,1111,1001,0000,0000,……,……,……,A3:100条一地址指令1001,0110,0011,1001,0110,0100,……,……,……,冗余编码1001,1111,1111,可用来扩充一、零地址指令条数1010,……,冗余编码1111,可用来扩充三、二、一、零地址指令条数设指令字长为16位,采用扩展操作码技术,每个操作数的地址为6位。
c程序设计第三版课后答案完整版C程序设计第三版课后答案完整版C程序设计是一门基础而重要的计算机科学课程,它不仅教授编程语言本身,还涵盖了程序设计的基本概念和技巧。
第三版的教材在内容上进行了更新和扩充,以适应现代编程教育的需求。
以下是基于第三版C 程序设计教材的课后答案完整版,供同学们参考学习。
第一章:C语言概述1. C语言的历史和特点- C语言由Dennis Ritchie在1972年开发,用于UNIX操作系统。
- 特点包括跨平台、高效、灵活、可移植。
2. C语言的基本组成- C程序由函数、变量、表达式和控制语句组成。
3. C程序的编写和运行过程- 编写源代码,编译,链接,生成可执行文件,运行。
第二章:数据类型、运算符和表达式1. 基本数据类型- 整型(int)、浮点型(float)、双精度型(double)、字符型(char)。
2. 变量声明和初始化- 使用类型说明符声明变量,初始化赋予初值。
3. 运算符- 算术运算符、关系运算符、逻辑运算符、位运算符等。
4. 表达式- 表达式由操作数和运算符组成,用于计算结果。
第三章:控制语句1. 条件语句- if语句、switch语句。
2. 循环语句- while循环、do-while循环、for循环。
3. 跳转语句- break语句、continue语句、return语句、goto语句。
第四章:函数1. 函数的定义和声明- 函数由返回类型、函数名、参数列表和函数体组成。
2. 函数的调用- 调用函数时,需要传递参数并接收返回值。
3. 函数的作用域和生命周期- 局部变量的作用域仅限于函数内部,全局变量可在程序中多处访问。
第五章:数组和字符串1. 数组的基本概念- 存储相同类型元素的集合。
2. 字符串的操作- 字符串是字符数组,以空字符'\0'结尾。
3. 常用字符串处理函数- strcpy、strcat、strlen、strcmp等。
第六章:指针1. 指针的基本概念- 指针变量存储另一个变量的地址。