习题及解答 第1 章 习题一 -...

39
1 习题及解答 1 习题一 1.什么是程序存储工作方式? 答:计算机的工作方式——存储程序工作方式。即事先编写程序,再由计算机把 这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。 4.数字计算机的主要特点是什么? (1) 能在程序控制下自动连续地工作; (2|)运算速度快; (3) 运算精度高; (4) 具有很强的信息存储能力; (5) 通用性强,应用领域及其广泛。 5.衡量计算机性能的基本指标有哪些? 答:衡量计算机性能的基本指标: (1)基本字长——参加一次运算的数的位数; (2)数据通路宽度——数据总线一次能并行传送的位数; (3)运算速度——可用①CPU 的时钟频率与主频,②每秒平均执行指令数,③典 型四则运算的时间来表示。 (4)主存储器容量——可用字节数或单元数(字数)×位数来表示。 (5)外存容量——常用字节数表示。 (6)配备的外围设备及其性能。 (7)系统软件配置。 7. 系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。 系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。例如 WINDOWS98 操作系统,C 语言编译程序等,数据库管理系统。 8.对源程序的处理有哪两种基本方式? 对源程序的处理通常有两种处理方式:解释方式和编译方 2 习题二 1.将二进制数(101010.01)2 转换为十进制数及 BCD 码。 解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD 2.将八进制数(37.2)8 转换为十进制数及 BCD 码. 解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD 3.将十六进制数(AC.E)转换为十进制数及 BCD 码. 解: (AC.E)16 =(172.875)10 = (000101110010.100001110101)BCD 4.将十进制数(75.34)10 转换为 8 位二进制数及八进制数、十六进制数。 解: (75.34)10 = (01001011.01010111)2 =(213.256)8 =(4B.57)16 5.将十进制数 13/128 转换为二进制数. 解: (13/128)10 =(1101/10000000)2 =(0.0001101)2 6.分别写出下列各二进制数的原码、补码,字长(含一位数符)为 8 位。 (1)0 (2)- 0 (3)0.1010 (4)- 0.1010 (5)1010 (6)-1010 解: 原码 补码

Upload: others

Post on 18-Jan-2021

11 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

1

习题及解答

第 1 章 习题一

1.什么是程序存储工作方式?

答:计算机的工作方式——存储程序工作方式。即事先编写程序,再由计算机把

这些信息存储起来,然后连续地、快速地执行程序,从而完成各种运算过程。

4.数字计算机的主要特点是什么?

(1) 能在程序控制下自动连续地工作;

(2|)运算速度快;

(3) 运算精度高;

(4) 具有很强的信息存储能力;

(5) 通用性强,应用领域及其广泛。

5.衡量计算机性能的基本指标有哪些?

答:衡量计算机性能的基本指标:

(1)基本字长——参加一次运算的数的位数;

(2)数据通路宽度——数据总线一次能并行传送的位数;

(3)运算速度——可用①CPU 的时钟频率与主频,②每秒平均执行指令数,③典

型四则运算的时间来表示。

(4)主存储器容量——可用字节数或单元数(字数)×位数来表示。

(5)外存容量——常用字节数表示。

(6)配备的外围设备及其性能。

(7)系统软件配置。

7. 系统软件一般包括哪些部分?列举你所熟悉的三种系统软件。

系统软件一般包括操作系统,编译程序、解释程序、各种软件平台等。例如

WINDOWS98 操作系统,C语言编译程序等,数据库管理系统。

8.对源程序的处理有哪两种基本方式?

对源程序的处理通常有两种处理方式:解释方式和编译方

第 2 章 习题二 1.将二进制数(101010.01)2 转换为十进制数及 BCD 码。

解:(101010.01)2 = (42.25)10 = (01000010.00100101)BCD

2.将八进制数(37.2)8转换为十进制数及 BCD 码.

解:(37.2)8 = (31.25)10 =(00110001.00100101)BCD

3.将十六进制数(AC.E)转换为十进制数及 BCD 码.

解: (AC.E)16 =(172.875)10 = (000101110010.100001110101)BCD

4.将十进制数(75.34)10转换为 8位二进制数及八进制数、十六进制数。

解: (75.34)10 = (01001011.01010111)2 =(213.256)8 =(4B.57)16

5.将十进制数 13/128 转换为二进制数.

解: (13/128)10 =(1101/10000000)2 =(0.0001101)2

6.分别写出下列各二进制数的原码、补码,字长(含一位数符)为 8位。

(1)0 (2)- 0 (3)0.1010 (4)- 0.1010 (5)1010 (6)-1010

解: 原码 补码

Page 2: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

2

0 00000000 00000000

-0 10000000 00000000

0.1010 0.1010000 0.1010000

- 0.1010 1.1010000 1.0110000

1010 00001010 00001010

-1010 10001010 11110110

7.若 X 补=0.1010,则 X 原、真值等于什么?

解:X 补=0.1010,则 X 原=0.1010,真值 X = 0.1010

8. 若 X 补=1.1010,则 X 原、真值等于什么?

解:X 补=1.1010,则 X 原=1.0110,真值 X = - 0.0110

9. 某定点小数字长 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)绝对值 大负数 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 -1

11. 某浮点数字长 16 位,其中阶码 6位,含 1位符号位,补码表示,以 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. 减少指令中一个地址码位数的方法是什么?

Page 3: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

3

答:减少指令中一个地址码位数的方法是采用寄存器寻址方式。

15. 某主存单元的地址码与存储单元内容对应关系如下:

地址码 存储内容

1000H A307H

1001H 0B3FH

1002H 1200H

1003H F03CH

1004H D024H

(1)若采用寄存器间接寻址读取操作数,指定寄存器 R0 的内容为 1002H,则操作

数是多少?

(2)若采用自增型寄存器间接寻址方式(R0)+,R0 的内容为 1000H,则操作数是多

少?指令执行后 R0 的内容是什么?

(3)若采用自减型寄存器间接寻址方式-(R1)+读取操作数,R1 的内容为 1003H,

则操作数是多少?指令执行后 R1 的内容是什么?

(4)若采用变址寻址方式 X(R2),指令中给出形式地址 d = 3H , 变址寄存器 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 接口中的有关寄存器与主存单元统一编址,

一般由地址码中高端(地址值大)的一段区域分配给 I/O 端口。

17. I/O 的设置方法有哪几种?请稍作解释。

答:I/O 指令的设置方法有三种:

(1)设置专用的 I/O 指令:指令中的操作码明确规定某种输入/输出操作,CPU

寄存器号,I/O 端口地址。应用于外围设备单独编址方式。

(2)用通用的数据传送指令实现 I/O 操作:应用于外围设备与主存单元统一编

址方式。

(3)通过 I/O 处理器或处理机控制 I/O 操作:应用于采用协处理器或多处理机

的系统。

第 3 章 习题三

1.试说明串行进位和并行进位的不同之处。

答:采用串行进位的加法器,是将 n个加法器串接起来。其中的进位是逐级形成的,

每一级的进位直接依赖前一级的近位。由于串行进位的延时时间较长,所以速度

很慢。

采用并行进位的加法器中,各加法器的进位信号仅由进位产生函数 Gi与进位传

递函数 Pi及 低位进位 C0决定,而 Gi和 Pi之与本位的 Ai和 Bi有关,即 Gi与 Pi的形

Page 4: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

4

成是同时的,因此各级的进位输出 Ci也是同时形成的。并行进位有效地减少进位

延时时间。

3.用变形补码计算[X]补+[Y]补,并指出是否溢出,说明是正溢还是负溢。

(1)[X]补=00 110011 [Y]补 = 00 101101

0 0 1 1 0 0 1 1

