1、计算机组成原理与汇编语言程序设计课后习题及解答徐洁,俸远祯 电子工业出版社第 1 章 习题一1.什么是程序存储工作方式?答:计算机的工作方式存储程序工作方式。即事先编写程序,再由计算机把这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。 2.采用数字化方法表示信息有哪些优点?用数字化方法表示信息的优点: (1)抗干扰能力强, 可靠性高。 (2)依靠多位数字的组合,在表示数值时可获得很宽的表示范围以及很高的精度。 (3)数字化的信息可以存储、信息传送也比较容易实现。 (4)可表示的信息类型与范围及其广泛,几乎没有限制。 (5)能用逻辑代数等数字逻辑技术进行信息处理,这就形成 了
2、计算机硬件设计的基础。 3.如果有 79 点阵显示出字符 A 的图像,请用 9 个七位二进制代码表示 A 的点阵信息。4.数字计算机的主要特点是什么?1. (1) 能在程序控制下自动连续地工作; (2| )运算速度快; (3) 运算精度高; (4) 具有很强的信息存储能力; (5) 通用性强,应用领域及其广泛。 5.衡量计算机性能的基本指标有哪些? 答:衡量计算机性能的基本指标:(1)基本字长参加一次运算的数的位数;(2)数据通路宽度数据总线一次能并行传送的位数;(3)运算速度可用CPU 的时钟频率与主频,每秒平均执行指令数,典型四则运算的时间来表示。(4)主存储器容量可用字节数或单元数(字数
3、)位数来表示。 (5)外存容量常用字节数表示。 (6)配备的外围设备及其性能。 (7)系统软件配置。7.系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。例如 WINDOWS98 操作系统,C 语言编译程序等,数据库管理系统。8.对源程序的处理有哪两种基本方式?对源程序的处理通常有两种处理方式:解释方式和编译方式。第 2 章 习题二1.将二进制数(101010.01)2 转换为十进制数及 BCD 码。解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD2.将八进制数(37.2)8
4、 转换为十进制数及 BCD 码.解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD3.将十六进制数(AC.E)转换为十进制数及 BCD 码.解: (AC.E)16 =(172.875)10 = (000101110010.100001110101)BCD4.将十进制数(75.34)10 转换为 8 位二进制数及八进制数、十六进制数。解: (75.34)10 = (01001011.01010111)2 =(213.256)8 =(4B.57)165.将十进制数 13/128 转换为二进制数 .解: (13/128)10 =(1101/10000000)2
5、 =(0.0001101)26.分别写出下列各二进制数的原码、补码,字长(含一位数符)为 8 位。(1)0 (2)- 0 (3)0.1010 (4)- 0.1010 (5)1010 (6)-1010解: 原码 补码0 00000000 00000000-0 10000000 000000000.1010 0.1010000 0.1010000 - 0.1010 1.1010000 1.01100001010 00001010 00001010-1010 10001010 111101107.若 X 补=0.1010, 则 X 原、真值等于什么?解:X 补=0.1010 ,则 X 原=0.101
6、0,真值 X = 0.10108.若 X 补=1.1010, 则 X 原、真值等于什么?解:X 补=1.1010 ,则 X 原=1.0110,真值 X = - 0.01109.某定点小数字长 16 位,含 1 位符号,原码表示,分别写出下列典型值的二进制代码与十进制真值。(1)非 0 最小正数 (2) 最大正数 (3)绝对值最小负数 (4) 绝对值最大负数解: 二进制代码 十进制真值(1)非 0 最小正数 0.000000000000001 2-15(2)最大正数 0.111111111111111 1-2-15(3)绝对值最小负数 1.000000000000001 -2-15(4)绝对值最
7、大负数 1.111111111111111 -(1-2-15)10.某定点小数字长 16 位,含 1 位符号,补码表示,分别写出下列典型值的二进制代码与十进制真值。(1)非 0 最小正数 (2) 最大正数 (3)绝对值最小负数 (4) 绝对值最大负数解: 二进制代码 十进制真值(1)非 0 最小正数 0.000000000000001 2-15(2)最大正数 0.111111111111111 1-2-15(3)绝对值最小负数 1.111111111111111 -2-15(4)绝对值最大负数 1.000000000000000 -111.某浮点数字长 16 位,其中阶码 6 位,含 1 位符
8、号位,补码表示,以 2 为底;尾数 10 位(含 1 位数符),补码表示,规格化。分别写出下列各典型值的二进制代码与十进制真值。(1)非 0 最小正数 (2) 最大正数 (3)绝对值最小负数 (4) 绝对值最大负数解: 二进制代码 十进制真值(1)非 0 最小正数 100000, 0.100000000 (2)最大正数011111, 0.111111111 (3)绝对值最小负数100000, 1.100000000 (4)绝对值最大负数011111, 1.000000000 14.减少指令中一个地址码位数的方法是什么?答:减少指令中一个地址码位数的方法是采用寄存器寻址方式。15.某主存单元的地
9、址码与存储单元内容对应关系如下:地址码 存储内容1000H A307H1001H 0B3FH1002H 1200H1003H F03CH1004H D024H(1)若采用寄存器间接寻址读取操作数,指定寄存器 R0 的内容为 1002H,则操作数是多少?(2)若采用自增型寄存器间接寻址方式(R0)+,R0 的内容为 1000H,则操作数是多少?指令执行后 R0 的内容是什么?(3)若采用自减型寄存器间接寻址方式-(R1)+ 读取操作数, R1 的内容为 1003H,则操作数是多少?指令执行后 R1 的内容是什么?(4)若采用变址寻址方式 X(R2),指令中给出形式地址 d = 3H , 变址寄存
10、器 R2 的内容为 1000H,则操作数是多少?解:(1)操作数为 1200H。(2)操作数为 A307H,指令执行后 R0 的内容 1001H。(3)操作数为 F03CHH,指令执行后 R0 的内容 1002H。(4)操作数为 F03CHH。16.对 I/O 设备的编址方法有哪几种?请稍作解释。答:对 I/O 设备的编址方法有两种:外围设备单独编址和外围设备与主存统一编址。外围设备单独编址:为 I/O 接口中的有关寄存器分配 I/O 端口地址,一般由地址总线若干低位提供 I/O端口地址,从而选择某个寄存器进行读/写。外围设备与主存统一编址。将 I/O 接口中的有关寄存器与主存单元统一编址,一
11、般由地址码中高端(地址值大)的一段区域分配给 I/O 端口。17.I/O 的设置方法有哪几种?请稍作解释。答:I/O 指令的设置方法有三种:(1)设置专用的 I/O 指令:指令中的操作码明确规定某种输入/输出操作,CPU 寄存器号,I/O 端口地址。应用于外围设备单独编址方式。(2)用通用的数据传送指令实现 I/O 操作:应用于外围设备与主存单元统一编址方式。(3)通过 I/O 处理器或处理机控制 I/O 操作:应用于采用协处理器或多处理机的系统。第 3 章 习题三1.试说明串行进位和并行进位的不同之处。答:采用串行进位的加法器,是将 n 个加法器串接起来。其中的进位是逐级形成的,每一级的进位
12、直接依赖前一级的近位。由于串行进位的延时时间较长,所以速度很慢。采用并行进位的加法器中,各加法器的进位信号仅由进位产生函数 Gi 与进位传递函数 Pi 及最低位进位 C0 决定,而 Gi 和 Pi 之与本位的 Ai 和 Bi 有关,即 Gi 与 Pi 的形成是同时的,因此各级的进位输出 Ci也是同时形成的。并行进位有效地减少进位延时时间。3.用变形补码计算X 补+Y 补,并指出是否溢出,说明是正溢还是负溢。(1)X补=00 110011 Y补 = 00 1011010 0 1 1 0 0 1 1+) 0 0 1 0 1 1 0 10 1 1 0 0 0 0 0X补+Y 补 =01 100000
13、 , 符号位为 01,为正溢。(2)X补=00 010110 Y补 = 00 1001010 0 1 1 0 1 1 0+) 0 0 1 0 0 1 0 10 1 0 1 1 0 1 1X补+Y 补 =01 011011 , 符号位为 01,为正溢。(3)X补=11 110011 Y补 = 11 1011011 1 1 1 0 0 1 1+) 1 1 1 0 1 1 0 11 1 1 0 0 0 0 0X补+Y 补 =11 100000 , 符号位为 11,结果正确。(4)X补=11 001101 Y补 = 11 0100111 1 0 0 1 1 0 1+) 1 1 0 1 0 0 1 11
14、 0 1 0 0 0 0 0X补+Y 补 =10 100000 , 符号位为 10,为负溢。3.用变形补码计算X 补-Y补,并指出是否溢出,说明是正溢还是负溢。(1)X补=00 110011 Y补 = 00 101101解:-Y 补=11 0100110 0 1 1 0 0 1 1+) 1 1 0 1 0 0 1 10 0 0 0 0 1 1 0X补-Y 补=00 000110 , 符号位为 00,结果正确。(2)X补=00 110011 Y补 = 11 010011解:-Y 补=00 1011010 0 1 1 0 0 1 1+) 0 0 1 0 1 1 0 10 1 0 0 0 0 0 0
15、X补-Y 补=01 000000 , 符号位为 01,为正溢。(3)X补=00 100011 Y补 = 00 110100解:-Y 补=11 0011000 0 1 1 0 0 1 1+) 1 1 0 0 1 1 0 01 1 1 1 1 1 1 1X补-Y 补=11 111111 , 符号位为 11,结果正确。(4)X补=00 101010 Y补 = 11 110111解:-Y 补=00 0010010 0 1 0 1 0 1 0+) 0 0 0 0 1 0 0 10 0 1 1 0 0 1 1X补-Y 补=00 110011 , 符号位为 00,结果正确。6.用无符号数一位乘法计算 XY,
16、写出规范的运算过程。(1)X=1001 Y=1101(2)X=1101 Y=1111(3)X=1010 Y=10017.用无符号数不恢复余数法求 XY,写出运算过程,分别给出求得的商和余数。(1)X=00101001 Y=1011(2)X=00110110 Y=1111(3)X=01011010 Y=10018.简要解释下列名词术语:微命令,同步控制方式,指令周期,机器周期,时钟周期,时钟脉冲,指令流程,微指令,微程序,微周期,直接控制编码,分段直接译码法,分段间接译码法,增量方式,断定方式,垂直型微指令,水平型微指令。答:微命令构成控制信号序列的最小单位。例如打开或关闭某个控制门的电位信号,
17、某个寄存器的打入脉冲等。 同步控制方式同步控制方式是这样一种时序控制方式:各种操作都由统一的时序信号同步定时,它的主要特征是有固定的时钟周期划分。这意味着什么时间执行什么操作是事先安排好的。一个基本操作占用一个时钟周期(节拍) ,某个操作发生的时刻由相应的脉冲边沿定时。指令周期指令周期是从取指令、分析指令到执行完该指令所需的时间。不同的指令,其指令周期长短可以不同。机器周期在组合逻辑机控制器中,通常将指令周期划分为几个不同的阶段,每个阶段所需的时间,称为机器周期。例如,取指令周期、存储器读周期、存储器写周期等。时钟周期一个机器周期的操作一般需分为几步完成。因此,将一个机器周期划分为若干相等的时
18、间段,每个时间段内完成一步基本操作,这个时间段用一个电平信号宽度对应,称为节拍或时钟周期。指令流程指令流程体现了计算机工作原理中一个核心内容:CPU 究竟怎样执行指令流程?一般是给出一条特定的指令,以模型机 CPU 内部组成为背景,用寄存器传送级语句描述其读取与执行流程。微指令若干微命令的组合,以编码形式存放在控制存储器的一个单元中,控制实现一步操作。一条微指令的功能就是给出完成指令某步操作所需的微操作控制信号和后继微指令地址。微程序一条微指令包含的微命令控制实现一步(一个时钟周期)机器操作;若干条微指令组成一小段微程序,解释实现一条机器指令;控制存储器中的微程序能解释实现全部指令系统。微周期
19、通常指从控制存储器读取一条微命令并执行相应的微操作所需的时间。直接控制编码是指微指令的微命令字段中的每一位都代表一个微命令。设计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成 1 或 0 就可以了。分段直接译码法将微指令的微命令字段分成若干小段,把相斥性微命令组合在同一段中,而把相容性微命令组合在不同的段中,每个字段独立编码,每种编码代表一个微命令,且各字段编码单独定义,与其它字段无关,这被称为分段直接译码法。分段间接译码法是在直接译码法的基础上,进一步缩短字长的一种编码方法。在这种编码法中,一个字段的含义不仅取决于本字段编码,还兼由其它字段来解释,以便使用较少的信息位表示
20、更多的微命令。增量方式与工作程序用程序计数器产生指令地址相似。在微程序控制器中,可设置一个微程序计数器 PC,在顺序执行指令时,后继微指令地址由现行微地址(即 PC的内容)加上一个增量(通常为1)来形成,遇到转移时,由微指令给出转移微地址,使微程序按新的顺序执行。断定方式指后继地址可由程序设计者指定,或者根据微指令所规定的测试结果直接决定后继微地址的全部或部分值。垂直型微指令垂直型微指令的特征是微指令较短,微指令的并行操作那里有限,一般一条微指令只能控制数据通路的一二种信息传送操作。水平型微指令它有如下特征:微指令较长,微指令中的微操作具有高度的并行性,微指令编码简单。优点是执行效率高,灵活性
21、好,微程序条数较少。9.试说明模型机中下列寄存器是作用:通用寄存器,暂存器,IR,PC,MAR,MDR答:通用寄存器是一组可编程访问,具有多种功能的寄存器。本身在逻辑上只具有接收信息、存储信息和发送信息的作用,但通过编程与运算部件的配合可以实现多种功能,如可为 ALU 提供操作数并存放运算结果,也可用作变址寄存器、地址指针和计数器等。暂存器用来暂存从主存储器读出的数据以及从 ALU 输出端输出的运算结果。IR用来存放当前正在执行的一条指令。PC提供指令的地址,即指示程序的进程。当现行指令执行完毕后,由 PC 提供后继指令的地址,并送往地址寄存器 MAR。MAR用于存放 CPU 访问主存或 I/
22、O 接口的地址。MDR用于存放 CPU 于主存或 I/O 接口之间传送的数据。10.模型机的脉冲型微命令有哪些?答:模型机中的脉冲型微命令有:CPR0,CPR1,CPR2,CPR3,CPIR,CPPC ,CPSP,CPMDR,CPMAR ,CPD,CPC,CPZ 。11.何谓组合逻辑控制器?何谓微程序控制器?试比较它们的优缺点。CPU 通过组合逻辑电路产生微命令,相应的控制器称为组合逻辑控制器。优点:速度快。缺点:设计较凌乱,不易修改扩充,应用于快速 CPU 中。CPU 采用微程序控制方式来产生微命令,相应的控制器称为微程序控制器。 优点:设计比较规整,易于修改扩充。缺点:速度较组合逻辑控制器慢。12.拟出下述指令的读取与执行流程:(1)MOV R0,R2解:FT0 PCMARFT1 MMDRIR,PC+1PCST0 R2CET0 CR0(2)MOV R1,(PC)+