计算机组成原理作业参考答案1.docx
《计算机组成原理作业参考答案1.docx》由会员分享,可在线阅读,更多相关《计算机组成原理作业参考答案1.docx(13页珍藏版)》请在冰点文库上搜索。
![计算机组成原理作业参考答案1.docx](https://file1.bingdoc.com/fileroot1/2023-5/22/eb544aeb-9b02-4e02-b4cb-c0c07326d15f/eb544aeb-9b02-4e02-b4cb-c0c07326d15f1.gif)
计算机组成原理作业参考答案1
第1章电脑系统概论
5.冯•诺依曼电脑的特点是什么?
解:
冯•诺依曼电脑的特点是:
P8
(1)电脑由运算器、控制器、存储器、输入设备、输出设备五大部件组成;
(2)指令和数据以同同等地位存放于存储器内,并可以按地址访问;
(3)指令和数据均用二进制表示;
(4)指令由操作码、地址码两大部分组成,操作码用来表示操作的性质,地址码用来表示操作数在存储器中的位置;
(5)指令在存储器中顺序存放,通常自动顺序取出执行;
(6)机器以运算器为中心〔原始冯•诺依曼机〕。
7.解释以下概念:
主机、CPU、主存、存储单元、存储元件、存储基元、存储元、存储字、存储字长、存储容量、机器字长、指令字长。
解:
课本P9-10
(1)主机:
是电脑硬件的主体部分,由CPU和主存储器MM合成为主机。
(2)CPU:
中央处理器,是电脑硬件的核心部件,由运算器和控制器组成;〔早期的运算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了Cache〕。
(3)主存:
电脑中存放正在运行的程序和数据的存储器,为电脑的主要工作存储器,可随机存取;由存储体、各种逻辑部件及控制电路组成。
(4)存储单元:
可存放一个机器字并具有特定存储地址的存储单位。
(5)存储元件:
存储一位二进制信息的物理元件,是存储器中最小的存储单位,又叫存储基元或存储元,不能单独存取。
(6)存储字:
一个存储单元所存二进制代码的逻辑单位。
(7)存储字长:
一个存储单元所存储的二进制代码的总位数。
(8)存储容量:
存储器中可存二进制代码的总量;〔通常主、辅存容量分开描述〕。
(9)机器字长:
指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。
(10)指令字长:
机器指令中二进制代码的总位数。
8.解释以下英文缩写的中文含义:
CPU、PC、IR、CU、ALU、ACC、MQ、X、MAR、MDR、I/O、MIPS、CPI、FLOPS
解:
全面的答复应分英文全称、中文名、功能三部分。
(1)CPU:
CentralProcessingUnit,中央处理机〔器〕,是电脑硬件的核心部件,主要由运算器和控制器组成。
(2)PC:
ProgramCounter,程序计数器,其功能是存放当前欲执行指令的地址,并可自动计数形成下一条指令地址。
(3)IR:
InstructionRegister,指令寄存器,其功能是存放当前正在执行的指令。
(4)CU:
ControlUnit,控制单元〔部件〕,为控制器的核心部件,其功能是产生微操作命令序列。
(5)ALU:
ArithmeticLogicUnit,算术逻辑运算单元,为运算器的核心部件,其功能是进行算术、逻辑运算。
(6)ACC:
Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算结果的寄存器。
(7)MQ:
Multiplier-QuotientRegister,乘商寄存器,乘法运算时存放乘数、除法时存放商的寄存器。
(8)X:
此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运算器中工作寄存器之一,用来存放操作数;
(9)MAR:
MemoryAddressRegister,存储器地址寄存器,在主存中用来存放欲访问的存储单元的地址。
(10)MDR:
MemoryDataRegister,存储器数据缓冲寄存器,在主存中用来存放从某单元读出、或要写入某存储单元的数据。
(11)I/O:
Input/Outputequipment,输入/输出设备,为输入设备和输出设备的总称,用于电脑内部和外界信息的转换与传送。
(12)MIPS:
MillionInstructionPerSecond,每秒执行百万条指令数,为电脑运算速度指标的一种计量单位。
补充题.什么是摩尔定律?
该定律是否永远生效?
为什么?
答:
P23,否,P36
第四章存储器〔海明码〕
17.写出1100、1110对应的汉明码。
解:
有效信息为n=4位,假设有效信息用b4b3b2b1表示,
根据2k≥n+k+1,得校验位位数k=3位。
设校验位分别为C1、C2、C3,则汉明码共4+3=7位,即:
C1C2b4C3b3b2b1。
校验位在汉明码中分别处于第1、2、4位,按照配偶原有:
C1=3⊕5⊕7=b4⊕b3⊕b1〔公式一定要有〕
C2=3⊕6⊕7=b4⊕b2⊕b1
C3=5⊕6⊕7=b3⊕b2⊕b1
当有效信息为1100时,C3C2C1=110,汉明码为0111100。
当有效信息为1110时,C3C2C1=000,汉明码为0010110。
18.已知收到的汉明码〔按配偶原则配置〕为1100111、1100001,检查上述代码是否出错?
第几位出错?
解:
假设接收到的汉明码为:
C1’C2’b4’C3’b3’b2’b1’
纠错过程如下:
P1=1⊕3⊕5⊕7=C1’⊕b4’⊕b3’⊕b1’〔公式一定要有〕
P2=2⊕3⊕6⊕7=C2’⊕b4’⊕b2’⊕b1’
P3=4⊕5⊕6⊕7=C3’⊕b3’⊕b2’⊕b1’
如果收到的汉明码为1100111,则P3P2P1=111,说明代码有错,第7位〔b1’〕出错,有效信息为:
0110
如果收到的汉明码为1100001,则P3P2P1=100,说明代码有错,第4位〔C3’〕出错,有效信息为:
0001
19.已经接收到以下汉明码,分别写出它们所对应的欲传送代码。
〔3〕1101001〔按偶性配置〕
〔6〕1110001〔按奇性配置〕
解:
〔一〕假设接收到的汉明码为C1’C2’b4’C3’b3’b2’b1’,按偶性配置则:
P1=C1’⊕b4’⊕b3’⊕b1’〔公式一定要有〕
P2=C2’⊕b4’⊕b2’⊕b1’
P3=C3’⊕b3’⊕b2’⊕b1’
〔3〕如接收到的汉明码为1101001,
P1=1⊕0⊕0⊕1=0
P2=1⊕0⊕0⊕1=0
P3=1⊕0⊕0⊕1=0
P3P2P1=000,传送无错,故欲传送的信息为0001。
〔二〕假设接收到的汉明码为C1’C2’b4’C3’b3’b2’b1’,按奇性配置则:
〔公式一定要有,一定要注意按奇配置,异或后再取非〕
〔6〕如接收到的汉明码为1110001,
P3P2P1=000,传送无错,故欲传送的信息为1001。
第6章电脑的运算方法
3.设x为整数,[x]补=1,x1x2x3x4x5,假设要求x<-16,试问x1~x5应取何值?
解:
根据正数〔或负数〕的补码数值位〔除符号位〕越小,则对应真值越小〔根据课本P225表6-1可得出上述规律〕。
因为[-16]补=1,10000,假设要x<-16,只需x1x2x3x4x5<10000,即x1=0,x2~x5任意即可。
4.设机器数字长为8位〔含1位符号位在内〕〔好多同学都没留意这个前提条件〕,写出对应以下各真值的原码、补码和反码。
-13/64,100
解:
真值与不同机器码对应关系如下:
真值
-13/64
100
二进制
1100100
原码
1.0011010
01100100
补码
0110
01100100
反码
0101
01100100
5.已知[x]补,求[x]原和x。
[x5]补=1,0101;[x7]补=0,0111〔注意正数的原、反、补码都相同〕
解:
[x]补与[x]原、x的对应关系如下:
[x]补
1,0101
0,0111
[x]原
1,1011
0,0111
x
-1011
+111
9.当十六进制数9B和FF分别表示为原码、补码、反码、移码和无符号数时,所对应的十进制数各为多少〔设机器数采用一位符号位〕?
解:
真值和机器数的对应关系如下:
9BH
10011011
原码
补码
反码
移码
无符号数
对应十进制数
-27
-101
-100
+27
155
FFH
11111111
原码
补码
反码
移码
无符号数
对应十进制数
-127
-1
-0
+127
255
10.在整数定点机中,设机器数采用1位符号位,写出±0的原码、补码、反码和移码,得出什么结论?
解:
0的机器数形式如下:
〔假定机器数共8位,含1位符号位在内〕
真值
原码
补码
反码
移码
+0
00000000
00000000
00000000
10000000
-0
10000000
00000000
11111111
10000000
结论:
0的原码和反码分别有+0和-0两种形式,补码和移码只有一种形式,且补码和移码数值位相同,符号位相反。
11.已知机器数字长为4位〔含1位符号位〕,写出整数定点机和小数定点机中原码、补码和反码的全部形式,并注明其对应的十进制真值。
〔补码比原码和反码多表示一个最小的负数,整数形式为1,000,而小数形式为1.000,此处的“1”有两层含义,一代表负数,二代表该位的权重为23或21〕
整数定点机
小数定点机
原码
补码
反码
真值
原码
补码
反码
真值
0,000
0,000
0,000
+0
+0
0,001
0,001
0,001
1
0,010
0,010
0,010
2
0,011
0,011
0,011
3
0,100
0,100
0,100
4
0,101
0,101
0,101
5
0,110
0,110
0,110
6
0,111
0,111
0,111
7
1,000
0,000
1,111
-0
-0
1,001
1,111
1,110
-1
1,010
1,110
1,101
-2
1,011
1,101
1,100
-3
1,100
1,100
1,011
-4
1,101
1,011
1,010
-5
1,110
1,010
1,001
-6
1,111
1,001
1,000
-7
无
1,000
无
-8
无
无
-1
12.设浮点数格式为:
阶码5位〔含1位阶符〕,尾数11位〔含1位数符〕。
写出51/128、7.375所对应的机器数。
要求如下:
〔1〕阶码和尾数均为原码。
〔2〕阶码和尾数均为补码。
〔3〕阶码为移码,尾数为补码。
解:
据题意画出该浮点数的格式:
阶符1位
阶码4位
数符1位
尾数10位
将十进制数转换为二进制:
x1=51/128=0.0110011B=2-1×0.110011B
x3=7.375=111.011B=23×
则以上各数的浮点规格化数为:
〔1〕[x1]浮=1,0001;0.1100110000
[x3]浮=0,0011;0.1110110000
〔2〕[x1]浮=1,1111;0.1100110000
[x3]浮=0,0011;0.1110110000
〔3〕[x1]浮=0,1111;0.1100110000
[x3]浮=1,0011;0.1110110000
14.设浮点数字长为32位,欲表示±6万间的十进制数,在保证数的最大精度条件下,除阶符、数符各取1位外,阶码和尾数各取几位?
按这样分配,该浮点数溢出的条件是什么?
解:
假设要保证数的最大精度,应取阶码的基值=2。
假设要表示±6万间的十进制数,由于32768〔215〕<6万<65536〔216〕,则:
阶码除阶符外还应取5位〔向上取2的幂〕。
故:
尾数位数=32-1-1-5=25位,则该浮点数格式如下:
阶符1位
阶码5位
数符1位
尾数25位
按此格式,该浮点数上溢的条件为:
阶码≥25
16.设机器数字长为16位,写出以下各种情况下它能表示的数的范围。
设机器数采用一位符号位,答案均用十进制表示。
〔1〕无符号数;
〔2〕原码表示的定点小数。
〔3〕补码表示的定点小数。
〔4〕补码表示的定点整数。
〔5〕原码表示的定点整数。
〔6〕浮点数的格式为:
阶码6位〔含1位阶符〕,尾数10位〔含1位数符〕。
分别写出其正数和负数的表示范围。
〔浮点数的表示范围可能有一定难度,在学习时假设理解不了,可放弃〕
〔7〕浮点数格式同〔6〕,机器数采用补码规格化形式,分别写出其对应的正数和负数的真值范围。
〔同上〕
解:
〔1〕无符号整数:
0~216-1,即:
0~65535;
无符号小数:
0~1-2-16,即:
0~0.99998;
〔2〕原码定点小数:
-1+2-15~1-2-15
〔3〕补码定点小数:
-1~1-2-15
〔4〕补码定点整数:
-215~215-1,即:
-32768~32767
〔5〕原码定点整数:
-215+1~215-1,即:
-32767~32767
〔6〕据题意画出该浮点数格式,当阶码和尾数均采用原码,非规格化数表示时:
最大负数=1,11111;1.000000001,即-2-92-31
最小负数=0,11111;1.111111111,即-〔1-2-9〕231
则负数表示范围为:
-〔1-2-9〕231~-2-92-31
最大正数=0,11111;0.111111111,即〔1-2-9〕231
最小正数=1,11111;0.000000001,即2-92-31
则正数表示范围为:
2-92-31~〔1-2-9〕231
〔7〕当机器数采用补码规格化形式时,假设不考虑隐藏位,则
最大负数=1,00000;1.011111111,即-〔2-1+2-9〕2-32
最小负数=0,11111;1.000000000,即-1231
则负数表示范围为:
-1231~-〔2-1+2-9〕2-32
最大正数=0,11111;0.111111111,即〔1-2-9〕231
最小正数=1,00000;0.100000000,即2-12-32
则正数表示范围为:
2-12-32~〔1-2-9〕231
17.设机器数字长为8位〔包括一位符号位〕,对以下各机器数:
[x3]原=1.0011001;[y3]补=1.0011001;[z3]反=1.0011001
进行算术左移一位、两位,算术右移一位、两位,讨论结果是否正确。
〔算术移位的首要原则就是符号位必须保持不变,好多同学移位后符号位变了(⊙﹏⊙)〕
解:
移位
[x3]原=1.0011001
[y3]补=1.0011001
[z3]反=1.0011001
算术左移一位
0010
〔正确〕
0010
〔丢0,出错〕
0011
〔丢0,出错〕
算术左移两位
0100
〔正确〕
0100
〔丢00,出错〕
0111
〔丢00,出错〕
算术右移一位
1.0001100
〔丢1,精度降低〕
1.1001100
〔丢1,精度降低〕
1.1001100
〔正确〕
算术右移两位
1.0000110
〔丢01,精度降低〕
1.1100110
〔丢01,精度降低〕
1.1100110
〔丢01,精度降低〕
19.设机器数字长为8位〔含2位符号位〕〔布置作业时专门强调要采用双符号位,并判断溢出,真正按要求的同学占极少数〕,用补码运算规则计算以下各题。
〔1〕A=9/64,B=-13/32,求A+B。
〔4〕A=-87,B=53,求A-B。
解:
〔一定要用移位的方法进行分数到二进制的转换,不要用除以2的方法,容易犯错〕
〔1〕A=9/64=0.0010010B,B=-13/32=-0.0110100B
[A]补=00.0010010〔小数不足8位,原码低位补0,凑齐8位〕
[B]补=11.1001100
[A+B]补=0
+1
=1〔此处一定要用竖式计算〕
因为结果符号位相同,所以没发生溢出。
〔一定要交代是否发生溢出,假设无溢出,则后面需将结果转换为真值〕
则A+B=-0.0100010B=-17/64
〔4〕A=-87=-1010111B,B=53=110101B
[A]补=11,0101001,
[B]补=00,0110101〔整数不足8位,原码高位补0,凑齐8位〕,
[-B]补=11,1001011
[A-B]补=11,0101001
+11,1001011
=110,1110100
向高位的进位1自然丢掉,结果的双符号位不同,故发生溢出,且为负溢出。
〔一定要交代是否发生溢出,如果发生溢出,则无需再将结果转为真值,因为此时结果是错的〕
26.按机器补码浮点运算步骤,计算[x±y]补.
〔1〕x=2-011×0.101100,y=2-010×〔-0.011100〕;
解:
由题意可得:
[x]补=11,101;00.101100,[y]补=11,110;11.100100
1〕对阶:
[E]补=[Ex]补+[-Ey]补=11,101+00,010=11,111<0,即E=-1
故Ex应向Ey对齐,则x的尾数向右移一位,阶码加1,即:
[x]’补=11,110;00.010110
2〕尾数相加:
[Mx]补+[My]补=0
则[x+y]补=1尾数出现“××”,需要左规。
[Mx]补+[-My]补=00.010110+00.011100=00.110010
则[x-y]补=11,110;00.110010,尾数无需规格化。
3〕规格化:
左规3此后后,[x+y]补=11,011;11.010000
4〕舍入:
无
5〕溢出:
无
所以,x+y=2-101×〔-0.110000〕,x-y=2-010×0.110010