+) 0 0 1 0 1 1 0 1

0 1 1 0 0 0 0 0

[X]补+[Y]补=01 100000 , 符号位为 01,为正溢。

(2)[X]补=00 010110 [Y]补 = 00 100101

0 0 1 1 0 1 1 0

+) 0 0 1 0 0 1 0 1

0 1 0 1 1 0 1 1

[X]补+[Y]补=01 011011 , 符号位为 01,为正溢。

(3)[X]补=11 110011 [Y]补 = 11 101101

1 1 1 1 0 0 1 1

+) 1 1 1 0 1 1 0 1

1 1 1 0 0 0 0 0 [X]补+[Y]补=11 100000 , 符号位为 11,结果正确。

(4)[X]补=11 001101 [Y]补 = 11 010011

1 1 0 0 1 1 0 1

+) 1 1 0 1 0 0 1 1

1 0 1 0 0 0 0 0 [X]补+[Y]补=10 100000 , 符号位为 10,为负溢。

3.用变形补码计算[X]补-[Y]补,并指出是否溢出,说明是正溢还是负溢。

(1)[X]补=00 110011 [Y]补 = 00 101101

解:[-Y]补=11 010011

0 0 1 1 0 0 1 1

+) 1 1 0 1 0 0 1 1

0 0 0 0 0 1 1 0 [X]补-[Y]补=00 000110 , 符号位为 00,结果正确。

(2)[X]补=00 110011 [Y]补 = 11 010011

解:[-Y]补=00 101101

0 0 1 1 0 0 1 1

+) 0 0 1 0 1 1 0 1

0 1 0 0 0 0 0 0

[X]补-[Y]补=01 000000 , 符号位为 01,为正溢。

(3)[X]补=00 100011 [Y]补 = 00 110100

解:[-Y]补=11 001100

0 0 1 1 0 0 1 1

+) 1 1 0 0 1 1 0 0

Page 5: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

5

1 1 1 1 1 1 1 1

[X]补-[Y]补=11 111111 , 符号位为 11,结果正确。

(4)[X]补=00 101010 [Y]补 = 11 110111

解:[-Y]补=00 001001

0 0 1 0 1 0 1 0

+) 0 0 0 0 1 0 0 1

0 0 1 1 0 0 1 1

[X]补-[Y]补=00 110011 , 符号位为 00,结果正确。

6.用无符号数一位乘法计算 X×Y,写出规范的运算过程。

(1)X=1001 Y=1101

(2)X=1101 Y=1111

Page 6: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

6

(3)X=1010 Y=1001

7.用无符号数不恢复余数法求 X÷Y,写出运算过程,分别给出求得的商和余数。

(1)X=00101001 Y=1011

Page 7: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

7

(2)X=00110110 Y=1111

(3)X=01011010 Y=1001

Page 8: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

8

8. 简要解释下列名词术语:

微命令,同步控制方式,指令周期,机器周期,时钟周期,时钟脉冲,指令流程,

微指令,微程序,微周期,直接控制编码,分段直接译码法,分段间接译码法,

增量方式,断定方式,垂直型微指令,水平型微指令。

答: 微命令——构成控制信号序列的 小单位。例如打开或关闭某个控制门的电

位信号,某个寄存器的打入脉冲等。

同步控制方式——同步控制方式是这样一种时序控制方式:各种操作都由统

一的时序信号同步定时,它的主要特征是有固定的时钟周期划分。这意味着什么

时间执行什么操作是事先安排好的。一个基本操作占用一个时钟周期(节拍),

某个操作发生的时刻由相应的脉冲边沿定时。

指令周期——指令周期是从取指令、分析指令到执行完该指令所需的时间。

不同的指令,其指令周期长短可以不同。

机器周期——在组合逻辑机控制器中,通常将指令周期划分为几个不同的阶

段,每个阶段所需的时间,称为机器周期。例如,取指令周期、存储器读周期、

存储器写周期等。

时钟周期——一个机器周期的操作一般需分为几步完成。因此,将一个机器周

期划分为若干相等的时间段,每个时间段内完成一步基本操作,这个时间段用一

个电平信号宽度对应,称为节拍或时钟周期。

指令流程——指令流程体现了计算机工作原理中一个核心内容:CPU 究竟怎样

执行指令流程?一般是给出一条特定的指令,以模型机CPU内部组成为背景,

用寄存器传送级语句描述其读取与执行流程。

Page 9: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

9

微指令——若干微命令的组合,以编码形式存放在控制存储器的一个单元中,

控制实现一步操作。一条微指令的功能就是给出完成指令某步操作所需的微操作

控制信号和后继微指令地址。

微程序——一条微指令包含的微命令控制实现一步(一个时钟周期)机器操作;

若干条微指令组成一小段微程序,解释实现一条机器指令;控制存储器中的微程

序能解释实现全部指令系统。

微周期——通常指从控制存储器读取一条微命令并执行相应的微操作所需的

时间。

直接控制编码——是指微指令的微命令字段中的每一位都代表一个微命令。设

计微指令时,选用或不选用某个微命令,只要将表示该微命令的对应位设置成 1

或 0就可以了。

分段直接译码法——将微指令的微命令字段分成若干小段,把相斥性微命令组

合在同一段中,而把相容性微命令组合在不同的段中,每个字段独立编码,每种

编码代表一个微命令,且各字段编码单独定义,与其它字段无关,这被称为分段

直接译码法。

分段间接译码法——是在直接译码法的基础上,进一步缩短字长的一种编码方

法。在这种编码法中,一个字段的含义不仅取决于本字段编码,还兼由其它字段

来解释,以便使用较少的信息位表示更多的微命令。

增量方式——与工作程序用程序计数器产生指令地址相似。在微程序控制器

中,可设置一个微程序计数器μPC,在顺序执行指令时,后继微指令地址由现行

微地址(即μPC 的内容)加上一个增量(通常为 1)来形成,遇到转移时,由微

指令给出转移微地址,使微程序按新的顺序执行。

断定方式——指后继地址可由程序设计者指定,或者根据微指令所规定的测试结

果直接决定后继微地址的全部或部分值。

垂直型微指令——垂直型微指令的特征是微指令较短,微指令的并行操作那里有

限,一般一条微指令只能控制数据通路的一二种信息传送操作。

水平型微指令——它有如下特征:微指令较长,微指令中的微操作具有高度的并

行性,微指令编码简单。优点是执行效率高,灵活性好,微程序条数较少。

9.试说明模型机中下列寄存器是作用:

通用寄存器,暂存器,IR,PC,MAR,MDR

答:通用寄存器——是一组可编程访问,具有多种功能的寄存器。本身在逻辑上

只具有接收信息、存储信息和发送信息的作用,但通过编程与运算部件的配合可

以实现多种功能,如可为 ALU 提供操作数并存放运算结果,也可用作变址寄存器、

地址指针和计数器等。

暂存器——用来暂存从主存储器读出的数据以及从 ALU 输出端输出的运算结果。

IR——用来存放当前正在执行的一条指令。

PC——提供指令的地址,即指示程序的进程。当现行指令执行完毕后,由 PC 提

供后继指令的地址,并送往地址寄存器 MAR。

MAR——用于存放 CPU 访问主存或 I/O 接口的地址。

MDR——用于存放 CPU 于主存或 I/O 接口之间传送的数据。

10.模型机的脉冲型微命令有哪些?

答:模型机中的脉冲型微命令有:CPR0,CPR1,CPR2,CPR3,CPIR,CPPC,CPSP,CPMDR,CPMAR,

CPD,CPC,CPZ 。

Page 10: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

10

11.何谓组合逻辑控制器?何谓微程序控制器?试比较它们的优缺点。

