羅1.7解:?主机:是计算机硬件的主体部分,由CPU和主存储器MM合成为主机。
薅?CPU:处理器,是计算机硬件的核心部件,由运算器和控制器组成;(早期的运
算器和控制器不在同一芯片上,现在的CPU内除含有运算器和控制器外还集成了CACHE)。
羂?主存:计算机中存放正在运行的程序和数据的存储器,为计算机的主要工作存储器,
可随机存取;由存储体、各种逻辑部件及控制电路组成。
羈?存储单元:可存放一个机器字并具有特定存储地址的存储单位。
蚂?存储字:一个存储单元所存二进制代码的逻辑单位。
蒀?存储字长:一个存储单元所存储的二进制代码的总位数。
螇?存储容量:存储器中可存二进制代码的总量;(通常主、辅存容量分开描述)。
膅?机器字长:指CPU一次能处理的二进制数据的位数,通常与CPU的寄存器位数有关。
1
肃?指令字长:机器指令中二进制代码的总位数。
膂1.8解:全面的回答应分英文全称、中文名、功能三部分。
螀CPU:CentralProcessing Unit,处理机(器),是计算机硬件的核心部件,主要
由运算器和控制器组成。
芅PC:ProgramCounter,程序计数器,其功能是存放当前欲执行指令的地址,并可自
动计数形成下一条指令地址。
蒄IR:InstructionRegister,指令寄存器,其功能是存放当前正在执行的指令。
令序列。
薈ALU:ArithmeticLogic Unit,算术逻辑运算单元,为运算器的核心部件,其功能是
进行算术、逻辑运算。
莅ACC:Accumulator,累加器,是运算器中既能存放运算前的操作数,又能存放运算
结果的寄存器。
袄MQ:Multiplier-QuotientRegister,乘商寄存器,乘法运算时存放乘数、除法时存
2
放商的寄存器。
莁X:此字母没有专指的缩写含义,可以用作任一部件名,在此表示操作数寄存器,即运
算器中工作寄存器之一,用来存放操作数;
芇MAR:MemoryAddress Register,存储器地址寄存器,在主存中用来存放欲访问的
存储单元的地址。
莅MDR:MemoryData Register,存储器数据缓冲寄存器,在主存中用来存放从某单
元读出、或要写入某存储单元的数据。
蝿MIPS:MillionInstruction Per Second,每秒执行百万条指令数,为计算机运算速度
指标的一种计量单位。
莀1.9解:主机框图如P13图1.11所示。
蒅(1)STAM 指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
蒂OP(IR)→CU,Ad(IR)→MAR,ACC→MDR,MAR→MM,WR
3
蒁(2)ADDM 指令:PC→MAR,MAR→MM,MM→MDR,MDR→IR,
聿 OP(IR)→CU,Ad(IR)→MAR,RD,MM→MDR,MDR→X,
ADD,ALU→ACC,ACC→MDR,WR
薄假设主存容量256M*32位,在指令字长、存储字长、机器字长相等的条件下,ACC、X、
IR、MDR寄存器均为32位,PC和MAR寄存器均为28位。
袃1.11解:计算机区分指令和数据有以下2种方法:
袈通过地址来源区分,由PC提供存储单元地址的取出的是指令,由指令地址码
部分提供存储单元地址的取出的是操作数。
蚄6.4 解:真值与不同机器码对应关系如下:
芄[-13/]=-0.001101
蚁原码: 1.001 1010 | 补码: 1.1100110 | 反码: 1.1100101 |
4
蚇[29/128]=0.0011101
螄原码: 0.001 1101 | 补码: 0.001 1101 | 反码: 0.001 1101 |
蚅[100]=1100100
莃原码: 0110 0100 | 补码: 0110 0100 | 反码: 0110 0100 |
蚀[-87]=-1010111
螂6.5 解:[x]补与[x]原、x的对应关系如下:
袁[x]补 | 葿1.1100 | 羄1.1001 | 膃 | 薂 | 膇 | 芈 | 薃0,0111 | 肀1,0000 |
芀[x]原 | 莈1.0100 | 羄1.0111 | 螂 | 罿无 | 蒈 | 莅 | 膀0,0111 | 螈无 |
薇x | 蒂-0.0100 | 袂 | 薇 | 薇-1 | 袃-1011 | 莀-100 | 薀0,0111 | 蚇-10000 |
5
芄6.9解:真值和机器数的对应关系如下:
肂9BH | 荿原码 | 螇补码 | 蚅反码 | 蕿移码 | 膈无符号数 |
袇对应十进制数 | 袂-27 | 芁-101 | 袆-100 | 羇+27 | 节155 |
虿FFH | 罿原码 | 肇补码 | 蚃反码 | 蒁移码 | 蚈无符号数 |
膇对应十进制 | 肄-128 | 淘 | 豆 | 网 | 蒅256 |
薁6. 10.
蒀解:0的机器数形式如下:(假定机器数共8位,含1位符号位在内)
芆真值 | 薂原码 | 芃补码 | 艿反码 | 莆移码 |
羃+0 | 螁0 000 0000 | 肈0 000 0000 | 蒆0 000 0000 | 莄1 000 0000 |
蒃-0 | 螇1 000 0000 | 薆0 000 0000 | 下螅1 111 1111无 | 载高清 |
6
袀结论:0的原码和反码分别有+0和-0两种形式,补码和移码只有一种形式,
且补码和移码数值位相同,符号位相反。
蚆6.12意画出该浮点数的格式:
羁阶符1位 | 蚂阶码4 位 | 薈数符1位 | 螆尾数10 位 |
莂 ?? ? 将十进制数转换为二进制:x1= 51/128= 0.0110011B= 2-1 * 0.110 |
莇 x3=7.375=111.011B=23*0.111011B
螆x4=-86.5=-1010110.1B=27*(-0.B)
螃则以上各数的浮点规格化数为:
袂(1)[x1]浮=1,0001;0.110 011 000 0
7
蒀 [x2]浮=1,0101;1.110110 000 0
袅 [x3]浮=0,0011;0.111011 000 0
膄 [x4]浮=0,0111;1.101011 010 0
芀(2)[x1]浮=1,1111;0.110011 000 0
腿 [x2]浮=1,1011;1.001010 000 0
羅 [x3]浮=0,0011;0.111011 000 0
羂(3)[x1]浮=0,1111;0.110011 000 0
蚂 | 羈 | [x2]浮=0,1011;1.001 010 000 0 |
|
肅 | |||
[x3]浮=1,0011;0.111 011 000 0 | |||
[x4]浮=1,0111;1.010 100 110 0 |
8
蒀6.16解:(1)无符号整数:0~ 216- 1,即:0~65535;
螇? ?无符号小数:0~ 1 - 2-16,即:0~ 0.99998;
膅(2)原码定点小数:-1+ 2-15~1- 2-15,即:-0.99997~0.99997
肃(3)补码定点小数:-1~1 - 2-15 ,即:-1~0.99997
膂(4)补码定点整数:-215~215- 1 ,即:-32768~32767
螀(5)原码定点整数:-215+ 1~215 - 1,即:-32767~32767
时:
蒄最大负数=1,11111;1.000000 001 ,即-2-9?2-31
虿最小负数=0,11111;1.111111 111,即-(1-2-9)?231
薈则负数表示范围为:-(1-2-9)?231——-2-9?2-31
莅最大正数=0,11111;0.111111 111,即(1-2-9)?231
9
袄最小正数=1,11111;0.000000 001,即2-9?2-31
莁则正数表示范围为:2-9?2-31——(1-2-9)?231
芇(7)当机器数采用补码规格化形式时,若不考虑隐藏位,则
莅最大负数=1,00000;1.011111 111,即-2-1?2-32
芅最小负数=0,11111;1.000000 000,即-1?231
莀最大正数=0,11111;0.111 111 111,即(1-2-9)?231
蒅最小正数=1,00000;0.100000 000,即 2-1?2-32
蒂则正数表示范围为:2-1?2-32——(1-2-9)?231
蒁6.17解:算术左移一位:
聿 [x1]原=0.011 0100;正确
10
薄[x2]原=1.1010000;溢出(丢1)出错
袃[x3]原=1.0110010;正确
芃[y1]补=0.0101000;溢出(丢1)出错
袈[y2]补=1.1010000;正确
蚄[y3]补=1.0110010;溢出(丢0)出错
蚁[z2]反=1.1010001;正确
蚇[z3]反=1.0110011;溢出(丢0)出错
螄算术左移两位:
蚅[x1]原=0.1101000;正确
莃[x2]原=1.010 0000;溢出(丢11)出错
11
蚀[x3]原=1.1100100;正确
袄[y1]补=0.1010000;溢出(丢10)出错
螂[y2]补=1.0100000;正确
袁[y3]补=1.1100100;溢出(丢00)出错
葿[z1]反=1.0111111;溢出(丢01)出错
膃[z3]反=1.1100111;溢出(丢00)出错
薂算术右移一位:
膇[x1]原=0.0001101;正确
芈[x2]原=1.0110100;正确
薃[x3]原=1.000 1100(1);丢1,产生误差
12
肀[y1]补=0.0101010;正确
芀[y2]补=1.1110100;正确
莈[y3]补=1.1001100(1);丢1,产生误差
羄[z1]反=1.1010111;正确
螂[z2]反=1.1110100(0);丢0,产生误差
蒈算术右移两位:
莅[x1]原=0.0000110(10);产生误差
膀[x2]原=1.0011010;正确
螈[x3]原=1.0000110(01);产生误差
薇[y1]补=0.001 0101;正确
13
蒂[y2]补=1.1111010;正确
袂[y3]补=1.1100110(01);产生误差
薇[z1]反=1.1101011;正确
薇[z2]反=1.1111010(00);产生误差
袃[z3]反=1.1100110(01);产生误差
6.19 解:(1)A=9/=0.001 0010B, B= -13/32= -0.011 0100B
薀[A+B]补=0.0010010 + 1.1001100 = 1.1011110 ——无溢出
蚇A+B=-0.010 0010B = -17/
芄?(2)A=19/32=0.100 1100B, B= -17/128= -0.001 0001B
肂?? ? ? [A]补=0.1001100, [B]补=1.1101111 , [-B]补=0.0010001
14
荿[A-B]补=0.1001100 + 0.0010001= 0.1011101 ——无溢出
螇A-B=0.101 1101B = 93/128B
蚅(3)A=-3/16= -0.001 1000B, B=9/32= 0.010 0100B
蕿?? [A]补=1.1101000, [B]补=0.010 0100
膈[A+B]补=1.1101000 + 0.0100100 = 0.0001100 —— 无溢出
袇A+B= 0.000 1100B = 3/32
芁?? ? [A]补=1 010 1001, [B]补=0011 0101, [-B]补=1 100 1011
袆[A-B]补=1 0101001 + 1 1001011 = 0 1110100 —— 溢出
羇(5)A=115=111 0011B, B= -24= -11 000B
节? ? [A]补=0 1110011, [B]补=1,110 1000
15
虿[A+B]补=0 1110011 + 1 1101000 = 0 1011011——无溢出
罿A+B=101 1011B = 91
肇6.20解:先将数据转换成所需的机器数,然后计算,最后结果转换成真值。
蚃(1)[x]原=0.110111,[y]原=1.101110,x*=0.110111,y*=0.101110
蒁原码一位乘:
蚈部分积 | 淘 | 网肄说明 |
衿0.000 000 蒇+0.000 000 |
|
|
薁 0.000 000 蒀 0.000 000 芆 +0.110 111 | 薂010 111 | 芃右移一位 |
|
|
|
16
莆 0.110 111 羃 0.011 011 螁 +0.110 111 | 肈101 011 | 蒆右移一位 莄乘数为1,加上x* |
蒃 1.010 010 螇 0.101 001 薆 +0.110 111 | 螅010 101 淘 | 羀右移一位 袀乘数为1,加上x* 网 |
蚆www. 羁 0.110 000 蚂 +0.000 000 | tao | docs.co莂乘数为0,加上0 |
肀 0.110 000 莇 0.011 000 | 螃000 101 | 袂右移一位 |
17
螆 +0.110 111 |
|
|
1.001 111 | 100 010 | 右移一位 |
即x*×y*=0.100111 100 010,z0=x0?y0=0 ?1=1,
[x×y]原=1.100111 100 010,x·y=-0. 100 111 100 010
原码两位乘:[-x*]补=1.001001,2x*=1.101110
部分积 | 乘数y* | Cj | 说明 |
000 . 000 000 +001 . 101 110 | 00 101 110 | 0 | 部分积初值为0,Cj=0 |
001 . 101 110 |
| 0 |
|
000 . 011 011 | 淘.t 011 | o | 网 |
111 . 100 100 111 . 111 001 +111 . 001 001 | 00 100 010 | 1 | 右移2 位 |
111 . 000 010 111 . 110 000 +000 . 110 111 | 10 001 000 | 1 | 右移2 位 |
000 . 100 111 | 10 001 0 |
|
|
即x*×y*=0.100 111 100 010,z0=x0? y0=0 ?1=1, |
18
[x×y]原=1.100111 100 010,x·y=-0. 100 111 100 010
补码一位乘:[x]补=0.110111,[-x]补=1.001001,[y]补=1.010010
部分积 | 乘数 | Yn+1 | 说明 |
00 . 000 000 00 . 000 000 +11 . 001 001 | 1 010 010 | 0 | Ynyn+1=00,部分积右移1 位Ynyn+1=10,部分积加[-x]补 |
11 . 001 001 |
|
| 右移1 位 |
11 . 100 100 +00 . 110 111 | 1 010 100 | 1 | Ynyn+1=01,部分积加[x]补 |
00 . 011 011 | 淘 | 豆 | 网 |
00 . 000 110 www 00 . 001 101 +11 . 001 001 | .ta 1 110 101 | o | docs.co |
11 . 001 111 |
|
| 右移1 位 |
11 . 100 111 +00 . 110 111 | 1 111 010 | 1 | Ynyn+1=01,部分积加[x]补 |
00 . 011 110 00 . 001 111 +11 . 001 001 | 0 111 101 | 0 | 右移1 位 |
11 . 011 000 | 0 111 |
|
|
19
| 10 |
|
|
即 [x×y]补=1.011000 011 110,x·y= -0.100 111 100010
补码两位乘:
2[x]补=001.101110,2[-x]补=1.001001
结果同补码一位乘,x·y= -0. 100 111 100 010 00
6.26 解:先将x、y转换成机器数形式:
(1)x=2-011×0.101 100,y=2-010×(-0.011100)
[x]补=1,101;0.101100, [y]补=1,110;1.100100
[Ex]补=1,101,[y]补=1,110, [Mx]补=0.101100, [My]补=1.100 100 ? ? 1)对阶:
[?E]补=[Ex]补+[-Ey]补= 11,101+ 00,010=11,111 < 0,
[Ey]补 [x]补=1,110;0.010110
2)尾数运算:
? [Mx]补+[My]补=0.010 110 + 11.100 100=11.111010
[Mx]补+[-My]补=0.010110 + 00.011100= 00.110 010
3)结果规格化:
? [x+y]补=11,110;11.111010 = 11,011;11.010000 (尾数左
规3次,阶码减3)
? [x-y]补=11,110;00.110010, 已是规格化数。
4)舍入:无
20
5)溢出:无
则:x+y=2-101×(-0.110000)
? ? x-y =2-010×0.110010
(2)x=2-011×(-0.100010),y=2-010×(-0.011111)
? ? [x]补=1,101;1.011110, [y]补=1,110;1.100001
1)对阶:过程同(1)的1),则
[x]补=1,110;1.101111
? 2)尾数运算:
? ? [Mx]补+[My]补=11.101111 + 11. 100001 = 11.010000
? ? [Mx]补+[-My]补=11.101111 + 00.011111 = 00.001110
3)结果规格化:
2 次,阶码减2)
4)舍入:无
5)溢出:无
则:x+y=2-010×(-0.110000)
? ? x-y=2-100×0.111 000
(3)x=2101×(-0.100101),y=2100×(-0.001111)
? ? [x]补=0,101;1.011011, [y]补=0,100;1.110001
1)对阶:
[?E]补=00,101+11,100=00,001>0,应Ey 向Ex对齐,则:
21
[Ey]补+1=00,100+00,001=00,101=[Ex]补
[y]补=0,101;1.111000(1)
2)尾数运算:
?[Mx]补+[My]补=11.011011+ 11.111000(1)=11.010011(1)
?[Mx]补+[-My]补=11.011011+ 00.000111(1)=11.100010(1)
3)结果规格化:
? [x+y]补=00,101;11.010011(1),已是规格化数
? [x-y]补=00,101;11.100010(1)=00,100;11.000101 (尾
数左规1次,阶码减1)
4)舍入:
[x+y]补=00,101;11.010011(舍)
则:x+y=2101×(-0.101101)
x-y =2100×(-0.111011)
22