资源描述
《计算机组成原理》习题解答
第1章
1 . 解释概念或术语:实际机器、虚拟机器,机器指令、机器指令格式,主机、 CPU 、 主存、 I/O、 PC、 IR、 ALU 、 CU、 AC、 MAR 、 MDR ,机器字长、存储字长、指令字长、 CPk TC、主频、响应时间、吞吐量、 MIPS、MFLOPS。
答:略
2 . 如何理解计算机系统的层次结构?说明高级语言、汇编语言及机器语言的差别与联 系。
答: ⑴计算机系统是由软件和硬件结合而成的整体。 为了提高计算机系统的好用性, 程 序设计语言的描述问题能力越来越强, 各种程序设计语言大体上是一种层次结构, 即高等级 编程语言指令包含低等级编程语言指令的全部功能。
对于使用不同层次编程语言的程序员来说, 他们所看到的同一计算机系统的属性是不同
的, 这些属性反映了同一计算机系统的不同层次的特征, 即同一计算机系统可划分成多个层 次结构,不同层次的结构反映的计算机系统的特征不同而已。
⑵机器语言是能够被计算机硬件直接识别和执行的程序设计语言, 机器语言是一种面向
硬件的、 数字式程序设计语言; 汇编语言和高级语言均用符号表示机器语言指令, 指令很容
易阅读和编写、 但不能被硬件直接识别和执行, 它们均是一种面向软件的、 符号式程序设计
语言; 相对于汇编语言而言, 高级语言描述问题的能力更强; 高级语言和汇编语言程序必须 翻译成机器语言程序后,才能在计算机硬件上执行。
3 . 计算机系统结构、计算机组成的定义各是什么?两者之间有何关系?
答:计算机系统结构是指机器语言程序员或编译程序编写者所看到的计算机系统的属
性, 包括概念性结构和功能特性两个方面。 主要研究计算机系统软硬件交界面的定义及其上 下的功能分配。
计算机组成是指计算机硬件设计人员所看到的计算机系统的属性。 主要研究如何合理地 逻辑实现硬件的功能。
计算机组成是计算机系统结构的逻辑实现。
4 .冯 诺依曼模型的存储程序原理包含哪些内容、对计算机硬件和软件有哪些要求? 冯诺依曼模型计算机的特点有哪些?
答: 存储程序原理是指程序和数据预先存放在存储器中, 机器工作时自动按程序的逻辑 顺序从存储器中逐条取出指令并执行。
存储程序原理要求存储器是由定长单元组成的、 按地址访问的、 一维线性空间结构的存
储部件; 要求软件指令支持用地址码表示操作数在存储器中的地址, 指令长度为存储单元长 度的倍数,编程语言中必须有转移型指令,以实现程序存储顺序到程序逻辑顺序的转变。
冯诺依曼模型计算机的特点可归纳为如下几点:
⑴计算机由运算器、控制器、存储器、输入设备和输出设备组成;
⑵存储器是由定长单元组成的、按地址访问的、一维线性空间结构;
⑶程序由指令组成,指令和数据以等同地位存放在存储器中;
⑷机器工作时自动按程序的逻辑顺序从存储器中逐条取出指令并执行;
⑸指令由操作码和地址码组成, 操作码用于表示操作的性质, 地址码用于表示操作数在
存储器中的地址;
⑹指令和数据均采用二进制方式表示,运算亦采用二进制方式;
⑺机器以运算器为中心,输入 /输出设备与存储器间的数据传送都经过运算器。
5 .现代计算机均采用冯 诺依曼模型、但进行了改进,画出现代计算机硬件组成及结构 图,并说明各部件的作用。
答:现代计算机结构大多在冯 诺依曼模型基础上进行了改进,以进一步提高系统的性 能。改进主要包括以存储器为中心、 多种存储器共存、采用总线互连三个方面。基本的硬件 组成及结构图如下:
CPU由运算器和控制器组成,运算器负责实现数据加工,实现算术逻辑运算;控制器 负责指挥和控制各部件协调地工作,实现程序执行过程。
存储器由主存和辅存(如磁盘)组成,负责实现信息存储。主存由小容量、快速元器件组 成,存放近期常用程序和数据; 辅存由大容量、低价格元器件组成,存放所有的程序和数据;
主存可被CPU直接访问,这样在提高访存速度的同时,可降低存储器总成本。
I/O设备负责实现信息的输入和输出,以及信息的格式变换。
通过总线实现部件互连的好处是可以实现 CPU的操作标准化,而操作标准化的具体实
现部件是I/O接口,它负责缓冲和中转相关操作。
6 .若某计算机的机器指令格式如表 1.2所示,请写出求s=a+b+c的机器语言程序,其中
a、b、c存放在起始地址为 0000100000的连续3个主存单元中,而 s则要求存放到地址为 0000001000的主存单元中。
解:假设程序第一条指令存放在第 1000000000号存储单元中,则程序清单如下:
主存单兀地址 (二进制)
指令(二进制)
注 释
操作码
地址码
…
…
0000001000
s
结果数据s
…
…
0000100000
a
原始数据a
0000100001
b
原始数据b
0000100010
c
原始数据c
…
…
1000000000
000001
0000100000
取数a到累加器AC中
1000000001
000011
0000100001
(AC) + b,结果存于 AC中 1
1000000010
000011
0000100010
(AC) + c,结果存于AC中 1
1000000011
000010
0000001000
将AC中内容存到s所在主存单兀中「
1000000100
000100
**********
停机,地址码空闲(值可任意)
7 .画出基于累加器 CPU的主机框图,说明题 6的机器语言程序的执行过程 (尽可能详 细)。简述执行过程与冯・诺依曼模型的存储程序原理的关系。
64
答:基于累加器 CPU的的主机框图如下:
CPU
w
部件
控制信号 .形成部件
IR
PC
Addr Data 系统总线 Cmd
地址译码器
I/O 接口
假设s=a+b+c程序已被调入主存、首指令地址已写入到 PC中,即(PC)=1000000000。
程序运行启动后,计算机硬件自动地、逐条地、按 (PC)为指令地址实现取指令、分析指令、
执行指令的对应操作,直到执行到停机指令为止。假设 IR中操作码记为 OP(IR)、地址码记
为AD(IR),则s=a+b+c程序执行过程的具体操作如下:
(1) PC^ MAR MAR> ABus、ReacR CBus
(2) WMFC (PC)+ 1 -PC
⑶ MDR>IR
;MAR= PC= 1000000000, 取指令开始
;PC= 1000000001 (下条指令地址)
;IR= 000001 0000100000 ,取指令完成
;CU得知当前为取数指令
ID对OP(IR)译码
(4)
AD(IR) -MAR MAR>ABus> Read-Cbus
;MAR= 0000100000,执行指令开始
⑸
(6)
WMFC
MDR> AC
;AC= MDR= a, 执行指令完成
⑺
P8MAR MAR>ABu& ReacRCBus
;MAR= PC= 1000000001 , 取指令开始
(8)
WMFC (PC) + 1 -PC
;PC= 1000000010 (下条指令地址)
(9)
MDR> IR
;IR= 000011 0000100001 ,取指令完成
(10)
ID对OP(IR)译码
AD(IR)-MAR MAR>ABus、ReacHCBus
;CU得知当前为加法指令
;MAR= 0000100001 ,执行指令开始
(11)
(12)
WMFC
(MDR)十(AC)-AC
;AC= a + b, 执行指令完成
(13)
P8 MAR MAR>ABus ReacRCBus
;MAR= PC= 1000000010 ,取指令开始
(14)
WMFC (PC) + 1-PC
;PC= 1000000011 (下条指令地址)
(15)
MDR> IR
;IR= 000011 0000100010 ,取指令完成
(16)
ID对OP(IR)译码
AD(IR)-MAR MAR>ABus、ReacHCBus
;CU得知当前为加法指令
;MAR= 0000100010,执行指令开始
(17)
(18)
WMFC
(MDR)+ (AC)-AC
;AC= a + b+c, 执行指令完成
(19)
PC^MAR MAR>ABus、ReacH CBus
;MAR= PC= 1000000011 , 取指令开始
(20)
WMFC (PC) + 1-PC
;PC= 1000000100 (下条指令地址)
(21)
MDR> IR
;IR = 000010 0000001000 ,取指令完成
(22)
ID对OP(IR)译码
AD(IR)-MAR MAR>ABus、WritefCbus
;CU得知当前为存数指令
;MAR= 0000100000,执行指令开始
(23)
AC^MDR MDR> DBus WMFC
;MDR= AC= a+b+c,执行指令完成
(24)
PC^MAR MAR>ABus、ReacH Cbus
;MAR= PC= 1000000100, 取指令开始
(25)
WMFC (PC) + 1-PC
;PC= 1000000101 (下条指令地址)
(26)
MDR> IR
;IR = 000100 ********** ,取指令完成
(27)
ID对OP(IR)译码
机器自动停机
;CU得知当前为停机指令
;执行停机指令完成
从程序执行过程可以看出:由于指令存放在存储器中,故指令执行过程分为取指令 (含
分析指令卜执行指令两个阶段;由于存储器同时只接收一个访问操作,故程序执行过程是
循环的指令执行过程,循环变量为 PC中的指令地址;只要按照程序逻辑顺序改变 (PC),可
以实现按程序逻辑顺序执行程序的目标。
8 .指令和数据均存放在存储器中,计算机如何区分它们?
答:由于存储器访问只使用地址和命令 (Read/Write)信号,而指令和数据均以二进制编
码形成存放在存储器中,因此,从存储器取得的信息本身是无法区分是指令还是数据的。
计算机只能通过信息的用途来区分, 即取指令时取得的是指令,指令执行时取操作数或
写结果对应的信息是数据。即计算机通过程序执行过程或指令执行过程的不同阶段来区分。
9 .在某CPU主频为400MHz的计算机上执行程序 A ,程序A中指令类型、执行数量及 平均时钟周期数如下表所示。
指令类型
指令执行数量
平均时钟周期数(/指令)
整数
45000
1
数据传送
75000
2
浮点数
8000
4
条件转移
1500
2
求该计算机执行程序 A时的程序执行时间、平均 CPI及MIPS。
解:CPU 时钟周期 Tc= 1/f= 1/(400 M06)=2.5ns
程序执行时间 TCPU= [45000 X1+ 75000X2+ 8000X4+ 1500X2] >2.5= 0.575ms。
平均 CPI = (45000 M + 75000X2+8000X4+ 1500X2)
Y 45000 + 75000+ 8000+ 1500)
= 1.776(时钟周期/指令)
MIPS = ( 45000 + 75000+8000+ 1500)/ (0.575 10支X106) = 225.2 百万条 /秒
10 .冯诺依曼模型计算机的性能瓶颈有哪些?简述缓解性能瓶颈严重性的方法。
答:冯诺依曼模型计算机的性能瓶颈有 CPU-MEM瓶颈、指令串行执行瓶颈两个。
对缓解CPU-MEM瓶颈而言,主要目标是减少 MEM访问延迟、提高 MEM传输带宽,
常用的方法有采用多种存储器构成层次结构存储系统、 采用多级总线互连、采用并行结构存
储票筐 蛇命守。
对缓解指令串行执行瓶颈而言, 主要目标是尽可能实现并行处理, 常用的方法有采用流
水线技术、数据流技术、超标量技术、超线程技术、多核技术等。
8 位(含 1 位符号位)时的原码及补
( 3 ) 43 ( 4) - 72
( 7 )+ 91 ( 8) - 33
[+23/128]补=0.0010111 ; [-35/64]补=1.0111010 ; [43]补=00101011 ;
[-72]补= 10111000;
[+7/32]补= 0.0011100;
[-9/16]补= 1.0111000 ;
[+91]补=01011011;
[-33]补=11011111。
(1) [X]原= 100011
(4) [X]原= 1.10011
解:(1) [X]补=111101,
(2) [X]原=0.00011
(3) [X]原=1.10101
(4) [X]补=1.01101
(5) [X]原=110111,
(6) [X]原=110100,
(2) [X]补= 0.00011
(5)[为补=101001
X= -00011 = -3 ;
X= +0.00011 = +3/32 ;
X= -0.10101 =-21/32
X= -0.10011 =-19/32
X= -10111 = -23/32 ;
X= -10100 = -20/32 。
(3) [X]反=1.01010
(6) [X]反=101011
第2章
1. 解释概念或术语:进制、机器数、原码、补码、移码、变形补码、 BCD 码、交换码、
内码、奇校验、 CRC 、上溢、下溢、左规、对阶、溢出标志、进位标志、部分积、 Booth 算 法、交替加减法除法、警戒位、全加器、并行加法器、行波进位、先行进位。
答:略
2. 完成下列不同进制数之间的转换
(1) (347.625) io=( ) 2=( ) 8=( ) 16
(2) (9C.E) 16=( ) 2= ( ) 8= ( ) 10
(3) 3) (11010011) 2 =( ) 10= ( ) 8421BCD
解:(1) (347.625) 10=(101011011.101) 2=(533.5) 8= (15B.A) 16
(4) (9C.E) 16=(10011100.1110) 2=(234.7) 8=(156.875) 10
(5) (11010011) 2=(211) 10=(001000010001) 8421BCD
分别写出机器数长度为
3. 对下列十进制数,分别写出机器数长度为 码。
( 1)+ 23/128 ( 2) - 35/64
( 5)+ 7/32 ( 6) - 9/16
解:(1) [+23/128]原=0.0010111 ,
(2) [-35/64]原=1.1000110 ,
(3) [43]原=00101011 ,
(4) [-72]原= 11001000,
(5) [+7/32]原= 0.0011100 ,
(6) [-9/16]原=1.1001000 ,
(7) [+91]原=01011011,
(8) [-33]原= 10100001,
4. 对下列机器数(含 1 位符号位) ,若为原码时求补码及真值,若为补码或反码时求原 码及真值。
5. (1)若[X]补=1.01001 ,求[―X]补及 X;
(2)若[―X]补=101001,求[X]补及 X。
解:(1) [- X]补=0.10111 , X= -0.10111 = -23/32 ;
(2) [X]补=010111, X= +10111=+23。
6. (1)若X= +23及—42,分别求8位长度的[X]移;
(2)若[X]移=1100101 及 0011101,分别求 X。
解:(1) [+23]移=10010111,卜42]移=01010110;
(2) [X]移=1100101 时的 X= +100101 = +37,
[X]移=0011101 时的 X= -100011 =-35。
7.若[X]补=0. x—1X—2X—3x— 4x—5, [ Y]补=1y4y3y2丫学,求下列几种情况时, x—i或yi的取
(1) X> 1/4 (2) 1/8 >X>1/16 (3) Yv —16 (4) — 32vYW —8
解:(1) [1/4]补= 0.01000 ,
故[(x-1 = 0) A (x-3= 1 Vx-4= 1 Vx-5 = 1)] V (X1 = 1)时 X> 1/4 ;
(2) [1/8]补= 0.00100 , [1/16]补= 0.00010,
故(x-1 = 0 A x-2 = 0) A [( x-3 = 1 A x-4 = 0 A x.5 = 0) V (x-3 = 0 A x-4 = 1 A x-5 = 1)]时 1/8 >X> 1/16 ;
(3) [-16]补= 110000,故 y4=0 时 Yv —16;
(4) [-8]补= 111000, [-32]补= 100000,故(y4=1/\y3=1/\y2=0/\y1 = 0/\y0=0) V(y4©y3= 1) V[y4=0Ay3=0A (y2= 1 Vy1=1Vy0= 1)]时一32V Y — 8。
8 .冗余校验的基本原理是什么?
答:数据发送时,除发送数据信息外,还冗余发送按某种规律形成的校验信息;数据接 收时,用所接收数据信息形成新的校验信息, 与所接收的校验信息比较, 以此判断是否发生
了错误,出错时报告出错或自动校正错误。
9 .若采用奇校验,下述两个数据的校验位的值是多少?
(1) 0101001 (2) 0011011
答:(1)数据0101001的奇校验位值为 0㊉1日 0$ 1份0日 0出1份1=0;
(2)数据0011011的奇校验位值为 0㊉0日 1 $ 1份0日 1份1份1=1。
10 .若下列奇偶校验码中只有一个有错误,请问采用的是奇 /偶校验?为什么?
(1) 10001101 (2) 01101101 (3) 10101001
答:上述奇偶校验码采用的是偶校验编码方式。
由于三个奇偶校验码中分别有偶数、奇数、偶数个“ 1”,而只有一个校验码有错误,
故第2个奇偶校验码(01101101)有错误;
又由于第2个奇偶校验码有奇数个“ 1”,故校验码采用的是偶校验编码方式。
11 .设有8位数据信息01101101 ,请写出求其海明校验码的过程。
解:本题中数据位数 n=8,数据信息m8…m1= 01101101 ,设检验信息位数为 k位,
(1)先求得校验信息位数 k,根据2k-1 >8+k的要求,可得k=4位;
12 )列出 n+k= 8 + 4= 12 位校验码中的信息排列: m8 m7m6m5P4m4m3m2P3m1p2p1。
13 )设各校验组采用偶校验编码方式,各校验组校验位的值为:
P4 = ms©m7©m6©m5=0© 1© 1 ©0= 0,
p3= ms© m4© m3© m2= 0© 1 © 1 © 0= 0,
p2= m7㊉ m6㊉ m4㊉ m3㊉ m1= 1 © 1 © 1 © 1 © 1 = 1,
p1= m7㊉ m5㊉ m4㊉ m2㊉ m= 1 © 0© 1 © 0© 1 = 1;
(4)海明偶校验码为: 011001100111_o
12 .若机器数表示时字长为 8位,写出下列情况时它能够表示的数的范围(十进制) 。
(1)无符号整数; (2)原码编码的定点整数;
(3)补码编码的定点整数; (4)原码编码的定点小数;
( 5)补码编码的定点小数。
解: ( 1)无符号整数的表示范围是
( 2 )原码定点整数的表示范围是
( 3 )补码定点整数的表示范围是
( 4 ) 原码定点小数的表示范围是
( 5 ) 补码定点小数的表示范围是
00000000111111111,即 0〜255;
-1111111 〜+1111111,即-127 〜+127;
-(1111111+1)〜+ 1111111,即-128 〜+127;
-0.1111111 〜+0.1111111,即-127/128 〜+127/128;
-1.0000000 〜+0.1111111,即-128/128 〜+127/128。
13 .对两个8位字长的定点数9BH及FFH,分别写出它们采用原码编码、补码编码及移 码编码时的十进制整数的真值,并写出它们表示为无符号数时的十进制真值。
解:机器码 9BH FFH
原码编码的真值 ( 整数 ) -27 -127
补码编码的真值 ( 整数 ) -101 -1
移码编码的真值 ( 整数 ) +27 +127
无符号编码的真值 ( 整数 ) 155 255
14 . 若浮点数表示格式(从高位到低位)为:阶码 6 位(含 1 位阶符) 、尾数 10 位(含
1 位数符) ,请写出 51/128 、- 27/1024 、 7.375 、- 86.5 所对应的机器数。
( 1)阶码和尾数均为原码;
( 2)阶码和尾数均为补码;
( 3)阶码为移码、尾数为补码。
解: ( 1)阶码和尾数均为原码时,
[51/128] =[0.0110011]浮=100001 0110011000 或 000000 0011001100 或…,
[-27/1024]浮=[-0.0000011011]浮=100101 1110110000 或 100001 1000011011 或…, [7.375]浮=[111.011]浮=000011 0111011000 或 000110 0000111011 或…,
[-86.5]浮=[-1010110.1]浮=000111 1101011010 或 001000 1010101101 或…;
( 2)阶码和尾数均为补码时,
[51/128]浮=111111 0110011000 或 000000 0011001100 或…,
[-27/1024]浮=111011 1001010000 或 111111 1111100101 或…,
[7.375]浮=000011 0111011000 或 000110 0000111011 或…,
[-86.5]浮=000111 1010100110 或 001000 1101010011 或…;
( 3)阶码为移码、尾数为补码时,
[51/128]浮=011111 0110011000 或 100000 0011001100 或…,
[-27/1024]浮=011011 1001010000 或 011111 1111100101 或…,
[7.375]浮=100011 0111011000 或 100110 0000111011 或…,
[-86.5]浮=100111 1010100110 或 101000 1101010011 或…。
15. 若浮点数表示格式采用 6 位阶码(含 1 位阶符) 、 10 位尾数(含 1 位数符) ,阶码
和尾数均采用补码编码。
( 1)写出浮点数能表示的正数及负数的范围;
( 2)写出规格化浮点数能表示的正数及负数的范围。
解:(1)浮点数正数区的范围为: +2-9X2-32〜+(1-2 -9) X 2+31,
浮点数负数区的范围为:-1 X2+3--2-9X 2-32;
(2)规格化浮点数正数区的范围为: +2-1 X2-32〜+(1-2 -9) X2+31,
规格化浮点数负数区的范围为: -1 X 2+31〜-(2 -1+2-9) X 2-32。
16. 若浮点数表示格式为: 6 位阶码(含
1 位阶符) 、 10 位尾数(含 1 位数符) 。分别写
出阶码和尾数均为原码及均为补码时,下列数值为规格化数时的机器码。
1)+ 51/128 (2)- 51/128 (3)- 1/64
解: ( 1)阶码和尾数均为原码时,规格化数的机器码为
阶码和尾数均为补码时,规格化数的机器码为
( 2 )阶码和尾数均为原码时,规格化数的机器码为
阶码和尾数均为补码时,规格化数的机器码为
( 3 )阶码和尾数均为原码时,规格化数的机器码为
阶码和尾数均为补码时,规格化数的机器码为
100001 0110011000 ,
111111 0110011000 ;
100001 1110011000 ,
111111 1001101000 ;
100101 1100000000 ,
111010 1000000000 。
17. 若机器中单精度浮点数采用 IEEE 754 标准表示。
( 1)对机器码为 (99D00000) 16及 (59800000) 16的浮点数,请写出它们的真值;
( 2)请写出- 51/128 的机器码。
解:(1)由于机器码(99D00000) 16= 1 00110011 10100000000000000000000B ,
故浮点数的符号码 S= 1、阶码 E=00110011、尾数码 M= 10100000000000000000000 , 因1VEV 255,故机器码表示的为规格化浮点数,
(99D00000) 16的真值 N = (-1) 1X 251-127X 1.10100000000000000000000 =-0.1101 X 2-76;
由于机器码 (59800000) 16=0 10110011 00000000000000000000000B ,
故浮点数的符号码 S= 0、阶码 E= 10110011、尾数码 M = 00000000000000000000000 , 因1VEV 255,故机器码表示的为规格化浮点数,
(59800000) 16 的真值 N = (-1) °X 2179-127X 1.00000000000000000000000 =+0.1 X2+53。
(2) (-51/128) 10= (-0.0110011) 2=(-1) 1X (1.10011) X 2125-127,
则用IEEE754标准表示时,符号码 S=1、阶码E=125、尾数 M = 0.10011 , 故- 51/128 的单精度浮点数机器码为 1 01111101 10011000000000000000000 。
18 . 字符在计算机中的表示可看作无符号定点整数, 对字符的操作有比较是否相同、 判 断前后次序等关系运算,需要哪些支持才能用算术运算和逻辑运算实现关系运算?
答: 由于字符数据可看作无符号定点整数, 故字符操作的结果可以用两个无符号定点整 数关系运算的结果表示。
设NA及NB为无符号定点整数,NC为有符号定点整数,且 NA- NB= NC,
则①当NA> NB时,NC的符号为正,
②当NA< NB时,NC的符号为负,
③当NA= NB时,NC的值为零,
④当NA> NB时,NC的符号为正、或者 NC的值为零, ⑤当NAC NB时,NC的符号为负、或者 NC的值为零;
即对算术运算 (减法 )结果的符号、 是否为零进行逻辑运算 (逻辑与、 逻辑或 ) , 就可以得
到关系运算的结果。
因此,运算器中设置“结果符号是否为负”及“结果是否为零”两个标志位,并且有对 这 2 个硬件标志位的 5 种逻辑操作硬件时,就可以用算术运算和逻辑运算实现关系运算了。
19 . 各种应用数据在计算机中一般表示成哪几种数据类型?对某个机器数, 如何才能够
知道它的数据类型?
答: 计算机中的应用数据一般有数值数据和非数据数据两大类型, 数值数据的运算均为
算术运算, 数据可表示为定点数或浮点数两种数据类型; 非数值数据的运算比较复杂, 可能
为逻辑运算,或算术运算或关系运算,数据可表示为逻辑数, 或定点数或浮点数。 故应用数
据在计算机中一般表示成定点数、浮点数及逻辑数三种数据类型。
由于计算机中均用二进制表示数据和指令,只能通过约定方式隐含表示符号及小数点
等。而这种约定只在数据操作时才有实际意义,因此,对于某机器数, 从数据本身无法知道
它的数据类型,只能通过对其操作的指令来表明这个数的数据类型。如对 32位机器数
99D00000H当它为浮点运算指令的操作数时,它是浮点数;当它为定点运算指令的操作数
时,它是定点数。
20 .若8位机器码为0010100,请问逻辑左移多少次后溢出?逻辑右移多少次后再左移 同样多次数时机器码开始不同?请分别说明原因。
答:逻辑左移3位后溢出,因为左起第一个“ 1”被移丢,故溢出。
逻辑右移3位后再逻辑左移 3位时机器码与原来不同,因为机器码 0010100 — 0000010
一0010000,右起第一个“ 1”被移丢,损失精度后再左移 3位机器码发生变化。
21 .设机器数字长为8位(含1位符号),分别写出对下列机器数算术左移 1位、2位,
算术右移1位、2位的结果,并说明结果是否正确。
[X]原=0.0011010; [X]补=1.1101000 ; [X]反= 1.0101111 ;
[X]原=1.0011010; [X]补=1.1001101 ; [X]反= 1.1001110
解:结果见下表,其中,表示结果正确、X表示结果溢出、/表示结果精度受损失。
算术左移1位
算术左移2位
算术后移1位
算术后移2位
[X]原=0.0011010
0.0110100 ,
0.1101000 ,
0.0001101 ,
0.0000110 /
[X]原=1.0011010
1.0110100 V
1.1101000 V
1.0001101 V
1.0000110 /
[X]补=1.1101000
1.1010000 ,
1.0100000 ,
1.1110100 V
1.1111010 V
[X]补=1.1001101
1.0011010 V
1.0110100 X
1.1100110 /
1.1110011 /
[X]反=1.0101111
1.1011111 X
1.0111111 X
1.1010111 V
1.1101011 V
[X]反=1.1001110
1.0011101 V
1.0111011 X
1.1100111 /
1.1110011 /
22 .若[Xh =xSxn-1 X0,请推导[2Xk=2[Xk%[%Xp=xS*2n-1+%[XH。
解:(1)因[2为补=2n+2X三2n+2n + 2X= 2X(2n+X) = 2 [为补,
故[2X「2[X]补。
(2)当 X〉0 时,xS= 0, [X]补=2n+X= 0xn-1 x0, X=+xn-1 x0,
则[另X]补=2n+ /X= 2n+xn-1 x,2 =0xn-1 x0/2 = %[X]补;
= 0*2n 1+ 羟[X]# = xS*2 n 1+12[X]补;
当 Xv0 时,xS= 1, X= [X]补一2n=1xn-1 x0 —2n1 —2n1=—2nT + xn-1 x0,
则[%X]补=2n+( — 211 + %-1 x0)/2
= 2n-1+2n—1+( — 2nT + xn-1 x0)/2 =2n-1+(2n-1 + xn-1 x0)/2
= 2n1+ 1xn-1 x0/2 =2n1+ 为[X]补=*初01+%[X]补。
故对任意X,均有[%X]补rxS^e + XlX]补。
23 .若机器数字长为8位(含1位符号),请用补码运算规则计算下列各题。
(1) A= 9/64 , B= -13/32 ,求 A+ B;
(2) A= 19/32 , B= -18/128 ,求 A— B;
(3) A= -87 , B= 13,求 A- B;
(4) A= 115, B= -24 ,求 A+ B
解:(1)因 A=+0.0010010、B= -0.0110100 ,贝U[ A]补=0.0010010、[ B]补=1.1001100 ,
[A+ Bk = [A]补+[8]补=0.0010010 +1.1001100 = 1.1011110 ,
则 A+ B= -0.0100010 =-17/64 ;
(2)因 A=+0.1001100、B=-0.0010010 ,贝U[ A]补=0.1001100、[- B]补=0.0010010 , [A —B]补=[对补+卜 B]补=0.1001100 +0.0010010 =0.1011110 , 则 A-B= 0.1011110 =47/64 ;
(3)因 A=-1010111、B= +0001101 ,则[A]补=1 0101001、[-8]补=1 1110011 , [A-B]补=[对补+卜 B]补=1 0101001 +1 1110011 = 1 0011100 , 则 A-B= -100 ;
(4)因 A=+1110011、B= -0011000 ,贝U [A]补=0 1110011 , [ B]补=1 1101000 , [A+B]补=[对补+2]补=0 1110011 + 1 1101000 =0 1011011 , 则 A+B= +91。
24 .若机器数字长为6位(含1位符号),请用补码计算 A+B,并判断结果是否溢出。
(1) A = 0.11011 , B= 0.00011 ; (2) A = 0.11011 , B=-0.10101 ;
(3) A = -0.10111 , B = -0.01011 ; (4) A = 0.10011 , B=0.01111
解:(1)由题意[A]补= 0.11011 , [B]补= 0.00011 ,
[ A+ B]补=[A]补 + [ 8]补=0.11011 +0.00011 =0.11110 , A+ B=+0.11110 , [A+ B]补的溢出标志 OVR= (0 © 0)(0 5 0)=0,故A+B结果不溢出;
(2)由题意[A]补=0.11011 , [B]补=1.01011 ,
[A+ B]补=[知补+[B]补=0.11011 + 1.01011 =0.00110 , A+B= +0.00110 ,
[A+ B]补的溢出标志 OVR= (0 © 0)(1 © 0) =0,故A+ B结果不溢出;
(3)由题意[A]补=1.01001 , [B] #=1.10101 ,
[A+ B]补=[知补+[B]补=1.01001 + 1.10101 =0.11110 , A+B= +0.11110 ,
[A+ B]补的溢出标志 OVR= (1 © 0)(1 © 0) = 1,故A+ B结果溢出;
(4)由题意[A] #=0.10011 , [B]补=0.01111 ,
[A+ B^=[A]补 +[B]补=0.10011 + 0.01111 = 1.00010 , A+B= -0.11110 , [A+ B]补的溢出标志 OVR= (0份1)(0②1) =1,故A+ B结果溢出。
25 .若机器数字长为7位(含2位符号),请用变形补码计算 A—B,并判断结果是否溢
出。
(1) A = 0.11011 , B=-0.11111 ; (2) A=0.10111 , B=-0.01010
解:(1)由题意[A]变补= 00.11011 , [B]变补= 11.00001, [- B]变补= 00.11111,
贝 U[A—B]变补= [A]变补 +[- B]变补=00.110
展开阅读全文
相关搜索