CPU 通过组合逻辑电路产生微命令,相应的控制器称为组合逻辑控制器。优点:

速度快。缺点:设计较凌乱,不易修改扩充,应用于快速 CPU 中。

CPU 采用微程序控制方式来产生微命令,相应的控制器称为微程序控制器。 优点:

设计比较规整,易于修改扩充。缺点:速度较组合逻辑控制器慢。

12.拟出下述指令的读取与执行流程:

(1)MOV R0,R2

解:FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 R2→C

ET0 C→R0

(2)MOV R1,(PC)+

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 PC→MAR

ST1 M→MDR→C

ST2 PC+1→Z

ST3 Z→PC

ET0 C→R0

(3)MOV -(SP),-(R1)

解:FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 R1-1→Z

ST1 Z→MAR , R1

ST2 M→MDR→C

DT0 SP-1→Z

DT2 Z→MAR ,SP

ET0 C→MDR

ET1 MDR→M

(4)MOV (R0)+ , X(R3)

解:FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 PC→MAR

ST1 M→MDR→D , PC+1→PC

ST2 D+R3→Z

ST3 Z→MAR

ST4 M→MDR→C

DT0 R0→MAR

DT1 R0+1→Z

DT2 Z→R0

ET0 C→MDR

ET1 MDR→M

(5)MOV (R0) , (PC)+

Page 11: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

11

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 PC→MAR

ST1 M→MDR→C

ST2 PC+1→Z

ST3 Z→PC

DT0 R0→MAR

ET0 C→MDR

ET1 MDR→M

(6)MOV DI ,(SP)+

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 SP→MAR

ST1 M→MDR→C

ST2 SP+1→Z

ST3 Z→SP

DT0 PC→MAR

DT1 M→MDR→MAR,PC+1→PC

ET0 C→MDR

ET1 MDR→M

13.拟出下述程序的读取与执行过程:

(1)ADD R0,X(R1)

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 PC→MAR

ST1 M→MDR→D , PC+1→PC

ST2 D+R1→Z

ST3 Z→MAR

ST4 M→MDR→C

DTO R0→D

ET0 C ADD D→Z

ET1 Z→R0

(2)SUB (R1)+,(PC)+

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 PC→MAR

ST1 M→MDR→C

ST2 PC+1→Z

ST3 Z→PC

DT0 R0→MAR

DT1 M→MDR→D

DT2 R0+1→Z

DT3 Z→R0

Page 12: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

12

ET0 C SUB D→Z

ET1 Z→MDR

ET2 MDR→M

(3)AND (R3)+ , R0

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 R0→C

DT0 R3→MAR

DT1 M→MDR→D

DT2 R3+1→Z

DT3 Z→R3

ET0 C AND D→Z

ET1 Z→MDR

ET2 MDR→M

(4)OR R0 , DI

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 PC→MAR

ST1 M→MDR→MAR,PC+1→PC

ST2 M→MDR→C

DT1 R0→D

ET0 C OR D→Z

ET1 Z→R0

(5)EOR -(R2) , R1

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 R1→C

DT0 R2-1→Z

DT1 Z→MAR , R2

DT2 M→MDR→D

ET0 C EOR D→Z

ET1 Z→MDR

ET2 MDR→M

(6)INC -(R2)

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

DT0 R2-1→Z

DT1 Z→MAR , R2

DT2 M→MDR→D

ET0 INC D→Z

ET1 Z→MDR

ET2 MDR→M

(7)DEC (R1)

Page 13: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

13

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

DT0 R1→MAR

DT1 M→MDR→D

ET0 DEC D→Z

ET1 Z→MDR

ET2 MDR→M

(8)COM (R0)+

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

DT0 R0→MAR

DT1 M→MDR→D

DT2 R0+1→Z

DT3 Z→R0

ET0 COM D→Z

ET1 Z→MDR

ET2 MDR→M

(9)NEG DI

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

DT0 PC→MAR

DT1 M→MDR→MAR , PC+1→PC

DT2 M→MDR→D

ET0 NEG D→Z

ET1 Z→MDR

ET2 MDR→M

(10)SAL R1

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

DT1 R1→D

ET0 SAL D→Z

ET1 Z→R1

(11)SAR R2

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

DT1 R2→D

ET0 SAR D→Z

ET1 Z→R2

14.拟出下述程序的读取与执行过程:

(1)JMP R1

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ET0 R1→PC

Page 14: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

14

(2)JMP (R0)

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ET0 R0→MAR

ET1 M→MDR→PC

(3)JMP X(PC)

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 PC→MAR

ST1 M→MDR→D

ST2 D+PC→Z

ST3 Z→PC

(4)RST (SP)+

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ET0 SP→PC

ET1 M→MDR→PC

ET2 SP+1→Z

ET3 Z→PC

(5)JSR R0

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 R0→C

ET0 SP-1→Z

ET1 Z→MAR , SP

ET2 PC→MDR

ET3 MDR→M

ET4 C→PC

(6)JSR (R3)

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

STO R3→MAR

ST1 M→MDR→C

ET0 SP-1→Z

ET1 Z→MAR , SP

ET2 PC→MDR

ET3 MDR→M

ET4 C→PC

(7)JSR (R2)+

解: FT0 PC→MAR

FT1 M→MDR→IR,PC+1→PC

ST0 R2→MAR

ST1 M→MDR→C

Page 15: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

15

ST2 R2+1→Z

ST3 Z→R2

ET0 SP-1→Z

ET1 Z→MAR , SP

ET2 PC→MDR

ET3 MDR→M

ET4 C→PC

第 4 章 习题四

3. 在 8086/8088CPU 中,分别进行下列 8位二进制数的运算后,标志寄存器中 OF、

ZF、SF、CF 的值各是多少?

(1)10101011+01010101

结果, OF=0 , ZF=1 , SF=0 , CF=1

(2)11011010+11101101

(3)01010101 – 001111110

(4) 10110011– 01100010

Page 16: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

16

5. 试说明段基址和段基值的不同之处。

答:一个段起始单元的地址称为段基址(20 位),其低 4位必须位 0(可被 16 整

除)。

段基址的高 16 位称为段基值,它保存在段寄存器 CS、DS、SS、ES 中。

6. 试说明 8086/8088 主存储器的逻辑地址由哪两部分组成。

答:逻辑地址:段基值:偏移量 7. 设某一存储单元的物理地址是 34567H,试完成下列不同的逻辑地址表示。

(1) 3456H:0007H

(2)3400H:0567H

8. 假设某个程序装入主存后,(SS)= 0500H,(SP)= 64H,试计算该程序的堆

栈栈底的物理地址。

解:SP 的内容为栈顶单元相对堆栈段段基址的字节距离(偏移量)。当 SP 初始化

时,其值为栈顶的长度(这时 SP 指向栈底+2 单元)。所以堆栈栈底的物理地址为:

0500H×10H+64H-2 =05062H 习题 9. 假设堆栈寄存器(SS)= 1E2CH,程序中设定堆栈的长度为 100 个字节。

试计算该程序的堆栈栈底字单元的物理地址,堆栈指针 SP 的初始值(即堆栈中没有

数据时)和 SP 初始值指向的物理地址。

解: 100=64H

堆栈栈底字单元的物理地址: 1E2CH×10H+64H-2=1E322H 堆栈指针 SP 的初始值: 64H SP 初始值指向的物理地址:1E2CH×10H+64H=1E324H

习题 10. 设(SP)=40H,(BX)=1234H ,(DS)=5678H. 如现有两条压栈指令:

PUSH BX PUSH DS 试问两条指令执行后,图 4 – 46 中各单元的的数据是多少?(SP)等于多少?

答: (SP)=3CH

习题 11. 设(SP)=60H,则执行下述 3条指令后,(水平)的值为多少?

PUSH AX ; (SP)=5EH

PUSH BX ; (SP)=5CH

POP CX ; (SP)=5EH

解: (SP)=5EH

习题 12. 试分别说明下列各指令中源操作数和目的操作数使用的寻址方式,试说

明如何确定有效地址 EA.

(1) ADD AX , 0A51H

Page 17: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

17

(2) MOV BL , DATA1

(3) MOV DS , AX

(4) AND AL , VAR1+2

(5) TEST [SI] , CL

(6) OR ARRY [BX] ,

Page 18: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

18

(7) SUB DS:[01FEH] , DX

(8) ADC [BP][DI] , BH

(9) AND CX , - 19[BX][SI]

(10) PUSH ES

(11) CLC ; CF←0

13. 试分别指出下列各指令语句的语法是否有错误,若有错,指明是什么错误。

(1) MOV AL , 0F5H ;√

(2) (2)ADD [BX][BP] , BX ; √

(3) (3)CMP AL , 100H ; √

(4) (4)TEST [BP] , DL ; √

(5) (5)ADC 15H , CL ; × ADC 是双操作数指令; 目的地址不能为立即数

(6) (6)SUB [DI] , DA_WORD ; × 源操作数和目的操作数不能同时为存储器操

作数

(7) (7)OR CH , CL ; √

(8) (8)MOV AL , 1000H ; × 源操作数和目的操作数类型属性不一致

(9) (9)SAR 10H[DI] , 2 ; √移位次数大于 1时, 应由 CL 指定移位次数

(10) NOT AL , BL ; × NOT 是单操作数指令

(11) (11)DEC CX , 1 ; × DEC 是单操作数指令

(12) (12)LEA ES , TAB[BX] ; × LEA 指令的目的地址必须是通用寄存器

Page 19: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

19

14. 执行下面 2条指令后,标志寄存器中 CF,AF,ZF,SF 和 OF 分别是多少?

MOV AL , 91 ;91=01011011B

ADD AL , 0BAH ; 0BAH=10111010B

15. 假设(DS) = 091DH , (SS) = 1E4AH , (AX) = 1234H , (BX) = 0024H , (CX)

= 5678H , (BP) = 0024H , (SI) = 0012H , (DI) = 0032H , (09226H) = 00F6H ,

(09228H) = 1E40H , (1E4F6H) = 091DH . 试给出下列各指令或程序段执行的

分别执行的结果.

(1) (1)MOV CL , 20H[BX][SI]

解 : 源操作数的物理地址: (DS)×10H + 20H+(BX)+(SI)

将 09226H 字节单元的内容送 CL,结果(CL) = 00F6H

(2) MOV [BP][DI] , CX 解 : 目的操作数的物理地址: (SS)×10H + (BP)+(DI)

将 CX 寄存器的内容传送到 1E4F6H 字单元 , 结果 (1E4F6H) = (CX) = 5678H (3) (3)LEA BX , 20H[BX][SI]

MOV AX , 2[BX]

解 : 执行完第一句指令后,BX 的内容为:

第二句指令中,源操作数的物理地址为 EA = (DS)×10H+2+(BX)

将 09228H 字单元的内容送 AX 寄存器 , 结果 (AX) = 1E40H

(4)LDS SI , [BX][DI]

MOV [SI] , BX 解 : 第一句指令中源操作数的逻辑地址为 DS:(BX)+(DI)

其偏移量为 (BX)+(DI) = 0024H+0032H = 0056H,

执行完第一句指令后, (SI) = 0056H 第二句指令中,源操作数的物理地址为

(DS)×10H+(SI) = 091D0H+0056H = 09226H

Page 20: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

20

将 BX 寄存器的内容送 09226 单元 , 结果 (09226H) = (BX) = 0024H

(5)(5)XCHG CX , 32H[BX]

XCHG 20H[BX][SI] , AX

解 : 第一句指令中源操作数的物理地址为 (DS) × 10H+32H+(BX)= 09226H

09226H 字单元和 CX 寄存器的内容交换,结果 (CX) = 00F6H ,(09226H) = 5678H

第二句指令中目的操作数的物理地址为 (DS) × 10H++20H+(BX)+(SI) =

09226H

09226H 字单元和寄存器 AX 的内容交换, 结果 (09226H) = 1234H , (AX) = 5678H

16. 假设(SS)=0915H , (DS) = 0930H , (SI) = 0A0H , (DI) = 1C0H , (BX) = 80H ,

(BP) = 470H . 现有一指令“MOV AX , OPRD”, 若源操作数的物理地址为 095C0H ,

试用 4种不同寻址方式改写此指令,并要求至少使用上述条件一次.

解: 源操作数的物理地址与 DS 段基址的差为

095C0H – 09300H = 2C0H ① MOV AX , 100H[DI] ; 源操作数的物理地址为:

(DS)×10H+100H+(DI) = 09300H + 100H + 1C0H =095C0H

② MOV AX , 220H[SI] ; 源操作数的物理地址为:

(DS)×10H+220H+(SI) = 09300H + 220H + 0A0H =095C0H

③ MOV AX , 240H[BX] ; 源操作数的物理地址为:

(DS)×10H+240H+(BX) = 09300H + 240H + 080H =095C0H

④ MOV AX , 1A0H[SI][BX] ;源操作数的物理地址为:

(DS)×10H+0A0H+(SI)+(BX) = 09300H + 1A0H + 0A0H +080H = 095C0H

18. 假设(AX)=0A5C6H , (CX) = 0F03H , 则下列 4条指令执行后 , (AX) =

81C6H , CF= 1 .

STC ; CF = 1 RCL AX , CL ; AX= 0010 1110 0011 0110 , CF = 1 AND AH , CH ; AH = 0000 1110 , CF = 0 RCR AX , CL ; AX = 1000 0001 1100 0110, CF = 1

19. 假设(AX) = 0FC77H , (CX) = 504H , 则下列 4条指令执行后 , (AX)

= , CF = .

CLC ; CF = 0

SAR AX , CL ; (AX) = 1111 1111 1100 0111 , CF = 0

Page 21: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

21

XCHG CH , CL ; (CX) = 405H

SHL AX , CL ; (AX) = 1111 1000 1110 0000 ,CF = 1

20. 假设(AX) = 1234H , (BX) = 0FFFFH , 则下述 3条指令执行后 ,

(AX) = 1236H , (BX) = 0001H .

INC AX ; (AX) = 1235H

NEG BX ; (BX) = 0000 0000 0000 0001B = 0001H

ADD AX , BX ; (AX) = 1236H

21. 假设(AX) = 0FFFFH , 则下述程序段执行后 , (AX) = 0001H .

INC AX ; (AX) = 0000H

NEG AX ; (AX) = 0000 0000 0000 0001B = 0000H

DEC AX ; (AX) = 0FFFFH

NEG AX ; (AX) = 0001H

22. 假设(BX) = 12FFH , 则下述程序段执行后 ,

(BX) = 0012H , ZF = 0 , CF = 0 .

MOV CL , 8 ;(CL)=8

ROL BX , CL ;(BX) = 1111 1111 0001 0010B = 0FF12H

AND BX , 0FFH ; (BX) = 0012H

CMP BX , 0FFH ; (BX) = 0012H CF=0 ,ZF=0

解: ① 第一句指令执行后 , (CL)=8

② 第二句指令执行后 , (BX) = 1111 1111 0001 0010B = 0FF12H

③ 第三句指令执行后 , (BX) = 0012H

④ 第四句指令执行后 , (BX) = 0012H CF=0 ,ZF=0

23. 假设(AX) = 0B55BH , (DX) = 0F0FH , 则下述程序段执行后 , (AX) = 0FBABH.

AND AH , DL ; (AX) = 055BH

XOR AL , DH ;(AX) = 0554H

NEG AH ;(BX) = 1111 1011 0101 0100B = 0FD54H

NOT AL ; (AX) = 1111 1011 1010 1011H = 0FBABH

24. 假设(AX) = 0FF60H , 则下述程序段执行后 , (AX) = 0 , CF = 0 .

Page 22: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

22

STC ; CF = 1 MOV DX , 96 ; (DX) = 0060H

XOR DH , 0FFH ; (DX) = 1111 1111 0110 0000B = 0FF60H SBB AX , DX ; (AX) = 0

25. 假设(AL) = 08H , (BL) = 07H , 则下列程序段执行后 ,

(AH) = 01H , (AL) = 05H , CF = 1 .

ADD AL , BL

AAA

26. 假设 DF=0 , (DS:0100H) = 01A5H , 则下述程序段执行后, (AL) = 0A5H , SI

= 0102H .

MOV SI , 0100H

LODSW

解: LODSW 指令的功能:

① AX← (DS:(SI))

② SI← (SI)±1 或 2

③ 对标志位无影响

执行后 , (AX) = 01A5H , 即(AL) = 0A5H ,

(SI) = 0102H

28. 试按下列要求分别编制程序段: (1) (1)把标志寄存器符号位置“1”. 解: LAHF OR 10000000B SAHF (2) (2)寄存器 AL 中高低 4位互换.

解: MOV CL , 4

ROL AL , CL

或 MOV CL , 4

ROR AL , CL

(3)假设有 3个字存储单元 A,B,C,Z 在不使用 ADD 和 ADC 指令的情况下,实现 (A)+(B)→C.

解: MOV AX , A MOV BX , N

Page 23: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

23

NEG BX SUB AX , BX MOV C , AX (4) 把 DX , AX 中的 32 位无符号数右移 2

位.

解:SHR DX , 1 RCR AX , 1 SHR DX , 1 RCR AX , 1

(5)用一条指令把 CX 只的整数转变为奇数.

解:OR CX , 1 (6) 把 AX 的第 1,3 位求反,其余各位保持不变.

解:XOR AX , 0000000000001010B

第 5 章 习题五

1. 设VAR1,VAR2是变量名,请指出下列语句的语法是否有错.如有错,指出是什么错误.

(1)(1)MOV AX , VAR1+VAR2 ; 错误, 变量有段属性和偏移量属性,不能直接相加

减.

(2)(2)MOV CX , VAR1 – VAR2 ; 同上

(3)(3)MOV BL , AL SHR 3 ; 正确

(4)(4)MOV DX , AX AND 0FFH ;正确

(5)(5)MOV [SI] , 4 ; 正确

(6)(6)NEG VAR1[DI] ; 正确

(7)(7)ADD BYTE PTR[BX] , 1000 ; 错误,操作数类型不一致.

(8)(8)MOV AL , OFFSET VAR1 ; 错误,操作数类型不一致.

2. 在执行下列指令寻找操作数时,需要使用段寄存器 DS 的指令有哪些?

(1(1)LODSB √ (2) STOSB (3) ADD BX , 34H (4) SHL [BP] , 1 (5) NEG [BX] √ (6) (6) SHR [SI] , 1 √ (7) (7) MOV AX , [SI] √ (8)(8) SBB BX , [DI] √ (9) (9) MOVSB √ (10) CMPSB √

3. DB1 DB 5 DUP[3 DUP(2) 2 DUP(3)] MOV AL , DB1+4 MOV BX , WORD PTR DB1[3] 上面 2条指令执行后,(AX)=? (BX)=?

答: (AL) = 3 , (BX) = 0202H

Page 24: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

24

4. 下面程序段执行后,寄存器 AX , BX 的内容是多少?

ARY_W DW 10H DUP(1234H) ARY_B EQU BYTE PTR ARY_W ……

MOV AX , ARY_W+2 MOV BL , ARY_B+2

答:(AX) = 1234H, (BX) = 34H 5. 下面指令执行后,寄存器 DS 和 SI 的内容是多少?

ADR DW 1234H, 5678H, 0ABCDH …

LDS SI , ADR+1 答:(DS) = ADR 的段基址, (SI) = (ADR+1)的偏移量

6. 有下列数据段:

DATA SEGMENT ORG 30H

CON EQU 10H S1 DB ‘IBM PC’ DB 0AH, 0DH

CONT EQU $-S1 S2 DW ‘IB’,’M’,’PC’, 0A0DH DATA ENDS 上述数据段中 S1,S2 的偏移量分别是多少?CONT 的值和 S2+5 字节单元的内容是多

少?

答:S1 的偏移量为 30H, S2 的偏移量为 38H, CONT=8, (S2+5)=‘P’=50H 7. 下面各语句汇编后,变量 CON1,CON2 和 CON3 的内容是多少?

N1 = 10 = (00001010)2

N2 = 5 = (00000101)2

N3 = 3 = (00000011)2

Page 25: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

25

CON1 DB (N1 AND N2 OR N3) GE 0FH CON2 DW (N2 AND N1 XOR N3) LE 0FH CON3 DB (N1 MOD N3) LT (N2 SHR 1) 解: (CON1) = 00H ,

(CON2) = 0FFFFH (CON3) = 0FFH 8.设(DX) = 80 = 0000 0000 0101 0000B , CF=1

MOV AX , 0AA50H ; (AX) = 1010 1010 0101 0000B

XOR AH , 0FFH ; (AX) = 0101 0101 0101 0000B

OR DH , 55H 55H=0101 0101B (DX) = 0101 0101 0101 0000B

SBB AX , DX ; (AX) = 0FFFFH , (DX) = 5550H

上述指令序列执行后 , (AX) = ? (DX)=?

解:(AX) = 0FFFFH , (DX) = 5550H

9. 设 AX,BX,DX 中均有数据 0AAH,下面 3条指令执行后,AX,BX,CX 中的内容分别是

多少?

AND AX , - 2 OR BX , - 2 XOR CX , - 2 解:

11. DATA1 EQU BYTE PTR DADA2 DATA2 DW 0A987H , 3456H SAR DATA1+1,1

MOV AX , DATA2+1

SAL DATA2+1 , 1

MOV BX , DATA2=1

上述指令执行后,(AX)=? (BX)=? CF=? 以 DATA2 为首地址的两

个字单元内容是多少?

解: SAR DATA1+1,1;移位前 10101001,移位后 110100100,CF=1

Page 26: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

26

MOV AX , DATA2+1; (AX) = 3456H

SAL DATA2+1 , 1 ; 移位前 0011 0100 0101 0110

移位后 0110 1000 1010 1100,CF = 0

MOV BX , DATA2+1 ; (BX) = 68ACH

12. MOV AL , 0FH

XOR AL , 0FFH MOV CL , 7 SHR AL , CL 上述几条指令执行后,(AL)=? , 如将 SHR指令换成 ROR或 RCR,那么 AL的内容分别

为多少?

解:执行 XOR AL,0FFH 后

执行 SHR AL , CL 后,

结果, (AL) = 00000000B=0

14. DATA SEGMENT ORG $+10H

DA1 DB ‘ABCDEFEDCBA’ DA2 DB ‘E’ DATA ENDS ……

LEA DI , DA1

MOV AL , DA2

MOV CX , DA2 – DA1 CLD

REPNE SCASB

上述程序段运行后,(DI)=? (CX)=?

答: (DI) = DA1+4 , (CX)=5

16. DATA SEGMENT

VAR1 DB ? , ? VAR2 DB ? , ? ADR DW VAR1,VAR2 DATA ENDS 若要使 ADR+2 字单元的内容为 0022H, 上述空白处应填写什么语句?

解:上述空白处应填写

ORG 0020H 17.现有下列程序段:

MOV SI , OFFSET SOUR

Page 27: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

27

MOV DI , OFFSET DEST MOV CX , 20H CLD REP MOVSW 如果上述程序段不使用串操作指令(即取消 REP MOVSW

指令), 试修改程序段,完成原程序段功能.

解: MOV SI , OFFSET SOUR MOV DI , OFFSET DEST

MOV CX , 20H

LOP: MOV AX , [SI] MOV [DI] , AL

INC SI

INC SI

INC DI

INC DI

LOOP LOP

18. 下面是两个字符串的比较程序,比较结果存放在 RESULT 单元中.试问:

(1) 程序运行后,结果单元(RESULT)存放的内容表示什么意义?

(2) 如 SJ1 的字符串为‘captial’,SJ2 的字符串为‘captive’时,(RESULT)=?

SJ1 DB ‘…………’ SJ2 DB ‘…………’ RESULT DB 0 ……

LEA BX , SJ1

LEA DI , SJ2

CLD

LOP: MOV AL , [BX] SCASB

JNE EXIT

INC BX

JMP LOP

EXIT: SUB BX,OFFSET SJ1 MOV RESULT , BL

答:(1) (RESULT)存放的内容表示 SJ1 字串中第一个不同于 SJ2 字串的对应字符的偏

移量(相对于 SJ1).

(2) (RESULT) = 5 19. 仔细阅读下面程序,试给出程序运行结束后 BUF2 各字节存储单元的内

容。 DATA SEGMENT

BUF1 DW 0102H,0304H,0708H

COUNT EQU $ - BUF1

BUF2 DW 5 DUP(0)

DATA ENDS

COSEG SEGMENT

Page 28: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

28

ASSUME CS:COSEG, DS,DATA

BEING: MOV AX , DATA

MOV DS , AX

MOV BX , 0

MOV SI , 0

MOV DL , 2

LOP1: MOV CX , COUNT/2

LOP2: MOV AL , BYTE PTR BUF1[SI]

MOV BL , AL

ADD AL , BL

MOV BYTE PTR BUF2[BX] ,AL

INC SI INC SI

LOOP LOP2

MOV SI ,1

DEC DL

JNE LOP1

MOV 4CH

INT 21H

COSEG ENDS

END BEING

20. TEST DX , 01H JE L1

L1: ……

上述程序段运行后使 DX 中的数据形成偶数,如原来已是偶数,DX 中内容不变;如

DX 中原来是奇数,试回答:

(1)用加 1形成偶数,这时空白处应填一条什么指令?

INC DX

(2)用减 1形成偶数,这时空白处应填一条什么指令?

DEC DX

21.DA1 DB 2,3,7,0AH,0FH,4,5,9,8,0CH XOR AX , AX ; AX=0

MOV CL , 0 ; CL-0

MOV BX , 0 ; BX=0

LOP: TEST DA1[B X] , 01H ; 测试存储单元的数据是否偶数

JE NEST ; 是偶数,则跳转

ADD AL , DA1[BX] ;是奇数,将其累加

INC AH ; 计算奇数个数

NEXT:INC BX ;指向下一个存储单元

INC CL ;数据个数计数器

CMP CL , 10 ;运行后,(AL)=奇数之和=39=27H

Page 29: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

29

JNE LOP ;(AH)=10

上述程序运行后,AH 和 AL 的内容分别是多少?

22. AA1 DB 10H DUP(2) AA2 DW 10H DUP(0304H) ……

MOV BX , 0 ;设置数据指针

MOV AL , 0 ;设置累加器初值

MOV CX , 10 ;设置计数器初值

BB1: ADD AL , AA1[BX] ;累加

ADD AL , BYTE PTR AA2[BX] ;累加

INC BX ;修改数据指针

LOOP BB1 ;循环 10 次

上述程序段运行期间,当执行完 INC BX 且 (BX)=05H时,CX和 AL中的内容分别是多

少?

解:(AL)=2+4+2+3+2+4++2+3+2+4=28=1CH , (CX)=6

23. DB1 DB 4 DUP (2,4,6,8) LEA BX , DB1 MOV CX , 10H

MOV AX , 0

LOP: ADD AL , [BX] AND AL , 0FH

CMP AL , 8

JBE NEXT

INC AH

SUB AL , 08H

NEXT:LOOP LOP 上述程序段执行后,(AX)=?如果 LOOPNE 指令替代 LOOP 指令,那么上述程序段执行

后,(AX)=? (CX)=?

解:

Page 30: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

30

由上表可知道,上述程序段执行后,(AX)=0600H,(CX)=0

如果 LOOPNE 指令替代 LOOP 指令,那么上述程序段执行后,(AX)=0300H (CX)=8

24. 下面程序段是判断寄存器 AH 和 AL 中第三位是否相同,如相同,AH 置 0,否

则 AH 置非 0。试在空白处填上适当的指令(一个空白处只填一条指令)。

AND AH , 08H

MOV AL , 0FFH

JMP NEXT

ZERO: MOV AH , 00

NEXT: ……

25. 试用两条指令完成对寄存器 AH 和 AL 分别加 1,且 AL 中加 1形成的进位加在

AH 低位,AH 中形成的进位加在 AL 的 低位.

解: INC AX , 0101H

ADC AL , 0 26. 在数据段中有一乘法表(TAB1~TAB9),乘数和被乘数分别在 MUL1 和 MUL2 的字

节单元中.试编写一程序,用查表法求出(MUL1)*(MUL2)的乘积.数据段如下:

DATA SEGMENT

TAB1 DB 1,2,3,4,5,6,7,8,9

TAB2 DB 2,4,6,8,10,12,14,16,18

TAB3 DB 3,6,9,12,15,18,21,24,27

TAB4 DB 4,8,12,16,20,24,28,32,36

TAB5 DB 5,10,15,20,25,30,35,40,45,

TAB6 DB 6,12,18,24,30,36,42,48,54

TAB7 DB 7,14,21,28,35,42,49,56,63

TAB8 DB 8,16,24,32,40,48,56,64,72

TAB9 DB 9,18,27,36,45,54,63,72,81

MUL1 DB 3

MUL2 DB 6

PROD DB 0

DATA ENDS

解:

MOV BX,OFFSET DA1

MOV DL,MUL1

DEC DL

MOV DH,00H

ADD BX.DX

MOV AL,MUL2

DEC AL

MUL AL,9

ADD AL,DL

Page 31: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

31

ADD BX,AX

MOV AL,[BX]

MOV PROD,AL

27. 试编写一程序,把 DA_BY1 字节存储单元的 8位二进制数分解为 3个八进制

数,其中字高位八进制数存放在DA_BY2的字节单元中, 低位存放在DA_BY2+2单元中.

例如数据单元定义如下:

DA_BY1 DB 6BH

DA_BY2 DB 3 DUP(0)

解:

LEA DI , DA_BY+2

MOV AL , DA_BY1

XOR AH , AH

MOV DL , 3

MOV CL , 3

SHL AX , 3

LOP: SHR AL , CL

PUSH AX

AND AL , 7

MOV [DI] , AL

DEC DI

DEC DL

POP AX

JNZ LOP

29.试编制一程序,统计 DA_WORD 数据区中正数, 0 , 负数的个数.数据区为:

DATA SEGMENT

DA_WORD DW - 1,3,5,0, - 5, -7, - 4,0, -7, ……

COUT1 DB $ - DA_WORD

COUT2 DB 0 ; 存放正数的个数

DB 0 ; 存放 0的个数

DB 0 ; 存放负数的个数

解:

MOV BX , OFFSET DA_WORD ;BX 指向数据区

MOV CX , COUT1 ;设置循环次数

LOP: MOV AX , [BX] ;取数

CMP AX , 0 ;比较

JE ZERO 小于 0,转 ZERO

JL LESS ;负数,转 LESS

Page 32: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

32

INC COUT2 ;统计正数个数

ZERO: INC COUT2+1 ;统计 0的个数

JMP NEXT

LESS: INC COUT2+2 ;统计负数个数

NEXT: INC BX ;BX 指向下一个数据

LOOP LOP ;循环

30. 试编制一程序,完成在数据区内可任选下列两种数据之一,并显示排列结果.产

生哪种数据排列,由键盘输入 1或 2来确定.

第一种排列:‘0’,‘A’,’1’,’B’,’2’,’C’, … ’9’,’J’ 第二种排列:‘A’,’0’,’B’,’1’,’C’,’2’, … ‘J’,’9’ 解:

DATA SEGMENT

DA1 DB ‘0123456789’ DA2 DB ‘ABCDEFGHIJ’ DATA ENDS

……

LEA SI , DA1

LEA DI , DA2

MOV CX , 10

MOV AH , 01H

INT 21H

CMP AL , 1

JE NEXT1

CMP AL , 2

JE NEXT2

JMP EXIT

NEXT1: MOV DL , [SI]

MOV AH , 02H

INT 21H

MOV DL , [DI]

MOV AH , 02H

INT 21H

INC SI

INC DI

LOOP NEXT1

JMP EXIT

NEXT1: MOV DL , [DI]

MOV AH , 02H

INT 21H

MOV DL , [SI]

MOV AH , 02H

INT 21H

INC SI

Page 33: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

33

INC DI

LOOP NEXT1

EXIT: ……

31.仔细阅读下面程序段试回答:

(1)该程序段完成的功能是什么?

(2)如果(AL)=36H,程序运行用后,(AL)=?

MOV BL , AL ; 暂存 AL 到 BL

AND AL , 0F0H ; 屏蔽 AL 的低 4位

MOV CL , 04H ; SHR AL , CL ; 将 AL 的高 4位右移到低 4位

SAL AL , 1 ; (AL)×2

MOV CL , AL ; (AL) ×2 暂存 CL

SAL AL , 1 ; (AL) ×4

SAL AL , 1 ; (AL) ×8

ADD AL , CL ; (AL) ×10

AND BL , 0FH ; 屏蔽 AL 的高 4位

ADD AL , BL ; (AL) ×10+低 4 位 (1) (1)将 AL 中的十进制数转换为二进制数.

(2) (AL) = 24H 32. 下面程序用 DOS 的 号功能从键盘接收字符.试问:

(1)程序运行结束结束后,如(BL)=0,表示从键盘接收的字符范围是 什么:如(BL)=1,

表示从键盘接收的字符是什么?

(2)程序在什么情况下结束?

LOP : MOV AH , 1

INT 21H

CMP AL , ‘*’ JE EXIT

CMP AL , ‘0’ JB ONE

CMP AL , ‘9’ JBE ZERO

CMP AL , ‘A’ JB ONE

CMP AL , ‘Z’ JBE ZERO ONE: MOV BL , 1

JMP LOP

ZERO MOV BL , 0

JMP LOP

EXIT: MOV AH , 4CH INT 21H

答:(1)(BL)=0,表示键盘接收的字符是‘0’~‘9’或‘A’~’Z’,(BL)=1,表示键盘接收的字符

是‘0’~‘9’或‘A’~’Z’之外的字符

(2)程序在键盘输入‘*’时结束.

Page 34: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

34

第 6 章 习题六

1.在三级存储体系中,主存、外存和高速缓存各有什么作用?各有什么特点?

答:主存储器用来存放需 CPU 运行的程序和数据。外存用来存放暂不运行但需联机

存放的程序和数据。Cache 用来存放当前运行的程序和数据。

主存存储容量较大,速度较快,但价格较贵。外存容量可以很大,速度慢,价格便

宜。Cache 存储容量较小,速度 快,价格 贵。

2.主存容量可以用哪些指标来描述?

答;主存容量可以用字节数或单元数×位数来描述。

3.什么的随机存取方式?哪些存储器采用随机存取方式?

答:所谓随机存取方式,是指能按地址直接访问存储器中的任一单元,访问时间与

地址无关。

Cache 与主存采用随机存取方式。

4. 什么的顺序存取方式?哪些存储器采用顺序存取方式?

答:所谓顺序存取方式,,信息是以文件或数据块的形式顺序存放,信息在载体上

没有唯一对应的地址。存取时按顺序地找到所需文件、数据块的位置。存取时间的长

短与信息在载体上的位置有关。磁带采用顺序存取方式。

5. 什么的直接存取方式?哪些存储器采用顺序存取方式?

答:所谓直接存取方式,当要存取所需信息时,第一步直接指向整个存储器中的某

一个小区域;第二步在小区域内顺序检索或等待,直到找到目的地再进读写。其存取

时间与信息所在的位置有关。磁盘采用直接存取方式。

6. 什么是静态存储器?它采用什么原理存储信息?

答:静态存储器是在计算机的运行过程中不需要刷新的半导体存储器,一旦通电,

就长期保存信息。它是依靠触发器的两个稳定状态来存储信息的。

7. 什么是静态存储器?它采用什么原理存储信息?

答:动态存储器是在计算机的运行过程在需要不断刷新的半导体存储器,计算机

运行期间需定期地向存放“1”的电容重新充电以补充沿泄露通路泄露掉的电荷。动

态存储器是依靠电容是的电荷存储信息的。

8. 什么是刷新?刷新周期的安排有哪几种方式?

答:动态刷新是指定期地向存放“1”的电容重新充电以补充沿泄露通路泄露掉的

电荷。刷新周期的安排有三种方式:集中刷新方式、分散刷新方式、异步刷新方式。

9. 某半导体存储器容量为 16K×8 位,可选用 RAM 芯片(2K×4 位/片)。地址总线

A15~A0(低),双向数据总线 D7~D0(低),读写控制信号 R/W,片选低电平有效。

请设计并画出该存储器逻辑图,给出芯片地址分配和片选逻辑式,注明地址线、数据

线、读/写控制线及片选信号的连接。

解:

(1)计算芯片数 扩展位数:用两片 2K×4 位的芯片相连接,可扩展容量至 2K×8

位;

扩展单元数:用 8组这样的芯片(2K×8 位)可将容量 终扩展为 16K×8 位;

由此计算出需要 16 片 2K×4 位的芯片。

16K×8 位的容量,需用 8片 2K×4 位/片的芯片。

Page 35: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

35

(2)地址分配

片选逻辑:

芯片容量 芯片地址 片选信号 片选逻辑

2K A10~A0 CS0 A13A12 A11

2K A10~A0 CS1 A13A12 A11

2K A10~A0 CS2 A13A12 A11

2K A10~A0 CS3 A13A12 A11

2K A10~A0 CS4 A13A12 A11

2K A10~A0 CS5 A13A12 A11

Page 36: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

36

2K A10~A0 CS6 A13A12 A11

2K A10~A0 CS7 A13A12 A11

逻辑框图

10.某主存容量为 7KB,其中 ROM 区 4KB,选用 EPROM 芯片(4K×8 位/片);RAM 区

3KB,选用两种 SRAM 芯片(2K×4 位/片,1K×4 位/片)。地址总线 A15~A0(低),

双向数据总线 D7~D0(低),读写控制信号 R/W,片选低电平有效。请设计并画出该

存储器逻辑图,给出芯片地址分配和片选逻辑式,注明地址线、数据线、读/写控制

线及片选信号的连接。

解: (1)计算芯片数

选用 1片 4K×8 位/片的 EPROM;选用 2片 2K×4 位/片的 SRAM 和 2 片 1K×4 位/

片的 SRAM。

(2)地址分配与片选逻辑

Page 37: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

37

片选逻辑:

芯片容量 芯片地址 片选信号 片选逻辑

4K A11~A0 CS0 A12

2K A10~A0 CS1 A12 A11

1K A9~A0 CS2 A12 A11 A13

逻辑框图

第 7 章 习题七

1. 什么是并行接口?什么是串行接口?

答:所谓并行接口是指,接口与系统总线之间,接口与外设之间均按并行方式传送

数据。它需要多根传送线,同时传送若干位数据,传送速度快。

所谓串行接口是指,接口与外部设备之间采用串行方式传送数据,接口与系统总

线之间仍按并行方式进行传送,接口与外设之间只需一根传送线,分时逐位地传送数

据。传送速度慢。

2. 什么是总线?系统总线与外总线在功能、信号组成是有什么区别?

答:总线是一组能为多个部件分时共享的信息传送线路。它可以连接多个部件,某

一时刻只能有一个部件可通过总线发送数据,但可将该数据传送至一个或同时传送至

多个部件。

系统总线用来连接计算机系统内各大功能部件,如 CPU、主存、I/O 接口,或连接

系统内的各个插件板。系统总线一般包括地址线、数据线和控制信号线。外总线用来

连接多个计算机系统,或连接计算机系统与其它设备。系统总线大致包括下列类型的

信号:电源与地、地址、数据,同步定时信号或异步应答信号,数据传送控制信号、

中断请求与批准信号,总线请求与批准、系统复位等。

3. 同步总线、异步总线和扩展同步总线各有什么特点?分别用在哪些场合?

答:同步总线传送操作由统一的同步时序信号控制,它适用于系统内部各部件之间

传送时间差异较小、传送时间确定、传送距离较短的场合,例如,CPU 总线和局部总

Page 38: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

38

线往往采用同步总线。异步总线根据各部件的实际需要,以异步应答方式控制总线传

送操作,常用于各部件传动速度差异较大、传送距离较长、传送时间不确定的场合,

例如外总线多为异步总线。同步扩展总线采用以同步方式为基础的做法,使异步事件

同步化,其总线长度周期不是确定的,而是根据需要灵活调整,故时间利用率高,系

统总线常采用同步扩展总线。

4. 什么是程序中断方式?它有什么特点?应用在哪些场合?

答;程序中断方式是指:CPU 在执行程序的过程中,若遇到中断请求则暂时停止现

行程序的执行,转去执行中断服务程序,当处理完毕后返回原程序继续执行。

程序中断方式的特点是程序切换和随机性。

程序中断方式的运用场合:(1)处理中、低速 I/O 操作,实现主机与外设的并行

工作;(2)处理故障;(3)进行实时处理;(4)使用软中断;(5)实现人机对话;

(6)实现多机通信。

5. 什么是向量中断?什么是非向量中断?

答:向量中断是指:将各个中断服务程序的入口地址(中断向量)组织在中断向量

表中。当 CPU 响应中断时,由硬件直接产生对应于中断源的向量地址,按该地址访问

向量表,取得服务程序的入口地址,转入相应的中断服务程序。

非向量中断是指:将各个中断服务程序的入口地址编写在一个查询程序中。当 CPU

响应再时,按固定地址转入查询程序执行,查找并确定中断源,再由查询程序切换到

相应的中断服务程序。

6. 什么是中断向量、中断向量表、向量地址?

答:中断向量是指中断服务程序的入口地址和服务程序的状态字。中断向量表是指

集中存放中断向量的一张一维表。向量地址是指访问中断向量表的存储器地址。

7. 中断接口由哪几部分组成?各部分的功能是什么?

答:中断接口由以下几部分组成:

(1)寄存器选择逻辑。其功能是对接口中的寄存器寻址,选择逻辑对系统总线送

来的地址译码后形成一组选择信号,选中某个寄存器供 CPU 访问。

(2)命令字寄存器。其功能是接收 CPU 送来的命令字,转换为一组操作命令后由

接口送往设备。

(3)状态字寄存器。其功能是反映设备和接口的状态,及时将设备和接口的有关

状态信息传送给 CPU,以便 CPU 分析、判断后作出相应的处理。

(4)数据缓冲寄存器。其功能是暂时存放主机和外设需要交换的数据,起到数据

缓冲的这样,使主机和外设能够实现速度匹配。

(5)控制逻辑。中断接口中的中断控制逻辑设置有中断请求信号产生逻辑,以实

现设备对 CPU 的中断请求。串行接口中的还需移位逻辑和控制时序,实现串-并转换

及移位等功能。

(6)公用的中断控制器。其功能是接收各接口产生的中断请求信号,经过屏蔽和

判优,形成公共的请求信号 INT 送往 CPU。在收到 CPU 发来的中断响应信号 INTA 后,

中断控制器又通过数据总线,向 CPU 送出获得响应的中断源的类型号。

8. 以向量中断为例,简述从申请中断到转入中断服务程序的过程。

答:当设备完成一次操作,便可通过接口中的中断请求触发器向 CPU 提出中断请求。CPU 接到

中断请求信号后时。如果处于开中断状态,并且也未出现更高级别的请求,便在当前指令结束时

响应中断,进入中断响应周期,在中断响应周期发中断响应信号,查询中断源,CPU 将中断请求

响应信号 INTA 送往中断源,通知中断源送出相应的中断类型号;然后关中断;保存断点;CPU 接

Page 39: 习题及解答 第1 章 习题一 - 100xuexi.comfile.100xuexi.com/XXSub/MatUpPT/File/201110251443483288230.pdf第1 章 习题一 1.什么是程序存储工作方式? ... 对源程序的处理通常有两种处理方式:解释方式和编译方

39

收中断控制器送来的中断类型号,将它转换为对应的向量地址,再按向量地址访问中断向量表,

读取相应的服务程序入口地址,转入中断服务程序。

9. 多重中断处理过程与单级中断处理过程有什么不同?

答:多重中断处理过程包括:保护现场→送新屏蔽字,开中断→具体服务→关中断→恢复现场

→开中断,返回。单重中断包括:保护现场→具体服务→恢复现场→开中断,返回。单重中断没

有送屏蔽字、开中断及关中断的过程。

10. 什么是 DMA 方式?它有什么特点?运用在哪些场合?

答:DMA 方式是直接依靠硬件在主存与设备之间传送数据,在此期间不需要 CPU 干预。其特点

是随机性、更高的并行性、传送速度快及操作简单。应用场合:(1)用于磁盘等高速外存的数据

块传送;(2)用于高速通信设备的数据帧传送;(4)用于高速数据采集;(4)用于动态存储器

刷新。

11. DMA 过程包括哪三个阶段?各阶段分别完成哪些操作?

答:DMA 过程包括以下三个阶段:初始化阶段、DMA 传送阶段、善后处理阶段。

在初始化阶段,由程序解决传送方向、主存首址、交换量、外设寻址信息等初始化信息。在 DMA

传送阶段,由硬件完成 DMA 请求,DMA 响应和 DMA 传送。在善后处理阶段,由接口提出中断请求,

CPU 响应中断后,执行中断服务程序,判断传送的数据是否正确。如有误,则作相应处理;或重

新初始化,准备下一次传送等等。