微机原理及接口技术习题解答与实验指导 下载本文

第一部分 学习指导与习题解答 .................................................................................................. 3 第1章 计算机基础 .................................................................................................................. 3

1.1 学习指导 ...................................................................................................................... 3 1.2 单项选择题 ..................................................................................................................... 3 1.3 判断题 ............................................................................................................................... 6 1.4填空题 ................................................................................................................................ 6 1.5 简答题 ............................................................................................................................... 7 第2章 微处理器 ...................................................................................................................... 9

2.1 学习指导 ........................................................................................................................... 9 2.2单项选择题 ...................................................................................................................... 10 2.3判断题 .............................................................................................................................. 15 2.4填空题 .............................................................................................................................. 16 2.5 简答题 .......................................................................................................................... 18 第3章 80x86指令系统 ............................................................................................................. 21

3.1学习指导 .......................................................................................................................... 21 3.2单项选择题 ...................................................................................................................... 23 3.3 判断题 ........................................................................................................................... 28 3.4 填空题 ............................................................................................................................. 29 3.5 简答题、 ....................................................................................................................... 33 3.6. 分析程序题 .................................................................................................................... 39 3.7 编程题 ........................................................................................................................... 41 第四章 ............................................................................................................................................ 44

4.3 判断题 ........................................................................................................................... 50 4.4 填空题 ........................................................................................................................... 52 4.5 简答题 ........................................................................................................................... 62 4.6 分析程序题 ................................................................................................................... 74 4.7 编程题 ........................................................................................................................... 82 第5章 半导体存储器及其接口技术 ........................................................................................ 114

5.1 学习指导 ..................................................................................................................... 114 5.2单项选择题 .................................................................................................................... 115 5.3判断题 ......................................................................................................................... 118 5.4填空题 ......................................................................................................................... 118 5.5简答题 ......................................................................................................................... 120 5.6应用题 ......................................................................................................................... 122 第6章 微型计算机接口技术 .................................................................................................. 131

6.1 学习指导 .................................................................................................................. 131 6.2单项选择题 ................................................................................................................. 131 6.3判断题 ......................................................................................................................... 135 6.4填空题 ......................................................................................................................... 136 6.4填空题 ............................................................................................................................ 137 6.5简答题 ......................................................................................................................... 138 第7章,简单接口电路设计 ...................................................................................................... 145

7.1 学习指导 .................................................................................................................. 145 7.2单项选择题 ................................................................................................................. 145 7.3判断题 ............................................................................................................................ 146 7.5应用题 ......................................................................................................................... 146 第8章 可编程接口技术 .......................................................................................................... 152

1

8.1可编程计数器8253/8254 ........................................................................................ 152

8.1.1学习指导 ....................................................................................................... 152 8.1.2单项选择题 ................................................................................................... 153 8.1.3判断题 ........................................................................................................... 154 8.1.4填空题 ........................................................................................................... 155 8. 1 . 5 简答题 ..................................................................................................................... 155

8.1.6 应用题 ................................................................................................................ 156 8.2 并行通信接口8255A ................................................................................................... 158

8.2.1 学习指导 ............................................................................................................ 158 8.2.2 单选题 ................................................................................................................ 159 8.2.3 判断题 ................................................................................................................ 160 8.2.4 填空题 ................................................................................................................ 160 8.2.5应用题 ................................................................................................................. 161 8.3串行通信接口8250/8251 .............................................................................................. 166

8.3.2 单项选择题 ........................................................................................................ 167 8.3.3判断题 ......................................................................................................................... 168 8.4可编程中断控制器8259A ............................................................................................ 173

8.4.1 学习指导 ............................................................................................................ 173 8.4.2单选题 ................................................................................................................. 174 8.4.3 判断题 ................................................................................................................ 176 8.4.4 填空题 ............................................................................................................. 176 8.4.5 简答题 ................................................................................................................ 177 8.4.6 应用题 ................................................................................................................ 179

第9章 自 检 试 卷 ............................................................................................................ 182

9.1 自检试题一 ................................................................................................................. 182 自检试题二 .......................................................................................................................... 187

2

第一部分 学习指导与习题解答 第1章 计算机基础

1.1 学习指导

本章主要内容包括: 1.计算机的发展

2.整机概念

计算机由处理器、存储器、输入/输出接口及三总线(数据总线DB、地址总线AB、控制总线CB)组成,如图1-1所示。其中:数据总线为双向三态,地址总线为单项三态,控制总线的各信号线特点各异。

3.计算机中数和编码的表示

1) 进制表示及相互之间的转换,重用的有:二进制数、十进制数、十六进制数。

2) 有符号数的表示(包括:真值、原码、反码、补码)及相互之间的转换。值得注意的是: ? 正数的原码、反码和补码相等。 ? 负数的反码等于其原码你的符号位不变,其他位求反。 ? 负数的补码等于其原码的符号位不变吗,其他位求反后加以。 ? 常用的补码运算规则: [X]原=[[X]补]补 [X]原=[[X]反]反

[X±Y]补=[X]补±[Y]补

3) 编码的那表示,包括:非压缩型BCD码(用8位二进制数表示1位十进制数,其中高4位为0)、压缩型BCD码(用8位二进制数表示2位十进制数)、ASCⅡ码(美国信息交换校准代码,参见附录A)。 4.微机系统中采用的先进技术 微机系统中采用的先进技术,包括:流水线技术、高速缓冲存储技术、虚拟存储技术、CISC和RISC、多核心技术等。

1.2 单项选择题

1.从第一代电子计算机到第四代计算机的体系结构都是相同的,都是由运算器、控制器、存储器以及输入输出设备组成的,称为()体系结构。

A.艾伦?图灵 B.罗伯特?诺依斯 C.比尔?盖茨 D.冯?诺依曼 [解] D

2.电子计算机从问世到现在都遵循“存储程序”的概念,最早提出它的是( )。 A.巴贝奇 B.冯?诺依曼 C.帕斯卡 D.贝尔 [解] B

3.目前制造计算机所采用的电子器件是( )。

A.晶体管 B.电子管 C.中小规模集成电路 D.超大规模集成电路 [解] D

4.计算机之所以能自动连续进行数据处理,其主要原因是( )。

3

A.采用了开关电路 B.采用了半导体器件 C.具有存储程序的功能 D.采用可二进制 [解] C

5.计算机中存储数据的最小单位是二进制的( )。 A.位(比特) B.字节 C.字长 D.千字节 [解] A

6.一个字节包含( )个二进制位。

A.8 B.16 C.32 D.64 [解] A

7.二进制数011001011110B的十六进制表示为( )。 A. 44EH B. 75FH C. 54FH D. 65EH [解] D

8.二进制数011001011110B的八进制表示为( )。 A.4156Q B.3136Q C.4276Q D.3176Q [解] B

9.设(123)16=(X)8=(Y)2,其中下表分别表示十六进制,八进制,二进制,则X和Y因为(A.X=246, Y=010101110 B.X=443, Y=100100011 C.X=173, Y=01111011 D.X=315,Y=1100110 [解] B

10.下面是四个无符号数的大小顺序,正确的比较式是( )。

A. 0FEH>250D>37Q>01111111B B. 250D>0FEH>371Q>01111111B C. 371Q>0FEH>250D>01111111B D. 01111111B>0FEH>250D>371Q [解] A

11.带符号的八位二进制补码的表示范围是( ).

A. -127~+127 B.-32768~+32768 C. -128~+127 D. -32768~+32767 [解] C

12. 十进制负数—61的八位二进制原码是( )。

A. 00101111B B. 00111101B C. 01111001B D. 10111101B [解] D

13.十进制正数+121的八位二进制反码是( )。 A. 00000110B B. 01001111B C. 01111001B [解] C

14. —89的八位二进制补码为( )。

A. B9H B. 89H C. 10100111B D. 00100111B [解] C

15. 无符号二进制数00001101.01B的真值位( )。 A. 13.25 B. 0B.1H C. 0B.4H D.13.01 [解] A

16.有符号二进制原码数10000001B的真值为( )。 A. 01H B.—1 C. 128 [解] B

17.数D8H被看做是用补码表示的符号数十,该数的真值为( )。 A. —58H B.—28H C.—40 [解] C

18.数4FH被看做是用反码表示的有符号数时,该数的真值为( )。 A. +30H B. -28H C. -40 [解] B

19.计算机内的溢出是指其运算结果( )。 A. 无穷大

4

。 ) B. 超出了计算机内存储单元所能存储的数值范围。

C. 超出了该指令所指定的结果单元所能存储的数值范围。 D. 超出了运算器的取值范围。 [解] C

20. 两个十六进制补码数进行运算3AH+B7H,其运算结果( )溢出。 A. 有 B. 无 [解] B

21. 二进制数11101110B转换为BCD码为( )。

A. 001000110011B B. 001001010010B C. 001000111000B D. 001000110010B [解] C

22. 键盘输入1999时,实际运行的ASCⅡ码是( )。

A. 41H49H47H46H B. 61H69H67H66H C. 31H39H39H39H D. 51H59H57H56H [解] C

23. 一个完整的计算机系统通常应包括( )。

A. 系统软件和应用软件 B. 计算机及其外围设备 C. 硬件系统和软件系统 D. 系统硬件和系统软件 [解] C

24. 通常所说的“裸机”指的是( )。

A. 只装备有操作系统的计算机 B. 不带输入输出设备的计算机 C. 为装备任何软件的计算机 D. 计算机主机暴露在外 [解] C

25.计算机运算速度的单位是MI/S(即MIPS),其含义是( )。 A. 每秒钟处理百万个字符 B. 每分钟处理百万个字符 C. 每秒钟执行百万条指令 D. 每分钟执行百万条指令 [解] C

26. 通常所说的32位机,指的是这种计算机的CPU( )。

A. 是由32个运算器组成的 B. 能够同时处理32位二进制数据 C. 包含有32个寄存器 D. 一共有32个运算器和控制器 [解] B

27. 运算器的主要功能是( )。

A. 算术运算 B. 逻辑运算 C. 算术和逻辑运算 D. 函数运算 [解] C

28. 在一般微处理器中包含有( )。

A. 算术逻辑单元 B. 主内存 C. I/O单元 D. 数据总线 [解] A

29. 一台计算机实际上是执行( )。

A. 用户编制的高级语言包程序 B. 用户编制的汇编语言程序 C. 系统程序 D. 由二进制码组成的机器指令 [解] D

30. 构成违纪的主要部件除CPU、系统总线 、I/O接口外,还有( )。 A. CRT B. 键盘 C. 磁盘 D. 内存(ROM和RAM) [解] D

31.计算机的字长是指( )。 A. 32位长的数据

B. CPU数据总线饿宽度

C. 计算机内部一次可以处理的二进制数码的位数 D. CPU地址总线的宽度

5

[解] D

1.3 判断题

1. 汇编语言就是机器语言。( )

2. 所谓三总线就是数据总线、控制总线、地址总线。( ) 3. 计算机中所有数据都是以二进制形式存放的。( ) 4. 若[X]原=[X]反=[X]补,则该数为正数。( )

5. 补码的求法是:正数的补码等于原码,负数的补码是原码连同符号位一起求反加1( ) 6. 无论是什么违纪,其CPU都具有相同的机器指令。( ) 7. 与二进制数11001011B等值的压缩型BCD码是11001011B。( ) 8. 十进制数378转换成十六进制数时1710H。( )

9. 与十进制小数0.5625等值的二进制小数1.0011B。 ( ) 10. 二进制数10111101111B转换成十六进制数时FE5H。( ) 11. 如果二进制数11111B~01111B的最高位为符号位,其能表示31个十进制数。 ( ) [答案]

1.错 2. 对 3. 对 4.对 5. 错 6. 错 7. 错 8.错 9. 错 10. 错 11. 对

1.4填空题

1. 冯?诺依曼原理的基本思想是(1)和(2)。 [解] (1)程序储存 (2)程序控制 2.第一代计算机采用的电子器件是(1). [解] (1) 电子管

3.一个完整的计算机系统应包括(1)和(2)。 [解] (1)硬件系统 (2)软件系统 4.计算机中所谓三总线包括(1)、(2)和(3)。 [解] (1)数据总线 (2)地址总线 (3)控制总线

5.计算机系统中数据总线用于传输 (1) 信息,其特点是 (2) 。地址总线用于传输 (3)

信息,其特点是 (4) 。如果CPU的数据总线与地址总线采用同一组信号线,那么系统中需要采用出地址总线。

[解] (1)数据 (2)双向三态 (3)地址 (4)单向三态 (5)锁存器 6.计算机的软件可以分成两大类,即 (1) 和 (2)。 [解] (1)系统软件 (2)应用软件

7.在计算机中的负数以 (1) 方式表示,这样可以把减法转换为加法。 [解](1)补码

8.在计算机内部,所有信息的存取、处理、传送都是以 (1) 形式进行的。 [解] (1)二进制编码

9.对于一个字节的带符号数可表示的最大正数为 (1) ,最小负数时 (2) 。 [解] (1)+127 (2)—128

10.一个8位二进制补码数10010011B等值扩展为16位二进制数后,其机器数为 (1) 。

6

5) 分离 ([解] (1)11111111 10010011B

11.用补码表示的二进制数10001000B转换为对应的十进制数真值为 (1) 。 [解] (1)—120

12.设机器字长为8 位,已知X=-1,则[X]原= (1) ,[X]反= (2) , [X]补= (3) 。 [X+Y]补= (3) 。

[解] (1)10010101B (2)01001010B (3)11011111B 13.将十进制整数4120分别转换为相对应的二进制数、八进制数和十六进制数。其转换结果分别为 (1) 、 (2) 、 (3) 。

[解] (1)1 0000 0001 1000B (2)10030Q (3)1018H

14.若X=-107,Y=+74。按8位二进制可写出:[X]补= (1) ;[Y]补= (2) ; [X+Y]补= (3) 。

[解] (1)10010101B (2)01001010B (3)11011111B

15.若X=-128,Y=-1,机器字长为16位,求:[X]补= (1) ; [Y]补= (2) ; [X+Y]补= (3) 。

[解] (1)FF80H (2)FFFFH (3)FF7FH 16.将十进制小数0.65625转换为相对应的二进制数、八进制数和十六进制数。其转换结果分别为 (1) , (2) , (3) 。

[解] (1)0.10101B (2)0.52Q (3)0.A8H 17.将二进制数1001.101B,八进制数35.54Q,十六进制FF.1H转换为十进制,结果分别为 (1) , (2) , (3) 。 [解] (1)9.625D (2)29.6875D (3)255.0625D

18.一个二进制数11111010B转换成压缩的BCD码的形式为 (1) 。 [解] (1)250H

19.有一个16位的二进制数0100 0001 0110 0011B,与它等值的十进制数是 (1) ,如果是压缩BCD码表示的数是 (2) 。

[解] (1) 16739 (2)4163

20.十进制数255的ASCⅡ码,可以表示为 (1) ;用压缩型BCD码表示为 (2) ; 其16 进制数表示为 (3)。

[解] (1)32H 35H35H (2)00000010 01010101B (3)0FFH 21.可将36.25用IEEE754的单精度浮点格式表示成 (1) 。 [解] (1) C210000H

1.5 简答题

1.简述数据总线和地址总线各自具有的特点。如果某CPU的数据总线与地址总线采用同一组信号线,可以采用什么方法将地址总线分离出来。

[解] 数据总线的特点为双向三态,其总线位数决定CPU与外部一次传输的位数。地址总线的特点为单向三态,其总线位数决定CPU对外部寻址的范围。如果某CPU的数据总线与地址总线采用同一组信号线,可以采用锁存器将地址总线分离出来。‘

2.试举例说明什么是压缩型(或称组合型)BCD码?什么是非压缩型(或称非组合型)BCD码?

[解]压缩型BCD码为一字节表示2位十进制数,如:36H表示36。非压缩型BCD码为一字节表示1位十进制数,其中高4位为0。如:0306H表示36。

3.在计算机中常采用哪几种数值?如何用符号表示?

[解] 在计算机中常采用二进制、八进制、十进制、十六进制数等。为了明确所采用的数值,在相应数的末尾都采用对应的符号说明。其中十进制用D表示(D-Decimal可以默认不写),

八进制原为 Octonary,为避免与数字0混淆,用字母Q表示八进制,用H(Hexadecimal)表示十六进制。 4.根据ASCⅡ码的表示,试写出0、9、F、f、A、a、CR、LF、$等字符的ASCⅡ码。 [解] 字符 0 9 F f A a CR LF $

7

ASCⅡ码30H 39H 46H 66H 41H 61H 0DH 0AH 24H

5.将下列十进制数分别转换成二进制数、八进制数、十六进制数。 (1)39 (2)54 (3)127 (4)119 [解](1)100111B 47Q 27H (2) 110110B 66Q 36H (3) 1111111B 117Q 7FH (4)1110111B 167Q 77H

6.8位、16位二进制数所表示的无符号数及补码的范围是多少?

[解] 8位二进制无符号数表示的范围为0~255,8位二进制补码表示的范围为-128~+127;16为无符号二进制数表示的范围为0~65535,16位二进制补码表示的范围为-32768~+32767。 7.将十进制数146.25转换为二进制,小数保留四位。 [解]10010010.0100B

8.将下列二进制数转换为十进制数,小数保留四位。

(1)00001011.1101B (2)1000110011.0101B (3)101010110011.1011B [解] (1)11.8125 (2)563.3125 (3)2739.6875

9.写出二进制数1101.101B,十六进制数2AE.4H,八进制数42.54Q的十进制数。 [解] 1101.101B=13.625D 2AAE.4H=686.25D 42.57Q=34.6875D 10.简述原码、反码、补码的规则。 [解]

1)求原码的规则:正数的符号位为0,负数的符号位为1,其他位表示数的绝对值。

2)求反码的规则:正数的反码与其原码相同;负数的反驳吗为原码除符号位以外的各位取反。 3) 求补码的规则:正数的补码与其原码相同;负数的补码为反码在最低位上加1。 11.用补码计算(-56)-(-17)。

[解] 此处运用补码加减运算公式[X±Y]补=[X]补±[±Y]补,令X=-56,Y=-17,且有: [X]原=10111000B、[X]反=11001000B、[X]补=11001001B [Y]原=10010001B、[-Y]补=00010001B 则[X]补=11001000B +)[-Y]补=00010001B [X-Y]补=11011001B

得[X-Y]原=10100111B=-39

12.简述计算机在进行有符号补码运算中进位与溢出的区别。

[解] 进位为数据运算时的正常情况,其进位状态通过CPU中进位状态位的状态体现。 溢出为运算结果超出了所能表示的数据范围,数据侵占了符号位。 13.简述进行有符号补码运算判断是否产生溢出的方法。 [解]判断溢出的方法可以有两种:

1)双进位法:2个进位位分别为次高位向最高位的进位和最高位向进位位的进位。如果两个进位均有或均无则无溢出。如果两个进位中1个有进位而另1个无进位则一定有溢出。

2)同号相减无溢出,同号相加是结果符号与加数符号相反有溢出,相同则无溢出。异号相加无溢出,异号相减时结果符号与减数符号相同有溢出,相反则无溢出。 14.用8位二进制补码进行计算(-56)+(-177),并判断出运算结果是否有溢出。 [解]令X=-56,Y=-117

[X]原=10111000B、[X]反=11001000B、[X]补=11001001B [Y]原=11110101B、[XY]反=10001010B、[Y]补=10001011B 则 [X]补=11001000B +) [Y]补=10001011B [X]补+[Y]补=01010011B

得[X]补+[Y]补=[X+Y]补=01010011B,X+Y=[[X+Y]补]]补=01010011B=+83

8

从上面运算式中可以看到,次高位向最高位无进位,而你最高为向进位位有进位,所以运算结果溢出。从另一个角度来看,两个负数相加,结果为正数,其符号与减数的符号相反,所以运算结果有溢出。也就是(-56)+(-177)=-173≠+83,运算结果不正确,这是因为已婚算结果又溢出,也就是运算结果的数据位超出了所能表示的范围,侵占了符号位。

15.试将0.0875用IEEE-754的单精度浮点格式表示。 [解]

0.0875=0.000101100110011001100110011B=1.01100110011001100110011B×2的-100B次 尾数L=01100110011001100110011B 阶码=01111111B-100B=01111011B

0.0875的浮点表示=0 01111011 01100110011001100110011 B=3DB33333H

第2章 微处理器

2.1 学习指导

本章主要内容包括:

1.8086/8088微处理器的内部结构与工作原理

8086/8088未处理的内部分为执行单元(EU)和总线接口单元(BIU)两部分。执行单元负责完成指令的执行工作,总线接口单元负责完成预取指令和数据传输的工作。两部分既相互独立工作,又相互配合。这种结构的优点为可疑实现流水作业,在执行指令同时取下一条指令,提高了微处理器的工作效率。 2.8086/8088的内部寄存器

8086/8088具有14个十六位寄存器,包括:8个通用寄存器(4个数据寄存器AX、BX、CX、DX,4个指针寄存器SP、BP、SI、DI),4个段寄存器(CS、SS、DS、ES),1个指令指针寄存器IP和1个状态控制寄存器FR。每个寄存器具有各自的特点,比如:

1)4个数据寄存器具有双重性, 可以存储十六位数据(AX、BX、CX、DX),也可以拆成8个八位寄存器(AL、AH、BL、BH、CL、CH、DL、DH)进行八位运算。

2)16位的状态控制寄存器FR中有9位有效位,其中6位是状态标志(进位状态位CF、辅助进位状态位AF、符号状态位SF、零状态位ZF、奇偶状态位PF和溢出状态位OF),3位是控制标志(中断允许、方向、单步)。 3)16位的指令指针寄存器IP是专为微处理器使用,不能通过指令进行访问。代码段寄存器CS只能读出,不能通过指令赋值。

4)只有BX、BP、SI、DI可以作访问内存单元的地址指令。 3.工作模式与引脚

1)8086CPU和8088CPU的主要特点如表2-1所示。

2)8086/8088未处理其具有两种功能工作模式:最小工作模式和最大工作模式。

最小工作模式:即为构成单微处理器的简单系统,全部信号线均由8086/8088CPU提供 引脚MN/MX非接+5V电压。

9

最大工作模式:即为构成多处理器的复杂系统。一般所构成的系统中除偶一个主微处理器8086/8088外,还有两个协处理器:用于数值运算处理的8087和忧郁输入/输出设备服务的8089,从而大大提高主处理器的运行效率。在此种工作模式下,部分控制信号线是由8288总线控制器提供,而不是由8086/8088CPU直接提供全部信号线。引脚MN/MX接地。

3)8086/8088为40引脚DIP芯片,其中部分引脚采用了服用技术,包括:分时复用(即在一些时刻提供一种信息,而在另一时刻提供另一种信息)和分状态复用(即输入与输出定义不同、高电平与低电平定义不同、不同模式下定义不同)等。分时复用的信号可通过锁存器实现分离。另外,8086/8088中有部分引脚定义不同。主要引脚包括:AD0~AD15、A16/S3~A19/S3、MN/MX、ALE、BHE、REESET、RD、WR、M/IO等。值得注意的是,如何获得存储器读、存储器写、IO读、IO写等信息,如图2-1所示。 4.存储器组织

8086/8088采用分段管理的概念。

1)所有的数据以字节形式存放在存储单元中,每一个单元军战一个地址,但是任何两个相邻字节都可以构成一个字(word),占用两个地址。用地址值较小的那个字节单元地址作为这个字单元的地址。一个16位字中低8位数据存在较小地址的单元中,而高8位数据存在地址较高的的单元中。 2)每个单元均有一个唯一的20位地址,称为物理地址。 3)在软件中8086/8088对存储器采用分段描述的方法,即将整个存储区划分很多的段,每一个段的大小可各不相同,单均≤64KB,各段之间可以是紧密连接、可以是部分或完全重叠、也可以是不相关,每个存储单元可用不惟一的逻辑地址描述(段基值:偏移量)。

4)物理地址与逻辑地址的关系为:物理地址(20位)=段基值(16位)×16+偏移量(16位)。 5)8086的存储器为能满足即可以16位操作又可以8位操作,采用奇、偶两个存储体的结构。 5.堆栈组织

堆栈是一个特定的存储区,它的特点是:一端是固定的,另一端是活动的,而所有的信息存取都在活动的一端进行。堆栈操作的原则是后进先出。栈操作包括:

1)设置栈执政(设置SS、SP)和栈容量(栈长度)。 2)数据进栈操作(PUSH指令)。 3)数据出栈操作(POP指令)。 6.时序

处理器的周期状态可以分为三种:始终周期(是处理器完成一个微操作所需的时间,也就是处理器的基本时间计量单位)、总线周期(是处理器完成一个基本操作所用的时间)和指令周期(是处理器执行一条指令所需的时间)。最基本的读/写总线周期由4个十周周期组成。

2.2单项选择题

1.8088CPU和8086CPU对比,错误叙述是( )。 A.8088CPU和8086CPU的地址线数量相同。 B.8088CPU和8086CPU的片内数据线数量相同。 C.8088CPU和8086CPU的片外数据线数量相同。 D.8088CPU和8086CPU的寄存器数量相同。 [解] C

2.关于8088CPU和8086CPU对比,正确的叙述是( )。 A.8088CPU和8086CPU的地址数位数不相同。 B.8088CPU和8086CPU的片内数据线数量不相同。 C.8088CPU和8086CPU的片外数据线数量不相同。 D.8088CPU和8086CPU的寄存器数量不相同。 [解] C

3.8086为16位的CPU,说明( )。

10

A.8086CPU内有16条数据线 B. 8086CPU内有16个寄存器 C. 8086CPU外有16条地址线 D. 8086CPU外有16条控制线 [解] A

4.下列不是8086/8088CPU数据总线作用的为( )。 A.用于传送指令机器码 B.用于传送立即数 C.用于传送偏移地址量 D.用于传送控制信号 [解] D

5.关于8088CPU叙述不正确的是( )。

A.片内有14个15位寄存器 B.片内有1MB的存储器 C.片内有4字节队列缓冲器 D.片外有8位数据总线 [解] B

6.8086/8088CPU的地址总线宽度为20位,它读存储器的寻址范围为( )。 A.20KB B.64KB C.1MB D.20MB [解] C

7. 8086/8088CPU的地址总线宽度为20位,它对I/O接口的寻址范围为( ) A.20KB B.64KB C.1MB D.20MB [解] B

8.8086/8088CPU从功能结构上看,是由( )组成的。 A.控制器和运算器 B.控制器、运算器和寄存器

C.控制器和20位物理地址加法器 D.执行单元和总线接口单元 [解] D

9.8086/8088CPU内部具有( )个16位寄存器。 A.4 B.8 C.14 D.20 [解] C

10.8086/8088CPU内部具有( )个8位寄存器。 A.4 B.8 C.14 D.20 [解] B

11.8086/8088CPU的标志寄存器FR中有( )个有效位。 A.1 B.3 C.6 D.9 [解] D

12.8086/8088CPU的标志寄存器FR中控制标志位有( )位。 A.1 B.3 C.6 D.9 [解] C

13.8086/8088CPU的标志寄存器FR中控制标志位有( )位。 A.1 B.3 C.6 D.9 [解 ] B

14.8086/8088CPU有( )个16位的段寄存器。 A.2 B.4 C.8 D.16 [解] B

15.指令指针寄存器IP的作用是( A)。 A.保存将要执行的下一条指令所在的位置 B.保存CPU要访问的内存单元地址 C.保存运算器运算结果内容 D.保存正在执行的一条指令 [解] A

16.8088CPU的指令队列缓冲器由( )组成。 A.1字节移位寄存器 B. 4字节移位寄存器

11

C.6字节移位寄存器 D. 8字节移位寄存器 [解] B

17.8086CPU的指令队列缓冲器由( )组成。 A.1字节移位寄存器 B. 4字节移位寄存器 C.6字节移位寄存器 D. 8字节移位寄存器 [解] C

18.指令队列具有( )的作用。

A.暂存操作数地址 B.暂存操作数 C.暂存指令地址 D.暂存预取指令 [解] D

19.8086/8088CPU对存储器采用分段管理的方法,每个存储单元均拥有( )两种地址。

A.实地址和虚拟地址 B.20位地址和16位地址 C.逻辑地址和物理地址 D.段基址和偏移地址 [解] C

20.8086系统中,每个逻辑段的存储单元数最多为( )。 A.1MB B.256B C.64KB D.根据需要而定 [解] C

21.8086/8088CPU中,由逻辑地址形成存储器物理地址的方法是( )。 A.段基值+偏移地址 B.段基值左移4位+偏移地址 C.段基值×16H+偏移地址 D.段基值×10+偏移地址 [解] B

22.8086/8088CPU中,确定下一条指令的物理地址应为( ). A.CS×16+IP B.DS×16+SI C.SS×16+SP D.ES×16+DI [解] A

23. 8086/8088CPU上电和复位后,下列寄存器的值正确的为( )。 A.CS=0000H, IP=0000H B.CS=0000H, IP=FFFFH C.CS=FFFFH,IP=0000H D.CS=FFFFH,IP=FFFFH [解] C

24.当RESET信号为高电平时,寄存器初值为FFFFH的是( )。 A.CS B.ES C.IP D.BP [解] A

25.8086/8088系统中,某存储单元的物理地址为24680H,与其不对应的逻辑地址为( )。

A.46780H:2000H B.2468H:0000H C.2460H:0080H D.2400H:0680H E.2000H:4680H [解] A

26.若某指令存放在代码段为CS=789AH,指令指针为IP=2345H处,问该指令存放单元的物理地址是( )。 A.0H B.7ACE5H C.2ACEAH D.9BDF01H [解] B

27.某8位数据存放在2300H:2300H处,问该8位数据存放单元的物理地址是( )。 A.23000H B.23230H C.23023H D.25300H [解] D

28.若某存储单元的物理地址为ABCDEH,( )不是其相应的逻辑地址。

A.ABCDH:000EH B.ABC0H:00DEH C.AB00H:0CDEH D.A000H:0CDEH [解] D

29.下列逻辑、地址中对应不同的物理弟子的是( )

A.0400H:0340H B.0420H:0140H C.03E0H:0740H D.03C0:0740H [解] C

30.8086/8088CPU存放当前指令的存储单元的逻辑地址为( )。

12

A.DS: BX B.SS:SP C.CS:PC D.CS:IP [解] D

31.8086/8088CPU中,时钟周期、指令周期和总线周期按费时长短的排列是( ) A.时钟周期>指令周期>总线周期 B.时钟周期>总线周期>指令周期 C.指令周期>总线周期>时钟周期 D.总线周期>指令周期>时钟周期 [解] C

32.8086/8088CPU的地址有效发生在总线周期的( )时刻。 A.T1 B.T2 C.T3 D.T4 [解] D

33.8086/8088CPU的读数据操作发生在总线周期的( )时刻。 A.T1 B.T2 C.T2,T3 D.T3,T4 [解] D

34.8086/8088CPU的写数据操作发生在总线周期的( )时刻。 A.T1 B.T2 C.T2, T3 D.T2, T3, T4 [解] D

35.当控制线READY=0时,应在( )插入等待周期T w。

A.T1和T2间 B.T2和T3间 C.T3和T4间 D.任何时候 [解] C

36.下列说法中属于最小工作模式特点的是( )。

A.CPU提供全部的控制信号 B.由编程进行模式设定 C.需要8286收发器 D.需要总线控制器8288 [解] A

37.下列说法中属于最大工作模式特点的是( )。

A.CPU提供全部的控制信号 B.由编程进行模式设定 C.需要8286收发器 D.需要总线控制器8288 [解] D

38.8086CPU的控制线BHE非=0,地址线A0=0时,将实现( )。

A.传送地址为偶地址的8位内存数据 B.传送地址为偶地址的16位内存数据 C.传送地址为奇地址的8位内存数据 D.传送地址为奇地址的16位内存数据 [解] B

39.8086CPU的控制线BHE非=0,地址线A0=1,将实现( )。

A.传送地址为偶地址的8位内存数据 B.传送地址为偶地址的16位内存数据 C.传送地址为奇地址的8位内存数据 D.传送地址为奇地址的16位内存数据 [解] C

41.8086/8088CPU数据总线和部分地址总线采用分时复用技术,系统中可通过基本逻辑单元( ),获得稳定的地址信息。

A.译码器 B.触发器 C.锁存器 D.三态门 [解] C

42.8088CPU构成的系统中,需要( )片8286数据总线收发器。 A.1 B.2 C.8 D.16 [解] A

43.8086CPU构成的系统中,需要( )片8286数据总线收发器。 A.1 B.2 C.8 D.16 [解] B

44.8086/8088CPU中,控制线RD非和WR非得作用是( )。 A.CPU控制数据传输的方向 B.CPU实现存储器存取操作控制

C.CPU实现读或写操作时控制线 D.CPU实现读地址/数据线分离控制

13

[解] C

45.8086/8088CPU中,控制线DT/R非得作用是( )。 A.数据传输方向的控制 B.存储器存取操作控制 C.数据传输有效控制 D.地址/数据线分离控制 [解] A

46.8086/8088CPU中,控制线ALE的作用是( )。 A.CPU发出的数据传输方向控制信号 B.CPU发出的数据传输有效控制信号 C.CPU发出的存储器存取操作控制信号 D.CPU发出的地址有效信号 [解] D

47.8086/8088CPU中,控制线DEN非得作用是( )。 A.CPU发出的数据传输方向控制信号 B.CPU发出的数据传输有效控制信号 C.CPU发出的存储器存取操作控制信号 D.CPU发出的地址有效信号 [解] B

48.8086/8088CPU中,可屏蔽中断请求的控制线是( ). A.NMI B.HOLD C.INTR D.INTA非 [解] C

49.8086/8088CPU中,可品比中断响应的控制线是 ( )。 A.NMI B.HOLD C.INTR D.INTA非 [解] D

50.8086/8088CPU中,非屏蔽中断请求的控制线是( )。 A.NMI B.HOLD C.INTR D.INTA非 [解] A

51.8086/8088CPU中,与DMA操作有关的控制线是 ( )。 A.NMI B.HOLD C.INTR D.INTA非 [解] B

52.当8086/8088CPU为最小工作方式时,恐怖感知线MN/MX非应接( )。 A.低电平 B.高电平 C.下降沿脉冲 D.上升沿脉冲 [解] B

53.若8086/8088CPU访问I/O端口时,控制线M/IO非应输出( )。 A.低电平 B.高电平 C.下降沿脉冲 D.上升沿脉冲 [解] A

54.8086CPU可访问( )个字节I/O端口。 A.1K B.32K C.64K D.1M [解] C

55.8086CPU可访问( )个字节I/O端口。 A.1K B.32K C.64K D.1M [解] B

56.当8086/8088CPU从存储器单元读数据时,有( )。 A.RD非=0,WR非=0 B.RD非=0,WR非=1 C.RD非=1,WR非=0 D.RD非=1,WR非=1 [解] B

57.当8086/8088CPU向I/O端口输出数据时,有 ( )。 A.RD非=0,WR非=0 B.RD非=0,WR非=1

14

C.RD非=1,WR非=0 D.RD非=1,WR非=1 [解] C

58.对堆栈进行数据存取的原则是( )。

A.先进先出 B.后进先出 C.随机存取 D.都可以 [解] B

59.8086/8088CPU将数据压入堆栈时,栈区指针的变化为( )。 A.SS内容改变、SP内容不变 B.SS内容不变、SP内容加2 C.SS内容不变、SP内容减2 D.SS和SP内容都改变 [解] C

60.8086/8088CPU将数据从堆栈中弹出时,栈区指针的变化为( )。 A.SS内容改变、SP内容不变 B.SS内容不变、SP内容减2 C.SS内容不变、SP内容加2 D.SS和SP内容都改变 [解] C

2.3判断题

1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31.

8086CPU中包含了寄存器和存储器。( ) 寄存器寻址比存储器寻址的运算速度快。( ) 存储器是计算机系统中不可缺少的部分。( )

8086/8088CPU的片内数据线和片外数据线宽度均为16位。( )

8086/8088CPU为16位处理器,一次可并行传送8位或16位二进制信息。( ) 8086CPU的数据总线和地址总线都是20位。( ) 8086CPU的数据总线和地址总线都市32位。( )

8086/8088CPU对外部存储器和I/O端口的寻址范围为1MB。( )

8086/8088CPU内部分为2个功能模块:执行单元EU和总线接口单元BIU。( ) 8086/8088CPU的EU直接通过外部总线读取指令后执行。( ) 8086CPU的BIU直接经外部总线读取数据。( )

8086/8088CPU的BIU中包含有一个6字节指令队列。( ) 8086/8088CPU在执行转移指令时,指令队列中的原内容不变。( ) 8086/8088CPU指令队列满足先进后出的原则。( ) 8086/8088CPU的BIU中包含有一个16位的地址加法器。( )

因为8086存储单元的段基值和偏移地址均为16位,则8086存储单元的地址线为32位。( ) 8086/8088CPU中为用户提供了14个十六位的可对俄的寄存器。( ) 8086/8088CPU可以通过改变指令指针IP的内容来改变指令执行顺序。( ) 8086/8088系统中,用户可以通过指令改变指令指针IP的内容。( ) 8086/8088CPU的16位标志寄存器FR中每位均有确定含义。( ) 在8086/8088CPU中,当两数的运算结果为零时,状态标志位ZF=0。( )

在8086/8088CPU中,当两个数做加减运算,结果有进位时,状态标志位CF=1。( ) 在8086/8088CPU中,当两个符号数的运算结果产生溢出时,状态标志位OF=1。( ) 在8086/8088CPU中,当两个数做加减运算后,结果最高位为1时,状态标志位SF=1。( ) 8086/8088CPU的基本读/写总线周期由4个时钟周期组成。( )

8086/8088CPU在总线周期的T1时刻,从地址/数据提供数据信息。( ) 在总线周期中,等待状态周期Tw仅能出现在T3状态和T4状态之间。( ) 在总线周期中,空闲状态周期Tt仅能出现在T3状态之后。( ) d当控制线READY输出低电平时,等待状态周期Tw才会出现。( ) 8086/8088CPU在一个存储单元中,可存入8位数据或者16位数据。( ) 8086/8088系统中,每个存储单元均具有惟一的物理地址和逻辑地址。( )

15

32. 8086/8088CPU允许多个逻辑段重叠或交叉。( )

33. 8088CPU将1MB的存储空间分为奇地址存储体和偶地址存储体。( ) 34. 8086CPU将1MB的存储空间分为两个512KB的存储体。 ( )

35. 在8086系统中,若地址线A0=0,则512KB的偶存储体操作有效。( ) 36. 在8086系统中,字数据的低8位存放在偶存储体,高8位存放在奇存储体。( ) 37. 8086/8088系统中,存储器奇地址存储体的片选有效控制信号由控制线BHE非提供。( ) 38. 在8086系统中,若BHE非=0、A0=0,则一个总线吧周期可完成16位数据的操作。( ) 39. 8086/8088系统的字存储中,低地址存字的高8位,高地址存字的低8位。( ) 40. 8086/8088CPU有16根地址/数据分时复用引脚。( )

41. 8086/8088CPU的地址/数据复用线,可通过缓冲器分离出地址信息。( )

42. 8086/8088CPU的中可利用地址有效控制线ALE,对地址/数据复用线进行锁存,获取地址信息。( ) 43. 8086/8088CPU的控制线DEN非提供数据传输有效信号。( )

44. 8086/8088CPU的控制线RD非和WR非提供对芯片外部实现读和写操作信号。( ) 45. 8086/8088CPU响应可屏蔽中断INTR的条件是标志位IF置1。( ) 46. 8086/8088CPU响应不可屏蔽中断INTR的条件是标志位IF置0。( ) 47. 8086/8088CPU可屏蔽中断INTR的中断请求信号为高电平有效。( ) 48. 8086/8088CPU在上电或RESET有效时,所有寄存器为0000H.( ) 49. 堆栈操作的原则是后进先出。( ) 50. 堆栈指针SP总是指向堆栈的栈顶.( )

51. 8086/8088系统中的进栈操作时栈指针SP加2,出栈操作时栈指针SP减2。( ) 52. 8086/8088系统中,在执行调用指令或中断响应时,断点会自动进栈加以保护。( ) 53. 存储器和I/O同一编制时补需要单独的I/O操作指令。( ) [答案]

1.错 2.对 3.对 4.错 5.错 6.错 7.对 8.错 9.对 10.错 11.对 12.错 13.错 14.错 15.错 16.错 17.错 18.对 19.错 20.错 21.错 22.对 23.对 24.对 25.对 26.错 27.对 28.错 29.对 30.错 31.错 32.对 33.错 34.对 35.对 36.错 37.错 38.对 39.错 40.错 41.错 42.对 43.对 44.对 45.对 46.错 47.对 48.错 49.对 50.对 51.错 52.对 53.对

2.4填空题

1.8086/8088CPU的内部由两个功能单元组成即 (1) 和(2)。 [解] (1)执行单元EU (2)总线接口单元BIU

2.8086CPU的指令队列由(1)移位寄存器组成,8088CPU的指令队列由(2)移位寄存器组成。指令队列的作用是(3)。

[解] (1)6字节 (2)4字节 (3)存放预取的指令

3.8086CPU的内部数据总线宽度为(1)位,外部数据总线宽度为(2)位。8088CPU的内部数据总线宽度为(3)位,外部数据总线宽度为(4)位。

[解] (1)16 (2)16 (3)16 (4)8

4.8086/8088CPU中,执行单元EU中的运算单元ALU完成的工作是(1)运算、(2)运算和(3)运算。 [解] (1)运算 (2)逻辑 (3)16位段内偏移地址

5.8086/8088CPU中有(1)个(2)位的寄存器,其中称AX、BX、CX和DX为(3)寄存器,称SP、BP、SI和DI为(4)寄存器,称CS、DS、SS和ES为(5)寄存器,称IP为(6)寄存器,称FR为(7)寄存器。 [解] (1)14 (2)16 (3)通用数据 (4)通用地址 (5)段 (6)指令指针 (7)标志

6.8086/8088CPU中有8个用于8位运算的通用寄存器,它们是(1),(2),(3),(4),(5),(6),(7),(8)。 [解] (1)AH (2)AL (3)BH (4)BL (5)CH (6)CL (7)DH (8)DL

16

7.8086/8088CPU常用于定义堆栈段的寄存器为(1),用(2)寄存器作堆栈指针。 [解] (1)SS (2)SP

8.8086/8088CPU可用于存放存储电源偏移量的寄存器为(1),(2),(3),(4) [解](1)SI (2)DI (3)BX (4)BP

9.8086/8088CPU在串操作指令中时,规定(1)寄存器存放源操作数的段基值,(2)寄存器存放目标操作数的段基值,(3)寄存器作为源操作数的指针,(4)寄存器作为目的的操作数的指针。 [解](1)DS (2)ES (3)SI (4)DI、

10.8086 /8088CPU对存储单元地址的描述有两种:一是在总线上惟一的(1),用(2)位二进制或(3)位十六进制数表示,一是在程序中多样化的(4),用(5)和(6)表示。

[解](1)物理地址 (2)20 (3)5 (4)逻辑地址 (5)16位二进制数的段基值 (6)16位二进制数的偏移量

11.8086/8088系统中,若某存储器单元的物理地址为2ABCDH,且该存储器单元所在的段基值为2A12H,则该存储器单元的偏移地址应为(1)。 [解](1)0AADH

12.8086/8088系统中,字数据存放在(1)个存储单元中,以(2)地址作为该字数据的地址。 [解] (1)2 (2)较小

13.8086系统中,如果字数据8BF0H存放在偶地址开始的2个存储单元内,则可通过(1)个总线周期实现16位字数据访问。如果字数据8BG0H存放在奇地址开始的存储单元内,则需要(2)个总线周期数完成16位字数据读取操作。

【解】 (1) 1 (2) 2

14. 8086/8088 CPU在上电或复位后,寄存器中的值处初始态,此时CS=_____(1)____ IP=______(2)______,DS=_______(3)______。

【解】 (1)FFFFH (2) 0000H (3)0000H

15. 8086/8088构成的系统,在开机或复位时,第一条执行的指令所在储存单元的物理地址为_____(1)_____。 【解】 (1)FFFF0 H

16. 8086/8088 CPU的标志寄存器FR中有3个控制标志位,分别是___(1)____,_____(2)____, ______(3)_____;有6个状态标志位,分别是_____(4)___,____(5)_____,___(6)____.____(7)___, _____(8)____,____(9)______。

【解】 (1)IF (2)DF (3)TF (4)AF (5) CF (6 ) OF (7)SF (8)ZF (9) PF

17. 8086/8088 CPU中与中断操作有关的控制标志是____(1)____,与串操作有关的控制标志位是___(2)____,与单步调试操作有关的控制标志位是___(3)____。

【解】 (1)IF (2)DF (3)TF

18.若AL=4AH, BL=86H, 试问在执行ADD AL, BL指令后CF=____(1)____,AF= ____(2)____,SF____(3)____,ZF=____(4)____, OF=____(5)____,PF=____(6)____。 【解】 (1) 0 (2)1 (3) 1 (4) 0 (5) 0 (6) 0

19.8086/8088 CPU将所能寻址的1MB储存空间分为____(1)____段,每段存储容量最多为____(2)____。 【解】 (1)若干个 (2)64KB 20. 8086CPU执行储存器读写指令时,控制线M/IO输出____(1)____电平,执行IO输入/输出指令时,控制线M/IO输出____(2)____电平。

【解】 (1)高 (2)低

21. 32位的逻辑地址589AH:3210H表示的20位物理地址为____(1)____。 【解】 (1)5BBB0H

22. 8086CPU的堆栈操作原则为____(1)____;指令队列操作原则为____(2)____。 【解】 (1)后进先出 (2)先进先出 23. 若堆栈栈顶指针SP=2000H,执行5条入栈指令和2条出栈指令后,SP=____(1)____。 【解】 (1)1FFAH

17

24. 计算机系统中,对I/O端口地址的编码方式有____(1)____和____(2)____两种方式。 【解】 (1)统一编址 (2)独立编址

25. 8086CPU 地址/数据复用先可用通过____(1)____分离出地址信息,此时控制线ALE应输出____(2)____电平。 【解】 (1)锁存器 (2)高

26. 若8086/8088CPU工作于最小工作方式,控制线MN//MX应接____(1)____电平,工作于最大工作方式,控制线MN/MX应接____(2)____电平。

【解】 (1)高 (2)低

27. 当8086/8088 CPU访问外部数据时,控制线DEN应输出____(1)____电平,在从外部读入数据时,控制线DT/R应输出____(2)____电平;再将数据输出到外部时,控制线DT/R应输出____(3)____电平。 【解】 (1)高 (2)低 (3)高

28. 当8086/8088CPU在进行写数据操作时,控制线RD应输出____(1)____电平;控制线WR应输出____(2)____电平。

【解】 (1)高 (2)低

29. 8086/8088CPU可访问的存储器空间为____(1)____;可访问字节I/O空间为____(2)____,可访问字I/O空间为____(3)____。

【解】 (1)1MB (2)64KB (3).32KB

30. 当储存器的读取时间大于CPU的读出时间时,8086CPU根据控制线READY的状态,应在周期____(1)____状态间插入____(2)____周期。若8086CPU不执行总线操作时,应在周期____(3)____后插入____(4)____周期。 【解】 (1)T3与T4 (2)等待(Tw) (3)T4 (4)空闲Tt

2.5 简答题

1. 计算机中,CPU地址线的位数与访问储存器单元范围的关系是什么? 【解】 在计算机中,若CPU的地址线为数为N(既有N条地址线),则访问储存器单元的数量为2的N次方个,访问储存器单元的范围为0~2的N次方减1。

2. 试对8086CPU和8088CPU的主要特点如表2-2所示。 表2-2 8086CPU和8088CPU的主要特点

3. 8086/8088CPU中有哪两个功模块构成,简述它们之间的关系。

【解】 8086/8088 CPU为实现指令的流水线操作,将内部划分为执行单元EU和总线接口单元BIU两个模块。EU和BIU的工作既相互独立,又相互配合。其中EU负责执行指令,BIU负责通过外部总线读写CPU的外部数据。BIU经总线从储存器中读取指令后存入指令队列缓冲器,以便EU从指令队列中获取指令。当EU需要从外部获取数据时,便通知BIU,BIU经总线操作获得数据后,通过内部总线提供给EU。

4. 简述8086/8088 CPU中指令队列的功能是完成指令的流水线操作,其操作原则为先进先出。BIU单元经总线从程序储存器中读取指令后存入指令队列缓冲器,EU单元从指令队列缓冲器中获取先存入的指令并执行。在EU执行指令的同时BIU又可以继续取指令,由此实现取指令和执行指令同时操作,提高了CPU的效率。

5.简述何为物理地址?何谓逻辑地址?

18

【解】物理地址:完成对存储器单元或I/O端口寻址的实际地址称为物理地址,其具有唯一性,且根据CPU型号不同地址线位数不同,寻址范围不同。例如,8080 CPU的物理地址16位,寻址范围是64KB。8086CPU的物理地址20位,寻址范围是1MB。80286 CPU的物理地址24位,寻址范围是16MB。

逻辑地址为在程序中对存储器的寻址,例如8086CPU中存储单元的逻辑地址有两个16位分量描述,即16位段基值和16位偏移量。逻辑地址不唯一。

6. 8086/8088 CPU具有哪些寄存器?可存放段基值的寄存器有哪些?可存放存储器单元的偏移地址分量的寄存器有哪些?存放状态和控制信息的寄存器有哪些?

【解】8086/8088 CPU具有14个十六位的寄存器,包括:AX、BX、CX、DX、SI、DI、SP、BP、CS、DS,ES、SS、FR和IP

可存放段基值的寄存器有:CS,DS,ES,SS

可存放存储器单元的偏移地址分量的寄存器有:SI,DI,BX,BP 存放状态和控制信息的寄存器为:FR。

7. 8086/8088 CPU的标志寄存器FR具有几个有效位?几个状态标志位?几个控制标志位? 【解】

8086/8088 CPU的标志寄存器FR具有9个有效位,其中6个状态标志位,分别为CF、OF、ZF、SF、AF和PF,3个控制标志位是IF、DF和TF。

8. 8086/8088CPU的标志寄存器FR中状态标志位的作用是什么?控制标志位的作用是什么?

【解】1)8086/8088 CPU的标志寄存器FR具有6个状态标志位,分别为CF、OF、ZF、SF、AF和PF,其作用为:

CF为进位或错位标志,当算术运算无进位或错位时CF=0,有进位或错位时CF=1。 AF为辅助进位标志(或称半进位位标志),若D3位向D4位无进位(或无错位)时,AF=0,有进位(或有错位)时,AF=1。

ZF为零标志位,若运算结果为0,则ZF=1,否则ZF=0。

SF为符号位。对于有符号数运算,运算结果为正时SF=0,运算结果为负时SF=1。实际上,SF的状态反映运算结果的最高位的状态。

OF为溢出标志,对于有符号数运算,运算结果无溢出时OF=0,有溢出时OF=1。

PF为奇偶校验标志 ,若运算结果低8位中1的个数为奇数,则PF=0,为偶时,PF=1。 2)8086/8088 CPU的标志寄存器FR具有3个控制标志位是IF、DF和TF,其作用为:

IF为允许CPU响应可屏蔽中断的控制位,当IF=0时,允许CPU响应可屏蔽中断请求,当IF=1时,禁止CPU响应可屏蔽中断请求。

DF为增量方向控制位,在数据串操作时,当DF=0时,地址将会自动加1或2,当DF=1时,地址将会自动减1或2。

TF为指令单步调式陷阱控制位,当TF=0时,无指令单步调试操作,当TF=1时,有指令单步调式操作。

9. 简述8086/8088CPU的最小和最大工作模式的主要区别。

【解】8086/8088 CPU的最小和最大工作模式的主要不同点如表2-3所示。 表2-3 8086/8088 CPU最小和最大工作模式的主要区别

10. 简述8086/8088 CPU的堆栈操作原理。

19

【解】8086/8088 CPU的堆栈是一段特殊定义的存储区,用于存放CPU堆栈操作时的数据。在执行堆栈操作前,需先定义堆栈段SS、对战深度(栈底)和堆栈栈顶指针SP。数据的入栈、出战操作类型均为16位二进制数,入栈操作时,栈顶指针值先自动减2(即SP=SP-2),然后16位数据从栈顶处入栈;出栈操作时,16位数据先从栈顶处出栈,然后栈顶指针值自动加2(即SP=SP+2)。

11. 8086/8088 CPU的1MB存储空间可分为多少个逻辑段?每段的寻址范围是多少?

【解】8086/8088 CPU的1MB存储空间可分为任意个逻辑段,段与段之间可连续也可以不连续,可重叠也可相交。但每个逻辑段的寻址范围不能大于64KB。

12. 8086 CPU控制线BHE和地址线A0对存储器访问的控制作用是什么?

【解】8086 CPU对存储器进行组织时,每一存储单元地址中仅能存放8位二进制数据,所以8086在进行16位数据操作时需同时访问两个8位的存储单元。8086为了能实现既能传输8位数据也能传输16位数据,将存储空间分成两部分:奇存储体连接16位数据总线的高8位,即D15~D8,由控制线BHE参与选通控制,偶存储体连接16位数据总线的低8位,即D7~D0,有A0参与选通控制。用BHE和A0不同的状态组态,实现对存储区中任意8位或16位数据的访问,如表2-4所示。 表2-4 BHE与A0信号作用

13. 在8086/8088 CPU中,控制线ALE的作用是什么?

【解】8086/8088 CPU在地址/数据复用线上提供地址信息时,地址有效控制线ALE为高电平时,除此之外,地址有效控制线ALE为低电平无效状态。在用8086/8088 CPU构成系统时,常用地址有效控制线ALE控制地址锁存器,来获取稳定的地址信息。

14. 在8086 CPU中,控制线RD、WR和M/IO的作用是什么?

【解】控制线RD、WR的作用是完成存储单元或I/O端口的数据读写控制。当RD=0且WR=1时,CPU经数据总线从选中的存储器单元或I/O端口中读取数据,当RD=1且WR=0时,CPU经数据总线向选中的存储器单元或I/O端口中写入数据。

控制线M/IO的作用是确定在某一时刻CPU对存储器操作还是对I/O端口操作。当M/IO=0时,CPU对I/O端口操作有效;当M/IO=1时,CPU对存储器操作有效。

8086 CPU控制线RD、WR和M/IO的不同组态,可以产生对存储器读信号MEMR、对存储器写信号MEMW、对I/O端口读信号IOR和对I/O端口写信号IOW,如图2-2所示。

图2-2 8086对存储器或IO操作信号

15 在8086/8088 CPU中,控制线DEN、DT/R的作用是什么?

【解】8086/8088 CPU通过控制线DEN和DT/R提供其数据传输及数据流方向信息。在用8086/8088 CPU构成系统时,可以控制线DEN盒DT/R完成对双向数据缓冲器芯片的控制。当控制线DEN=0时,数据缓冲器片选有效。控制线DT/R的作用是数据缓冲器中数据传送方向控制,当DT/R=0时,数据从数据总线上流入CPU。当DT/R=1时,CPU经数据总线流出数据。

16 什么是统一编址?什么是独立编址?各有何特点?

20

【解】 在计算机中,I/O端口的编制方式分为:统一编制和独立编址。

统一编制的存储单元地址和I/O端口地址在同一个地址空间。由于I/O端口地址占用存储器单元地址,减少了存储器的寻址空间,但是访问存储器单元和I/O端口可用相同的指令。

独立编址的存储器单元地址和I/O端口地址具有不同的地址空间。存储器和I/O端口都具有独立的且较大的寻址空间,CPU用不同的控制线来区别,采用不同的指令访问存储器单元或I/O端口。 17 直接端口寻址,间接端口寻址的特点是什么?

【解】8086/8088 CPU在对I/O端口访问时,有两种寻址方式:直接寻址和寄存器间接寻址。当I/O端口地址为8位地址(A7~A0)表示时,可以采用直接寻址,即在IN/OUT指令中,直接给出8位端口地址。当I/O端口地址位16位(A15~A0)表示时,必须采用寄存器间接寻址方式,即16位端口地址应先付给寄存器DX,在IN/OUT指令中仅出现寄存器DX。

18 什么是规则字?什么是非规则字?

【解】8086 CPU的存储系统中,规定每个存储单元仅存放8位二进制信息。而8086CPU的数据总线宽度为16位,即可以实现同时将两个存储单元中的数据经数据总线传输。当16位字数据按规则字存放在存储器中时,即偶地址存放16位字数据的低8位,奇地址存放16位字数据的高8位时,则用一个总线周期可完成16位数据的传送。若16位字数据按非规则字存放在存储器中时,即偶地址存放16位字数据的高8位,奇地址存放16位字数据的低8位,则需两个总线周期方可完成16位数据的传送。

19. 写出当8088CPU执行下列指令时,CPU控制总线上的IO/M、RD、WR信号线的状态: MOV AL , BH MOV [BX] , CL

【解】 MOV AL ,BH ;由于此指令时在CPU内工作,无任何信号线有效。 MOV [BX] , CL;执行此指令时存储器写信后有效,即IO/M=0,WR=0

第3章 80x86指令系统

3.1学习指导

本章主要内容和要求如下: 1. 指令中包含的信息

指令中一般包含的信息有:操作码和操作数。其中操作数可以处在计算机中的位置有:指令中、CPU内部的寄存器中、存储器中、I/O端口中。 2. 寻址方式

寻址方式即寻找操作数或操作数所在位置的方式,操作数在计算机中所处的位置不同,寻址方式不同。8 086/8088 CPU的寻址方式包括有:

1) 隐含寻址方式,即指令中隐含规定了操作数所在位置。 2) 数据型操作数寻址方式: ? 立即数寻址:操作数在指令中。 ? 寄存器寻址:操作数在寄存器中。 ? 直接寻址 操作数在存储器中,其逻辑地址=段寄存器:[EA],其中: ? 寄存器间接寻址 ? 基址寻址和变址寻址 BX SI 0 ? 基值变址寻址 EA + + n8 BP DI n16 ? 串操作寻址:操作数载存储器中,源操作数为DS:[SI],目标操作数为ES:[DI]。

21

? I/O端口寻址:操作数在I/O端口中,分为8位地址直接寻址和16位地址DX间接寻址。 80386和更高档的微处理器还包含比例变址方式的数据寻址。 3) 目标地址寻址方式。包括: ? 相对程序寻址。 ? 直接程序寻址。 ? 间接程序寻址。

3.8086/8088指令系统

要求了解指令的格式、特点、用法、对状态控制寄存器FR的影响。常用指令要熟练掌握。注意隐含规定的各种寻址规则。主要指令包括: 1) 数据传送指令:

MOV dest,src LEA dest,src XCHG dest,src XLAT PUSH src POP dest PUSHF POPF LDS dest,src LES dest,src LAHF SAH F IN dest,src OUT dest,src

2)算术运算指令:

ADD dest,src ; ADC dest,src ; AAA ; DAA SUB dest,src ; SBB dest,src ; AAS ; DAS MUL src ; IMUL src ; AAM ; CBW DIV src ; IDIV src ; AAD ; CWD

CMP dest,src ; INC dest ; DEC dest ; NEG dest

3)逻辑运算指令:

AND dest,src ; OR dest,src ; NOT dest ; XOR dest,src TEST dest,src

4)位移指令

SHL dest,1 ; SHR dest,1 ; SAL dest,1 ; SAR dest,1 ROL dest,1 ; ROR dest,1 ; RCL dest,1 ; RCR dest,1 SHL dest,CL ; SHR dest,CL ; SAL dest,CL ; SAR dest,CL ROL dest,CL ; ROR dest,CL ; RCL dest,CL ; RCR dest,CL

5)串操作指令:

MOVS dest,src ; CMPS dest,src ; SCAS dest ; LODS src STOS dest,src

重复前缀——REP、REPE、REPNE

6)控制转移指令:

JMP dest ; Jxx dest ; CALL dest RET (n) INT n IRET

7)处理器控制指令:

CLC ; STC ; CLD ; STD CLI ; STI ; CMC ; NOP HLT ;

22

3.2单项选择题

1. 8086/8088CPU内部具有( )个寄存器可以装载内存操作数的偏移地址信息。 A. 4 B.8 C.14 D.20 【解】A

2. 8086/8088CPU内部( )寄存器可以装载内存操作数的偏移地址信息。 A. AX, BX, CX. DX B. SI, DI, SP, BP

C. BX, BP, SI, DI D. AX, BX, CX, DX, SP, BP, SI, DI 【解】C

3. 确定一个内存单元有效地址EA是由几个地址分量组合而成的,这些分量不包括( )。 A. 位移量 B. 基地址 C. 逻辑地址 D. 变址地址 【解】C

4. 寄存器间接寻址方式中,操作数的有效地址EA可通过寄存器( )间接得到。 A. AX B. BP C. CX D. SP 【解】B

5. 常用来获取内存单元偏移量的指令是( )。

A. LAHF B. LEA C.LES D. LDS 【解】B

6. 在寄存器间接寻址方式下,在EA中使用寄存器( )时默认段寄存器位SS。 A. BX B. BP C. SI D.DI 【解】B

7. 基地址变址寻址方式下,在EA中使用寄存器( )时默认段寄存器位SS。 A. BX B. SS C.SI D.DS 【解】C

8. 在程序运行过程中,下一条指令的物理地址的计算表达式是( )。 A. CS*10H+IP B. DS*10H+BX C. SS*10H+SP D. SS*10H+BP 【解】A

9. MOV AX,[BP] [SI] 的源操作数的物理地址是( )。 A. 10HxDS +BP+SI B. 10HxES +BP+SI C. 10HxSS +BP+SI D. 10HxCS +BP+SI 【解】C

10. 指令MOV CX ,1245H中的源操作数存放在( )。 A. DS:1245H所指明的内存中 B.该指令中 C. 某个寄存器中 D.都不是 【解】 B

11. 在8086/8088乘法指令中的两个操作数,其中有一个操作数一定存放在( )中。 A. AL或AX B. BL或BX C.CL或CX D. DL或DX 【解】A

12. 对于算术左移指令SAL AL,1,若AL中的带符号数载指令执行后符号有变,可以通过(A. OF=1 B. OF=0 C. CF=1 D. CF=0 【解】A

13. 8086/8088的移位类指令若需移动多为时,应该先将移动位数置于( )。 A. AL B. AH C. CL D. CH 【解】 C

14. 如果要实现正确返回,则CALL指令和( )指令两者必须成对出现,且属性相同。 A. MACRO B. JMP C. RET D. END

23

)来确认。 【解】C

15. 条件转移指令JNZ的转移条件是( )。

A. CF=1 B.ZF=0 C. OF=0 D. ZF=1 【解】B

16. JMP WORD PTR [DI]是( )。

A. 段内间接转移 B.段间间接转移 C.段内直接转移 D.段间直接转移 【解】 A

17. 指令LOOPNE/LOOPNZ循环的条件是( )。

A. ZF=1且 CX=0 B. A. ZF=0且 CX≠0 C. ZF=0且 CX=0 D. ZF=1且 CX≠0 【解】B

18. 指令REPNE SCASB执行以后,如果ZF=1,则表示( )。 A.在此字符串中,没有找到指定字符 B.已经找到药查找的字符 C.两个字符串相等 D.此字符串是由同一字符组成 【解】B

19. 不能实现AX=BX-CX功能的指令是( )。

A. SUB BX,CX B.SUB AX,BX MOV AX,BX SUB AX,CX C.XCHG AX,BX D.MOV AX,BX SUB AX, CX SUB AX,CX 【解】B

20. 在8086/8088指令中下述寻址方式不正确的是( )。

A.[BX] [SI] B.[BP+DI+25] C.[BX+BP] D.[BX+DI] 【解】C

21. AND、OR、XOR、NOT为四条逻辑运算指令,下面( )解释有误。 A.它们都是按位操作的

B.指令XOR AX,AX执行后,结果不变,但是影响标志位

C.指令AND AL,0FH执行后,使AL得高4位清零,低4位不变 D.若DL=09H,CH=30H,执行OR DL,CH后结果DL=39H 【解】B

22. 下列语句中有语法错误的语句是( )。 A.MOV AX,[BX] [BP] B.ADD AX, [BP]

C.CMP [BX+DI],0FH D.LEA SI, SS:20H [BX] 【解】A

23. 下列指令中语法错误的是( )。

A.MOV[SI],[DI] B. ADD AX , [BP]

C.JMP WORD PTR [BX+8] D.PUSH [BX+DI-10H] 【解】A

24. 下列指令出现语法错误的指令有( )。

A.MOV [BX+SI], AL B. MOV AX , [BP+DI] C. MOV DS, AX D. MOV CS , AXA 【解】D

25. 下面的数据交换指令中,错误的操作是( )。 A.XCHG AX ,DI B. XCHG BX , [BP+DAT] C.XCHG DS , SS D. XCHG BUF , DX 【解】C

26. 下列语句中语法有错误的语句是( )。

24

A.IN AL ,DX B.OUT AX,DX C.IN AX,DX D.OUT DX,AL 【解】B

27.两个非压缩型BCD码数据相减后,执行减法调整指令AAS时,将自动测试是否满足( ),从而决定是否需要校正。

A.AL中的数值>9,且AF=1 B.AL中低四位数>9,且AF=1 C. AL中的数值>9,或AF=1 D. AL中低四位数>9,或AF=1 【解】D

28. 用REPNE CMPSB指令实现两个字符串比较,如果在指令完成后CX=0,其原因是( )。 A. 出现两个相同位置字符相等的情况 B. 出现两个相同位置字符不相等的情况 C. 两个字符串长度不等 D. 字符串大小不同 【解】A

29. 在执行STD和MOVSW指令后SI和DI的变化是( )。 A.+1 B.—1 C. +2 D. —2 【解】D

30. AL的内容实现算术右移4位的正确指令时( )。

A.SHR AL, 4 B.MOV CL, 4 C.SAR AL, 4 D.MOV CL, 4 SHR AL, CL SAR AL, CL 【解】D

31. 指令RET8是NEAR过程的返回语句,执行之后,SP的值增加( )。 A.6 B. 8 C.10 D.12 【解】C

32. 执行PUSH AX指令时将自动完成( )。

A.1、SP←SP-1 , SS: [SP] ←AL B.1、SP←SP-1 , SS: [SP] ←AH 2、SP←SP-1 , SS: [SP] ←AH 2、SP←SP-1 , SS: [SP] ←AL C. 1、SP←SP+1 , SS: [SP] ←AL D.1、SP←SP+1 , SS: [SP] ←AH 2、SP←SP+1 , SS: [SP] ←AH 2、SP←SP+1 , SS: [SP] ←AL 【解】B

33.执行POP AX指令时将自动完成( )。

A.1、AH←SS:[SP],SP←SP+1 B.1、SP←SP+1,AH←SS:[SP] 2、AL←SS:[SP],SP←SP+1 2、SP←SP+1,AL←SS:[SP C.1、AL←SS:[SP],SP←SP+1 D.1、SP←SP+1. AL←SS:[SP] 2、AH←SS:[SP], SP←SP+1 2、SP←SP+1,AH←SS:[SP] 【解】C

34.执行以下指令后,SP寄存器的值应是( )。 MOV SP , 1OOH PUSH AX

A.00FFH B.00FEH C.0101H D.0102H 【解】B

35. 假定SS=1000H,SP=0100H,AX=2107H,执行指令PUSH AX后,存放数据07H的内存物理地址是(A.10102H B.10101H C.100FEH D.100FFH 【解】C

36.若AL= -79,BL= -102,当执行ADD AL,BL后,进位CF和溢出位OF的状态为( )。 【解】B

A.CF=0 ,OF=1 B.CF=1, OF=1 C.CF=0 ,OF=0 D.CF=1,OF=0

25

。 )37. INC和DEC指令不影响标志位( )的状态。

A.OF B.CF C.SF D.ZF 【解】B

38. 完成下列程序段操作后,个状态位为( )。 MOV AL, 1AH MOV BL, 97H ADD AL, BL

A. ZF=0, SF=1, CF=0 , AF=0, IF=1, OF=0 B. ZF=0, SF=1, CF=0 , AF=1, IF=0, OF=0 C. ZF=0, SF=0, CF=1 , AF=0, IF=1, OF=1 D. ZF=0, SF=0, CF=1 , AF=1, IF=0, OF=1 【解】B

39. 完成将累加器AX清零,但不影响 进位标志位CF状态的指令为( )。 A. SUB AX, AX B.XOR AX, AX C.MOV AX, 00H D.AND AX, 00H 【解】C

40. 下列指令分别执行后,将总是使CF=0和OF=0的指令为( )。 A.MOV B.NOT AX C.NEG D.INC 【解】B

41. 对状态标志位CF产生影响的指令是( )。

A.INC AX B.NOT AX C.NEG AX D.DEC AX 【解】C

42.下列指令助记符中影响标志寄存器中进位位CF的指令有( )。 A.MOV B.ADD C.DEC D.INC 【解】B

43.使状态标志位CF置零的不正确指令是( )

A。SUB AX,AX B CLC C: NEG AX D:XOR AX,AX [解] C

44.执行中断服务程序返回指令RETI时,返回地址来自于( )

A:ROM区 B:程序计数器 C堆栈区 D:中断向量表 [解] C

45.将BUF字节单元内容算术左移一位,以下指令不正确的是( ) A。MOV BX,OFFSET BUF B:MOV BL,BUF SAL BX,1 SAL BL,1 C:SAL BUF,1 D:LEA BX,BUF SAL,[BX],1 [解] A

46.完成下列操作以后,传送到寄存器AL,BL,CL,DL中的十进制数,正确的是( MOV AL,41H MOV BL,134Q MOV CL,‘B’

MOV DL,01111111B

A:AL=41H B:AL=41H C:AL=65 D:AL=01000001B BL=5CH BL=92 BL=134 BL=1011100B CL=42H CL=B CL=66 CL=00001011B DL=3FH DL=3FH DL=127 DL=01111111B [解] A

26

) 47.将寄存器BX的内容求反不正确的操作是( )

A:NOT BX B:XOR BX,OFFFFH C:AND BX,OFFFFH [解] C

48.下面指令组完成将字单元BUF1和BUF2的内容互换,错误的操作为( ) A:MOV AX,BUF1 B:MOV AX,BUF1 MOV BX,BUF2 MOV BX,BUF2 XCHG AX,BX MOV BUF2,AX MOV BUF1,AX MOV BUF1,BX MOV BUF2,BX

C:MOV AX,BUF1 D:XCHG BUF1,BUF2 XCHG AX,BUF2 MOV BUF,AX [解] D

49.当前BX=003H,AL=03H,DS2000H,(20003H)=0ABH,(20004H)=0CDH,(20005)=0ACH,(20006H)=0BDH,则执行了XLAT指令后,AL中的内容是( )

A 0ABH B:0ACH C:0CDH 0BDH [解] D

50.字变量BUF的偏移地址存入寄存器BX的正确操作是( )

A:LEA BX,BUF B:MOV BX,BUF C:LDS BX,BUF D:LES BX,BUF [解] A

51.下列串操作指令中,一般不加重复前缀(如REP)的指令是( ) A:STOSW B:CMPSW C:LODSW D:SCASW 解 C

52.SAR和SHR两条指令执行后,结果完全相同的情况是( ) A:目的操作数最高位为0 B:目的操作数最高位为1 C:目的操作数为任意的情况 D:任何情况下都不可能相同 解 A

53.在POP[BX]指令中,目的操作数的段地址和偏移地址分别在( ) A:没有段地址和偏移地址 B:DS和BX中 C:ES和BX中 D:SS和SP中 [解] B

54.对寄存器BX内容求补运算,下面错误的指令是( ) A:NEG BX B:NOT BX INC BX

C:XOR BX,0FFFH D:MOV AX,0 INC BX SUB AX,BX [解] D

55:指令LOOPZ的循环执行条件是( )

A:CX≠0,并且ZF=0 B:CX≠0,或ZF=0 C:CX≠0,并且ZF=1 D:CX≠0,或ZF=1 [解] C

56.LDS SI,ES:[1000H]指令的功能是( ) A:把地址1000H送SI

B:把地址ES:[1000H]字单元内容送SI

C:把地址ES:[1000H]字单元内容送SI,把地址ES:[1002H]字单元内容送DS D:把地址ES:[1000H]字单元内容送SI,把地址ES:[1002H]字单元内容送SI [解] C

27

57.DOS系统功能调用中的1号功能键盘输入的字符并存放在( ) A:AL B:BL C:CL D:DL 解 B

58.DOS系统功能调用中的2号功能是在屏幕上显示( )字符。

A:AL中ASCII码所表示的 B:DL中ASCII码所表示的

C:DS和DX所指明的内存中的一串 D:DS和BX所指明的内存中的一串 [解] B

3.3 判断题

1.立即数寻址方式只能用于源操作数( Y ) 2.立即数不允许被用做目的的操作数( Y )

3.对于所有的存储器寻址方式,都可以采用段超越前缀(N ) 4.指令指针寄存器IP是不能通过指令访问的( Y)

5.代码段寄存器CS的内容可以被压入栈区,也可以将堆栈中的数据弹出至CS中( N ) 6.数据段寄存器DS只能读出信息,不能写如信息( N )

7.CS和IP中的内容是不能通过指令随便改变的,也就是CS和IP都不能用做目的操作数。( Y 8.INC和DEC指令不影响CF状态( Y )

9.AND,OR,XOR指令执行后,会使CF状态为0(Y )

10.压缩型BCD码和非压缩型BCD码均有加减运算调整指令(Y ) 11.压缩型BCD码和非压缩型BCD码均有乘除运算调整指令( N ) 12.NOT指令的操作数不能是立即数( Y )

13.在条件转移中另中,只能用8位移量-128-+127( Y )

14.CALL指令和JMP指令的区别在于前者转移时需要保存返回地址,而后者不需要( Y ) 15.中断指令和CALL指令不同之处在于中断指令还要将标志寄存器FR压入堆栈( N ) 16.DOS所有的功能子程序调用,是利用INT21H中断指令( Y ) 17.MOV AX,[BP]的源操作数的物理地址=SS*16+BP( Y ) 18.段内转移要改变IP,CS的值( N )

19.条件转移指令只能使用于段内直接段转移( Y ) 20.立即寻址方式不能用于目的操作数字段( Y ) 21.不能给段寄存器直接赋立即数( Y )

22.MOV指令执行时会影响标志位状态( N ) 23.CF位可以用来表示有符号数的益出( N )

24.DIV指令在执行字节除法时,运算后的商存放在AH中,余数存放在AL中( N )

25.堆栈村区操作是以字节为单位的。当堆栈存入数据时,SP减1,当堆栈取出数据时,SP加1(26.请指出下列指令的错误之处 1.POP CS

2.MOV DS,200H 3.PUSH FLAG 4.MOV BP,AL 5.LEA BX,2000H

6) ADD AL,[BX+DX+10] 7) ADD [BX] [BP],AX 8) SAR AX,5 9) CMP [DI],[SI] 10) IN AL,180H

28

) N ) 11) MUL 25 12) INC IP

27.指出下列指令的正误,说明原因并改正。 1)LEA BX,AX 2)XCHG BL,100 3)IN AL,300H 4)TEST AL,100H 5)MOV [BX],[SI]

28.指出下列传送指令中哪些是非法指令,说明原因 1)POP AL

2)MOV CS,AX 3)OUT 310,AL

4)MOV {BX+CX},2130H 5)ADD [BX],[SI] [答案]

1 T 2 T 3 F 4T 5F 6F 7T 8T 9T 10T 11F 12T 13T 14T 15F 16T 17T 18F 19T 20T 21T 22F 23F 24F 25F

26. 1)F,禁止对CS寄存器赋值 2)F,段寄存器不能直接赋值 3)F,无此指令,可PUSHF

4)F,源操作数和目标操作数的尺寸不一致 5)F,LEA指令的源操作数必须是内存操作数

6)F,存储器寻址的有效地描述只能使用BX,BP。SI,DI,不能使用DX 7)F,BX和BP不能同时使用,BX只能与SI或DI相搭配

8)F,8086/8088的移位指令,当移位超过1位就必须将移动位数赋给CL 9)F 不允许在存储单元之间比较

10)F,断口地址超过255必须放入DX,采用寄存器DX间接寻址。 11)F,8086/8088的MUL指令源操作不允许为立即数。 12)F,不能对指令指针IP进行任何操作。

27. 1)F,本条指令取存储单元有效地址,源操作数必须是存储单元而不能是寄存器AX。目标操作数必须是通用寄存器之一 改:LEA BX,[SI]

2)F,不能与立即数进行交换。 改:XCHG BL,[100] 3)F,300H>255,I/O地址由DX给出。 改:MOV DX,300H IN AL,DX

4)F,操作数尺寸不匹配,AL是8位寄存器,100H不是8位数据。改:TEST AX, 100H 5)x,串操作指令中的目标操作数只能是ES:【DI】。改:MOV ES:【DI】, DS:【SI】 28.1) x, 出栈指令为数字操作。 2)x, CS不能作目标操作数。

3)x, 因为310>255,端口地址应放入DX 4) x, CX不能用作偏移地址寄存器。 5)x 内存单元间不能直接运算。

3.4 填空题

1.一条指令中一般包含有____(1)____和____(2)____两部分信息。 解:(1)操作码 (2)操作数

2.计算机中操作数可以在____(1)____中、____(2)____中、____(3)____中和____(4)____中。

29

解:(1)指令 (2)寄存器 (3)存储器单元 (4) I/O端口

3、对内存操作数寻址其有效地址EA是由____(1)____ 、____(2)____和____(3)____三部分分量之和来表示。 解:(1)基址寄存器 (2)变址寄存器 (3)位移器

4.BX、BP被称作____(1)____寄存器,用它们寻址称为____(2)____;将SI、DI称作____(3)____寄存器,用其寻址称为____(4)___ 解:(1)基址 (2)基址寻址 (3)变址 (4)变址寻址

5.当采用寄存器间接寻址时,使用通用寄存器BX,DI,SI时,可以默认不写的段寄存器是____(1)____,当使用通用寄存器BP时,可以默认不写的段寄存器是____(2)____。 解:(1)DS (2)SS

6.指令MOV AX,[BX][SI]中,目标操作数在____(1)____中,源操作数在____(2)____中,此时源操作数隐含使用的段寄存器为____(3)____ 解:(1)寄存器AX (2)内存单元 (3)DS 7.指令ADD【BP】,AL执行时,操作的结果在____(1)____段中,此时计算目的操作数物理地址的表达式是____(2)____ 解:(1)堆栈 (2)SS*16+BP

8.串寻址中,使用了一种隐含的变址寄存器寻址,分别使____(1)____和____(2)____指向源串和目的串,实现字符串操作 解:(1)SI (2)DI

9.串处理指令规定源串指针寄存器必须使用____(1)____,源串默认为在____(2)____段中,也可以在其他段,但必须指明;目的串指针寄存器必须使用____(3)____,目的串只能在____(4)____段中。 解:(1)SI (2)DS (3)DI (4)ES

10.操作数在I\\O端口时,当端口地址____(1)____,必须把端口地址放在____(2)____中,类似于存贮器寻址中的寄存器间接寻址。 解:(1)≧256 (2)DX

11.对于乘法、除法指令,其目的操作数一定在____(1)____或____(2)____中,而其源操作数可以在____(3)____中。 解:(1)AX (2)DX和AX (3)寄存器或存储单元

12.当AL<80H时,执行CBW后,AH=____(1)____;而当AL≧80H时,执行CBW后,AH=____(2)____。 解:(1)OOH (2)OFFH

13.算数右移指令SAR可于实现____(1)____数除2,而逻辑右移指令SHR则可用来实现____(1)____数除2 解:(1)对带符号 (2)对无符号

14.如果TABLE为数据段中0032H单元的符号名,其中存放的内容为1234H,当执指令MOV AX, TABLE后,AX=____(1)____;而执行指令LEA AX, TABLE后,AX=____(2)____ 解:(1)1234H (2)0032H

15.设当前的SI=1000H,DS=5000H,内存字单元(51000H)=1234H,执行MOV BX,【SI】后BX=____(1)____,执行LEZ BX,[SI]后,BX=____(2)____ 解:(1)1234H (2)1000H

16.假设DS=B000H,ES=A000H,BX=080AH,DI=1200H,(0B080AH)=05AEH, (0B080CH)=4000H,当执行指令LES DI,【BX】后,DS=____(1)____,ES____(2)____,DL=____(3)____ 解:(1)B000H (2)4000H (3)05AEH

17.使用查表指令XLAT之前,要求____(1)____寄存器指向表所载的段,____(2)____寄存器指向表的首地址,____(3)____寄存器中存放待查项在表中的位置与表首址的距离 解:(1)DS (2)BX (3)AL

18.读取标志位指令LAHF和设置标志位指令SAHF均只对标志寄存器FR中的____(1)____标志操作 解:(1)低8位

19.条件转移指令时一种短转移,其转移范围在____(1)____字节内。 解:(1)-128~+127

20条件转移指令的目标地址应在本条件转移指令的下一条指令地址的____(1)____字节范围内。 解:(1)-128~+127

30

21.子程序的调用与返回分段内和段间两种情况,对于段内调用与返回仅需要修改____(1)____的值,对于段间调用与返回需要同时修改____(2)____和____(3)____的值。执行CALL指令时,这些值均自动保存在____(4)____中。 解:(1)IP (2)CS (3)IP (4)堆栈

22.近过程(NEAR)的返回指令RET把当前栈顶的一个字弹出到____(1)____;远过程(FAR)的返回指令RET将先弹出一个字到____(2)____后又弹出一个字到____(3)____;IRET是____(4)____指令,它从堆栈栈顶顺序弹出三个字分别送到____(5)____、____(6)____ 和____(7)____

解:(1)IP (2)IP (3)CS (4) 中断返回 (5)IP (6)CS (7)标志寄存器FR 23.段内和段间的转移指令寻找方_____(1)_____和_____(2)_____两种。 [解] (1)直接寻址 (2)间接寻址 24.用CMP指令对无符号比较(A-B),当A

25.四条逻辑运算指令AND,OR,XOR,NOT中,_____(1)_____指令对标志位均无影响,而其他3条指令除对标志位 SF,ZF,PF有影响外,还使_____(2)_____和_____(3)_____总是置“0”,AF不确定。 [解] (1)NOT (2)CF (3)OF

26.如果要对一个字节或一个字的数求反,可用指令_____(1)_____,要对寄存器或存储单元内容中指定位求反则可运用_____(2)_____指令。

[解] (1)NOT (2)XOR 27.根据要求写出相应的指令。

(1)将附加段200H偏移地址中的数据送到BX中_____(1)_____ (2)将DH中的高4位求反,低4位保持不变。_____(2)_____

(3)将CL的符号位(D7位)置1,保持其他位不变。_____(3)_____ [解] (1)MOV BX, ES :[200H] (2)XOR DH,0F0H (3)OR CL,80H

28.压缩型BCD码加法调整指令为_____(1)_____,非压缩型BCD码加法调整指令为_____(2)_____,压缩型BCD码减法调整指令为_____(3)_____,非压缩型BCD码减法调整指令为_____(4)_____。 [解] (1)DAA (2)AAA (3)DAS (4)AAS 29.下面一段程序段: MOV AX,0 MOV AL,09H ADD AL,04H

1) 若要获得AX=13H,则在ADD指令后面加一条指令_____(1)_____ 2) 若要获得AX=0103H,则在ADD指令后面加一条指令_____(2)_____ [解] (1)DAA (2)AAA

30.试填空完善下面一段程序,使之完成对100个字单元的缓冲区清零,设缓冲区为2000H:0800H。 MOV AX,2000H MOV ES,AX MOV DI,0800H _____(1)_____ MOV AL,00H CLD

REP STOSB

[解] (1) MOV CX,100 31.试完成下面子程序,使其实现利用DOS功能调用INT21H,将一个DL中的字节数据的低4位ASCII码的形式显示出来。

DISPL PROC NEAR

31

_____(1)_____ CMP DL,9 JBE NEXT ADD DL,7 NEXT:ADD DL,30H _____(2)_____ _____(3)_____ RET

DISPL _____(4)_____

[解] (1) AND DL,OFH (2) MOV AH,2 (3) INT 21H (4)ENDP

32.试完成下面程序段,使其完成将存储单元DA1中压缩型BCD码,拆成二个非压缩型BCD码,低位放入DA2单元,高位放入DA3单元,并分别转换为ASCII码。 STRT: MOV AL,DA1 MOV CL,4 _____(1)_____ OR AL,30H MOV DA3,AL MOV AL,DA1 _____(2)_____ OR AL,30H MOV DA2,AL

[解] (1) SHR AL,CL (2) AND AL,OFH

34.分析下列程序段,程序段执行后 AX=_____(1)_____,BX=_____(2)_____,CF_____(1)_____。 MOV AX,5C8FH MOV BX,0AB8FH XOR AX,BX XOR AX,BX

[解] (1)5C8FH (2)0AB8FH (3)0

35.分析下列程序段,程序段执行后 AX=_____(1)_____,BX=_____(2)_____,CF=_____(1)_____。 XOR AX,AX INC AX NEG AX

MOV BX, 3FFFH ADC AX, BX

[ 解] (1) 3FFFH (2) 3FFFH (3) 1

36. 分析下列程序段,在横线上填上适当的内容。 1) MOV AL, OFH MOV BL, OC3H XOR AL, BL 则有:AL =(1),BL =(2 )CF =(3) 2) Mov BL, 93H MOV AL, 16H ADD AL, BL DAA

则有:AL =_(4),CF=(5),AF=(6) 3) Mov AX, BX

32

NOT AX

ADD AX, BX

则有:AX=(7) CF =(8) 4) Mov AL,88H MOV BL,5AH XOR AL,BL XOR AL,BL

则有:AL=(9),CF =(10)

【解】 (1)OCCH (2)OC3H (3)0 (4)O9H (5)1 (6) 0 (7) OFFFFH (8) 0 (9) 88H (10) 0

3.5 简答题、

1. 简述一条指令中一般包含哪些信息。

【解】一般一条指令中包含操作码和操作数两部分信息。 2. 简述计算机中操作数可能存放的位置。

【解】计算机申操作数可能存放在指令中、寄存器中、存储单元中和I/0接口中。 3. 名词解释:操作码、操作数、立即数、寄存器操作数、存储器操作数。 【解】

1)操作码:给出指令要完成的操作。 2)操作数:给出参与操作的对象。

3)立即数:要参与操作的数据在指令中。

4)寄存器操作数:要参与操作的数据,存放在指定的寄存器中。 5)存储器操作数:要参与操作的数据,存放在指定的存储单元中。 4. 什么是寻址方式?

【解】指令中用以描述操作数所在位置的方法称为寻址方式。

5. 内存操作数的逻辑地址表达式为——段基值:偏移量,试写出偏移量的有效地址EA的计算通式。 【解】偏移量的有效地址EA的计算通式为:EA=基址值 +变址值 +位移量。

其中:基址值为 BX或BP的内容,变址值为 SI或DI的内容,位移量为8 位disp8或16位displ6数据。 6. 指出下列各指令目的操作数所在的位置,并写出相应的地址。 1) ADD [ SI] , Ax 2) MOV CL, BUF 3) DEC [ BP + 50H] 4) OUT 20H, AL

5) JMP 2000H: 0100H 6) JMP [BX] 7) JMP BX 【解】

1)目的操作数在内存单元中,其逻辑地址为 DS:[SI],其物理地址 = DS * 16 + S1。 2)目的操作数在寄存器CL中。

3)目的操作数在内存单元中,其逻辑地址为 SS:[BP +50H],其物理地址 = SS * 16 +BP + 50HO 4)目的操作数在端口中,端口地址为:20H。 5)目的操作数在指令中。

6)目的操作数在内存单元中,其逻辑地址为 DS:[BX],其物理地址 = DS * 16 +BXo 7)目的操作数在寄存器BX中。

7. 两个逻辑段地址分别为 2345H:OOOOH和2000H:3450H,它们对应的物理地址是多少? 说明了什么?

33

【解】这两个逻辑段对应的物理地址均为 23450H,说明对应同一个物理地址可以有不 同的逻辑地址。即物理地址是惟一的,逻辑地址不惟一。

8. 设DS = 3000H,BX = 2000H,[ SI]=IOOOH,MAX =l230H,则指令 MOV AX,MAX [BX][SI]的源操作数物理地址为多少?

【解} 源操作数物理地址为 = DS * 16 + BX + SI +MAX= 30000H+ (2000H + IOOOH + 1230H) = 34230H,

9. 设当前 BX =Ol58H,DI=lOA5H,位移量 =lB57H,DS = 2100H,SS =11OOH,BP = O1OOH,段寄存器默认,写出以下各寻址方式胸物理地址。 1)直接寻址。

2)寄存器间接寻址 (设采用BX)。 3)寄存器相对寻址 (设采用BP)。 4)基址变址寻址 (设采用BX和 DI)o

5)相对基址变址寻址 (设采用BP、DI和位移量)。 【解】

1)物理地址 = DS * 16 +位移量 = 21000H + lB57H =22857H。 2)物理地址 = DS * 16 + BX =21000H十 Ol58H =21158H。 3)物理地址 = SS * 16 + BP = 11OOOH +O1OOH = 111OOH。

4)物理地址 = DS * 16 + BX + DI=21000 + Ol58H +lOA5H = 221FDH。

5)物理地址 = SS*16 +BP+ DI = 11OOOH +O1OOH + lOA5H +lB57H = l3CFCH。

10. 在转移类指令中,对转移的目标地址的寻址方式有几种?段内转移的范围是多大?段间 转移的范围是多大?条件转移的范围是多大7

【解】在转移类指令中,对转移的目标地址的寻址方式有段内直接转移、段内间接转 移、段间直接转移和段间间接转移。段内直接转移的范围为 - 32768~+ 32767,段内短转移 是在当前 IP 偏移值的 - 128 ~ + 127字节的范围内 (又称为相对寻址)。段间转移的范围可 以在1MB范围内。条件转移指令,均为段内短转移,其转移的范围为 IP 当前值的- 128 ~ + 127字节的偏移量范围内。

11. 条件转移指令均为相对近转移指令,请解释“相对近转移”的含义。若须往较远处进行 条件转移,应怎么做? 【解】“相对”是指相对于指令指针寄存器IP的当前值进行的转移。相对近转移范围 为- 128 ~ + l27. 若转移的目标地址较远,超出指令要求的范围,则可在相对转移的目标地 址处,放置一条无条件转移指令,从而实现较远距离的转移。

12. 已知 DS =5000H,CS =6000H,BX =1278H,SI =345FH,(546D7H)=0,(546D8H)= 80H。在分别执行下面两条段内转移指令后,实际转移的目标物理地址是多少? ( 1 ) JMP BX (2) JMP [BX+SI] 【解】

1)段内转移的目标地址存放在寄存器BX中,故实际的转移地址是6000H:l278H,其 物理地址 = CS * 16 + BX = 60000H + l278H = 61278H.

2)段内转移的目标地址存放在内存单元中,该单元的物理地址 = DS * 16 + BX + SI = 50000H + l278H+345FH =546D7H,故实际的转移地址是6000H:8000H,其物理地址= CS * 16 + 8000H = 60000H + 8000H = 68000H.

13. 若一个堆栈段的起始地址为 3520H:OOOOH,栈区的长度为 O1OOH,当前SP 的内容为 OO20H,试问:

1)栈顶的物理地址是什么? 2)栈底的物理地址是什么? 3)栈区中已有字节数为多少?

4)存入数据l234H和5678H后SP的内容是多少?

【解】堆栈的最高地址叫栈底,堆栈指针SP总是指向栈顶。

34

1)栈顶的物理地址 = SS * 1OH + SP = 3520H * 1OH +OO80H = 35280H。 2)栈底的物理地址 = SS * IOH + OIOOH二35300H 3)栈区中已有字节数 = 1OOH - 20H=OEOH。

4)8086/8088 的堆栈操作为字操作。在压人两个字数据l234H和5678H后,SP减4, 所以SP的内容为:SP - (字数 * 2)= OO20H -2 *2 =OO1CH,SS的内容不变。 14. 简述RET指令与IRET指令的异同点。

【解】RET指令与IRET指令的异同如表3-1所示。 表3,1:RET指令与 IRET 指令的异同

15. 采用最少的指令,实现下述要求的功能。 1)AH的高4位清0。

2)将 AH 中的非压缩型BCD码转化成ASCII码。 3)AIL的高4位取反。

4)AL的高4位移到低4位,高4位清0。 【解】

1) AND AH, OFH 2) OR AH, 30H 3) XOR AL, OFOH 4) MOV CL, 4 SHR AL, CL

16. 试比较 SUB AL,O9H与 CMP AL,O9H这两条指令的异同,若AL = O8H,写出执行 两条指令后,对6个状态标志位的影响。

【解]SUB AL,O9H与 CMP AL,O9H指令功能的对比如表 3-2所示。 表3-2 SUB AL,O9H与 CMP AL,09指令功能的对比

17. 阅读下面8086程序段,指出该程序段的功能。 AGN1: MOV AL, [ DI] INC DI

TEST AL,04H

35

JE AGN1 ……. AGN2: ……

【解】 当 AL的 D2位为1时,程序转至AGN2。

18. 分析下面程序段,分析AL满足什么条件程序将转到LOP标号执行? CMP AL, OFFH JNL LOP …… LOP: ……

【解】指令 JNL NEXT为对两个带符号数比较后的状态进行判断,实现转移的条件转 移指令。因此,只有当AL中的带符号数不小于 (即大于等于)OFFH (即为-1)时,满足 条件才能转至标号NEXT处执行。故AL≥-1。

19. 把首地址为 BLOCK的字数组的第 6个字传送到CX寄存器中。试写出该指令序列,要求 使用两种寻址方式。

【解1 1)以BX的寄存器间接寻址: MOV BX, BLOCK+ 10

MOV CX,[BX];将 BLOCK开始的第 6个字的地址存入 CX 2)用BX、SI的基址变址寻址: LEA BX, BLOCK MOV SI, 10

MOV CX,[BX +SI];将 BLOCK开始的第 6个字的地址存入 CX

20. 已知 AX =789AH,BP = OF4A2H,CF =1,写出下列指令单独执行后的结果及 CF 状 态。

1) ADD AX, 0800H 2)ADD AX,5 3) DEC AX 4)SUB AX,5678H 5) AND AX, 00FFH 7) SAR AX, 1

9) 5BB [ BP], 0A034H 【解】

1 ) AX = 809AH, CF = 0 3 ) AX = 7899H , CF = 1 5 ) AX = 009AH , CF = 0 7 ) AX = 3C4DH , CF = 0 9) Bp = 546DH, CF = 0 2)ADC AX, 5

4) SUB AX, 5678H 6) OR Ax , 8888H 8) RCR AX, 1

2) AX = 78AOH, CF = 0 4) AX = 2222H, CF = 0 6) Ax = 0F89AH , CF = 0 8 ) AX =OBC4DH , CF = 0

21,写出满足下列各要求的指令:

1)将有效地址为1000H的内存单元内容送到BX寄存器中。

2)将偏移地址为1000H 的内存单元的有效地址送到BX寄存器中。 3)将源操作数为SI间接寻址方式中的数据送到SI寄存器中。

36

4)从偏移地址为1000H开始的内存中取出双字送人BX和DS 中。 【解】

1) MOV BX, [ 1000H] 2) LEA BX, [ 1000H] 3) MOV SI, [ SI] 4 LDS Bx, [ 1000H]

22. 设有:DS = 2000H,BX =0100H,SI=0002N, (21200H)= 4C2AH, (21202H)= 8765H。试求执行以下各条指令以后,AX寄存器的内容是什么? 1 ) MOV AX, 1200H z) MOV AX, [ 1200H] 3) Mov AX, 1100[ BX]

4) Mov AX, 1100[ BX] [ SI] 【解】

1 ) AX = 1200H 2 ) AX = 4C2AH 3 ) AX = 4C2AH 4) AX = 8765H

23. 试写出下面程序段中每条指令执行后AL的值及OF、SF、ZF、CF、AF和PF等状态标 志的变化。 XOR AL, AL MOV AL,7FH ADD AL, 1 ADD AL,80H MOV AH, 2 SUB AL, AH 【解】

XOR AL, AL MOV AL,7FH ADD AL, 1 ADD AL, 80H MOV AH,2 SUB AL, AH 解

; AL = 00H, OF =0, SF = 0, ZF = 1 , CF = 0, AF = 0, PF = 1 ; AL = 7FH , OF =0, SF =0, ZF = 1 , CF = 0, AF = 0, PF = 1 ; AL = 80H, OF = 1, SF =1, 2F= 0, CF =0, AF = 1 , PF = 0 ; AL =00H, OF = 1, SF= 0, ZF = 1, CF = 1, AF = 0, PF = 1 ;AL=00H OF =1、SF =0、ZF =1、CF=l、AF =0、PF =1 ; AL = 0FEH, OF = 0, SF = 0, ZF = 0, CF= 1, AF =1, PF = 0

24,设 AX= AA55H, 写出下面程序段中每条指令执行后 AX =?CF =? SHR AL,1 RCL AX,1 MOV CL,3 SAL AX, CL ROL AH, 1 SAR AL,1 ROR AL, CL SHL Ax,1 RCR AH, CL

37

【解]

SHR AL, 1 ; AX = AA2AH , CF = 1 RCL AX, 1 ; AX = 5455H , CF = 1 MOV CL, 3 ; AX = 5455H, CF = 1 SAL AX, CL ;AX = A2A8H , CF= 0 ROL AH,1 ; Ax = 45A8H , CF=1 SAR AL, 1 ; Ax = 45D4H , CF= 0 ROR AL, CL : AX = 459AH, CF ~-1 SHL Ax,1 ; AX = 8B34H, CF=0 RCR AH, CL ; AX = D134H, CF = 0

25. 已知 AX =AA55H,BX =55AAH在执行下列各指令后,AX =? 1) NOT AX 2) NEG AX 3) AND AX, BX 4) OR AX, BX 5) XOR AX, BX 6) CMP AX,BX 7) TEST AX,80H 8) OR AX,80H 9) AND AX,0FH 10)XOR AX,0FH 【解】

1) 55AAH 2)55ABH 3)0000H 4)FFFFH

5)FFFFH 6)AA55H 7)AA55H 8)AAD5H 9)0005H 10)AA5AH

26. 试写出能完成下列各操作功能的指令或程序段。 1)将累加器 AX 清零,同时进位标志CF清零。

2)将 DS:[1000H】字节单元内容与寄存器CL 内容相加后存入DS:[2000H]字节单 元。

3)不用立即数,也不用存储单元,完成 AL←OFFH,BL←0,CL←1。 4)取 AX的低4位。

5)将 BX的高8位置1,其他位不变。 6)把标志寄存器中溢出位OF变反。 【解】

1) XOR AX, AX 或者 AND AX,0 2)ADD CL,DS:[1000H] MOV DS:[2000H],CL

3) XOR CL,CL ;CL=0,CF=0 MOV BL,CL ;BL=0 MOV AL,CL ;AL=0 NOT AL ;AF=FFH INC CL ;CF=D1H 4) AND AX,000FH 5) OR BX,0FF00H 6) PUSHF POP AX

38

XOR AX,800H PUSH AX POPF

27. 根据下列各要求,写出程序段。 1)判断AL为负,则转至NEXT。

2)判断字节变量DAI为 0,则转至NEXT。 3)判断AL的D1位为 1,则转至NEXT。

4)判断字变量DA1的D1位为 0,则转至NEXT。

5)比较AH与字节变量DA1中的数,若AH不等于DA1,则转至 NEXT。 6)比较字节变量DA1与字符“A”,若DA1≥“A”,则转至NEXT。 【解】

1) OR AL, AL JS NEXT 3) TEST AL, 2 JNZ NEXT 5) CMP AH, DA1 JNE NEXT 2) CMP DA1, 0 JZ NEXT

4)TEST DA1, 0002H JZ NEXT 6) CMP DA1 , ' A' JAE NExT

3.6. 分析程序题

1. 写出下面每条指令执行以后,有关寄存器的内容。 XOR Ax, AX

MOV AX, 0ABCDH INC AX MOV CL,4 SHR AL, CL XOR AX, 0FFFH OR AX 6000H MOV SP,0100H PUSH AX POP BX 【解】

AX = 0000H Ax = 0ABCDH AX = 0ABCEH CL = 04H AX = 0ABCH AX = 0543H AX = 6543H SP=0100H SP =00FEH

39

BX = 6543H

2. 设初值AX = I234H, CX = 0004H,在执行下列程序段后,AX =? AND AX, AX JZ DONE SHL CX,1

ROR AX, CL JMP LP

DONE. ROL AX, CL LP: NOP [解]

AND AX,AX ;AX=1234H

JZ DONE ;为0,转DONE,非0,则顺序执行。 SHL CX,1 ;CX=0008H ROR AX,CL ;AX=3412H JMP LP

DONE: ROL AX,CL ;AX=2341H LP;NOP

程序段之行后 Ax =3412H

3 阅读下面程序后,回答指定问题。 LEA SI,BUF MOV CX, 100 CLD

LP1; LODSB CMP AL, 39H JE LP2 LOOP LP1 LMP LP3 LP2:…..

问:1)该程序完成的功能是什么?

2)程序执行完后,若CX≠0,则程序转移到哪里? 3]程序执行完后,如果CX =0,则程序转移到哪里?

解】查找BUF起始的100个字节数据中有无39H,有则转LP2,无则转到LP3 2)若CX≠0,程序转移到LP2击执行。 3} 如果CX =0,程序转移到LP3去执行。 4阅读下面子程序后,回答指定问题。 SUB1 PROC FAR TEST AL,80H JE LP1

TEST BL,80H JNE LP2 JMP LP3 LP1: TEST BL,80H JE LP2

LP3: XCHG AL,BL LP2: RET SUB1 ENDP

40

问:

1)子程序的功能是什么?

2)如调用前AL=88H,BL =77Hl 则在返回时,AL =?,BL =? 解

1)该子程序功能是测试AL和BL内容是否为异号数。若是,则互相变换;若不是,则 不改变。

2)若在调用前 AL =88AH,BL=77H,则在返回时,AL =77H,BL=88H 5 阅读程序段,说明程序段执行后转移到哪里? MOV AX, 1379H MOV BX, 8ACEH ADD AX, BX JNO LI JNC L2 JMP L3

解 本题意为 AX+ BX无溢出则程序转到L1,有溢出但没进位程序将转移L2,否则程 序转移到L3。由于1379H + 8ACEH无茁出则程序转到L1. 6.阅读程序段,说明程序段执行后转移到哪里? MOV AX, 8765H MOV BX, 1234H SUB AX, BX JNO L1 JNC L2 JMP L3 8. 2) CLD

LEA DI, [ 0404H] MOV CX, 0080H XOR AX, AX RER STOSW 3)MOV CX, 10 MOV AL,0 MOV BL, AL IP:ADD AL, BL INC BL LOOP LP 【解】

1)将 Fiist开始的10个字节传送到Second处。 2)将偏移量为 0404H开始即80H个字单元清0。 3)计算0~9之和,结果为55。

3.7 编程题

1. 有 3个无符号数分别在AL、BL、CL 中. 其中有两个相同,编写一程序找出不相同的数 并送人DL中。 【解】

CMP AL, BL JNZ LI MOV DL, CL

41

JMP L3

L1. CMP AL, CL JNZ L2

MOV DL, BL JMP L3 L2: MOV DL, AL L3: HLT

AL 与BL比较 AL≠BL,转去L1

AL = BL,则CL一定是不同数,将 CL存入 DL 转结束

AL 与CL 比较

AL≠BL,且AL≠CL,则 AL一在是不同数

AL≠BL. 但 AL = CL,则BL一定是不同数,将 BL存人 DL 转结束

:将AL存入OL

2. 设在DA开始的单元中存放有一4字节的有符号补码数,高字节存在轻高地址单元。编一 个程序段,完成求出此 4字节的有符号补码数的绝对值,并存人ABS开始的单元。 [解} 分析:将4字节的有符号补码数从内存取出后,首先判符号位,正教的绝对值就是 其本身,负数的绝对值需要求出相应的原码,去掉负号即为绝对值。 START: LEA BX, DA MOV AX, [ BX] MOV DX, [ BX+ 2] OR DX, DX JNS LP1 NOT AX NOT DX ADD Ax.1 ADC Dx, 0 OR DX, 8000H LP1: LEA BX, ABS MOV [BX], AX MOV [BX+ 2], Dx HLT

3. 编写程序实现将首地址为 STR、长度为 N 的字符串顺序颠倒 (如图 3-1所示) 【解]

R-STR; LEA SI. STR MOV CX, N MOV DI, SI ADD DI, Cx DEC Dl

SHR Cx,1 ;(CX)=N/2 NEXT:MOV AL, [ Sl] XCHG AL, [ Dl] MOV [S I ],AL INC SI DEC DI

42

LOOP NExT HLT STR

图 3-1 示意图

4. 采用至少两种方洁编程实现,将段地址为 I000H,偏移地址为 I00H开始的100个字单元 清为0■

【解 1 分析:可以采用MOV指令实现,也可以采用串操作指令STOSW实现。 方法 1: MOV Ax, 1000H MOV DS, AX MOV SI, 100H

MOV CX,100 XOR AX, AX

LP: MOV [ SI], Ax ADD SI, 2 LOOP LP HLT

;AX = 1000H

;给段寄存器 DS 赋值 ;设置地址指针 ;设置循环次数 ;AX: 0

;将字单元清 0 ;字地址指针加 2

;CX = CX - 1,若CX≠0转到LP 方法2:

Mov AX, 1000H MOV ES,Ax MOV DI, 100H

XOR AX, Ax Mov CX, 100 CLD

REP STOSW HTL

令DF =0,设置串操作中指针增加

ES:[DI]-Ax,循环执行 cx欢,且每次DI 自动加2

5 编写一个程序段,将 AL 中的各位顺序完全颠倒后存入AH,如 AL =II0I00I0B,AH = 0100101IB,

【解】采用的算法为将 AL 中各位依次从低 位移出,同时将移出位从低位向高位移人 0 AH中 (如图3.2所示),编程思路为:

1)设置循环计数器CX←8,令AH←0。

2)利用SHR指令将 AL右移一次。

43

第四章

8. 8086宏汇编有三种基本语句,不包括 ( )。

A 宏指令语句 已 多字节语句 C. 指令语句 D. 伪指令语句

[解1 B

9. 标号和变量都不具有 ( } 的属性。

凡 段属性 B. 偏移属性 C. 操作属性 D:类型属性 [解] c

10. 下列伪指令中不能用来定义变量的是 ( )。 A, BYTE B. DB C. DD D. DW [解]A

1 1. 在运算椅PTR表达式中不能出现的类型是 ( )。

A. DB B. NEAR C. FAR D. WORD E.BYTE 【解]A

12. 汇编语言中变量名的有效长度为 ( )个宇符。 A.8 B.15 C.16 D. 31 [解I D

13. 对于8086指令系统,汇编语言程序一个段的最大长度是 ( )K字节■ A.8 B.16 C.32 D.64 [解]D

14. 汇编语言中标识符的组成规则表述不正确的是 ( ).

44

A. 允许字符个数为 1 ~31个 B. 第 1 个字符不能是数字 C. 第 1 个字符可以是字母、“?”及下划钱 D. 从第 2个字符开始可以是任意宇特 E 允许采用系统专用的保留宇 [解1 E

I5. 进行宏定义时,不是必须包含的内容是 ( )。

厶 表示宏定义开始和结束的伪指令MACRO和 ElvDM 且宏名

C. 宏名在宏定义开始和结束伪指令中必须成对出现 D. 宏体 [解】C

16. 进行子程序定义时,不是必须包含的内容是 ( )。 A 表示子程序定义开始和结束的伪指令PROC和 ENDP B. 子程序名

C. 一个或多个形参 D. 子程序体

E. 子程序名在子程序定义开始和结束伪指令中必须质对出现 【解I c

17. 进行段定义时,不包含的内容有 ()。

A. 表示段定义开始和结束的伪指令SEGMENT和 ENDS B. 段名

C. 一个或多个可选参数

D. 段名在段定义开始和结束伪指令中必须成财出现 E. 段的属性 【解I E

18. 宏汇编语句 BUF DB 5AH中的BUF被约定称为 ()

A 伪指令 B. 操作符 C. 变量名 D. 标号 【解1 c

19. 伪指令语句 VAR DW 5 DUP (?)在存储器中分配 ()个字节给变量VAR■ A.0 B.5 C.10 D.15 [解]C

20. 伪指令语句 VAR EQU 5 在存储器中分配 ()个字节给变量VAR。 A0 B.5 C.10 D.15 [解1 A

21. 某数据段定义如下: DATA SEGMENT ORG 100H

VAR1 DB 20,30,'ABCD' VAR2 DW l0 DUP(?) DATA ENDS

则执行指令语句 MOV BX,OFFSET VARI执行后BX = () A.20 B.32 C'ABCD' D100H [解]D

22. 某数据段定义如下: DATA SEGMENT VAR1 DB 20,30

VAR2 DW 10 DUP (?)

45

VAR3 DB 'ABCD' DATA ENDS

则执行指令语句 MOV BX,SEG VARI和MOV CX,SEG VAR3之后,BX和CX 二者关系为 ()。

A. BX> CX B. BX< CX C.BX=CX D.不确定 [解]C

23. 伪指令 MOV BX,DATAI 和 MOV BX,OFFSET DATA1的作用()。 A. 相同 B. 不同 [解】B

24,程序段如下: ORG 0024H

DA DW 'AB',0ABH, $+ 4 LEA AX,DA+ 4

当执行上述指令后,AX中的内容是()。 A.4241H B.00ABH C.0004H D.0028H [解】D

25. 某数据段定义如下: DATA SEGMENT ORG 20H DA1 DB 12H,34H DA2 EQU 5678H DA3 DW DAI DAT ENDS

则变量DA3的偏移量是 ()

A.0020H B.0022H C.0024H D.0026H 【解】B

26,某数据段定义如下: DATA SECMEP 4T ORG 20H: DA1 DB 12H,34H DA2 EQU 5678H DA3 DW DA1 DATA ENDS 则 DA3 =()。

A.0020H B.1234H C.3412H D.0024H [解]A

27. 设某数据段定义为: DATA SEGMENT

DA1 DB l2H,34H DA2 DW I2H,34H DATA ENDS

下面语句 ()有语法错误。

A. DA1 DW DA1 B.MOV AL,BYTE PTR DA2+1 C. MOV AX, DA1 + 1 D.MOV AX,WORD PIR DA2+1 【解】C

28. 若某源程序的数据段为:

46

DATA SEGMENT

DA1 DB 3CH, O1000011B DA2 DW 'AB' DA3 EQU DA2

DA4 DW DA1, DA2 DATA ENDS

若要实现DA4的偏移量 =OO26H,应在 ()处设置的语句是 (】。 A. DB 2OH DuP(?) B. ORG 20H c. ORG 22H [解1 c

29. 某数据段定义如下: DATA SEGMENT ORG 50H VARI DB 5 VAR2 DW 20H

VAR3 DW 5 DUP(?) COUNT EQU 5

VAR4 DD COUNT DUP(?) DATA ENDS

该数据段占用了 ()字节单元。 A.13 B.28 C.33 D. 50H 【解1 c

30. 下面伪指令定义后,其变量对应的物理地址是 () ORG O100H BUF DB 10 DUP (?) C0N DW 20 DUP (?) A BUF = DS : 0110H CON=DS:Ol20H C. BUF = DS : 0100H CON=DS:O110H B. BUF = DS : 0100H CON = DS : 010AH D. BUF = DS : 0110H CON = DS : 0130H [解I B

31. 语句 VAR6 DB 2 DUP (11H,2 DUP (0),,'AB' )表示内存存入的数据为()。 A. 02H, 11H, 02H, 00H , 41H, 42H

B. 11H , 00H , 00H, 41H, 42H, 11H, 0OH, 00H, 41H , 42H C. 11H, 02H , 00H, 41H, 42H, 11H, 02H , 00H , 41H, 42H D. 11H , 00H, 00H, 42H, 4IH, 11H , 00H , 00H , 42H , 41H [解I B

32. 用数据定义伪指令:DAI DB 4 DUP (0,2 DUP (1,0))定义数据占字节单元数 是 (】

A.4 B.8 C.12 D.20

47

[解]D

33. 下列语句中

A MOV SP,AL

B. MOV WORD_OP[BX+4*3][SI],SP c. MOV VAR1,VAR2

D. MOV SP,SS:DATA_WORS[SI][DI] [解]B

34. 下列语句中 ()是有效的汇编语言指令。 A. IN DX, AL B. OUT I800H, AX C. LEA Ax,2000H D. MOV 55,4000H 【解1 A

35. 当字单元 BUF的内容为-1 时,程序转移到LP处。下面错误的指令是 ( )。 A. MOV Ax, BUF X0R AX, OFFFFH JZ LP

B.MOV BX, OFFSET BUF CMP WORD PTR【BX】,OFFFH JZ LP

C. LEA SI, BUF

ADD BYTE PTR [SI], 0OO1H JZ LP

D. MOV AX, BUF

AND Ax, OFFFFH JZ LP [解]D

36. 阅读下列程序段,其执行后DX=( ) ORG 100H

DA1 DB 12H, 34H, 56H, 78H DA2 EQU $

DA3 DW 10H DUP(1,2,3) MOV DX, DA2 ADD DX,DA3+2 ADD DX, DA3+2

A.36H B.59H C.0105H D.0106H [解] D

37. 设代码段名为 CODE,它的起始物理地址为 20AOoH,程序开始执行的起始地址用标号 START表示。对代码段寄存器CS赋予段地址的正确方法是 { ). A.MOV CS,20A0H B. MOV Ax, 20AOH MOV cs, Ax

C. ASSUME CS:CODE

48

D. END START [解】D

38. 已定义数据段如下。能使 AX 中数据为偶数的语句是 ( )。 DATA SEGMENT

ORG 0213H

DA1 DB 15H,26H,37H AD2 DW DA1 DATA ENDS

A MOV Ax, WORD PTR DA1 B. MOV AL, DA1 + 2

C. M0V AL, BYTE PTR AD2+ 1 D. MOV AX, WORD PTR DA1+ 1 【解】C

39. 下列指令作用完全相同的是 ( )。

A. DATAI EQU 2000H 和 DATA1 =2000H

B. MOV BX,DATA1 和 MOV BX,OFFSET DATA1 C. ADD AX,BX和 ADD AX,[BX]

D. LEA BX,BUF和 MOV BX,OFFSET BUF [解1 D

40. 以下定义变量的伪指令正确的有 ( )。

A. D1 DB 'ABCDEFGH' B.D2 DW 'ABCDEFGH' C. D3 DD 'ABCDEFGH' 【解】A

41,下列说法不正确的是 ( )。 B. D2 DW ' AB CDEFGH'

A. 经过汇编以后,子程序目标代码只有一个,而宏体的目标代码可以有若干个 B. 在程序运行中,宏调用与子程序调用都要产生程序转移

C. 用子程序结构可以缩短程序的目标代码,但程序运行时间稍长:用宏指令程序运行 时间稍短,但程序目标代码稍长

D. 宏的编写及调用与子程序编写及调用方式不同 E. 宏指令可用形式参数,使用灵活方便 [解】 B

42. 为在一连续存储单元中依次存放数据41H,42H,... , 48H,下面数据定义语句不正确 的是 ( )。

A. DB 41H, 42H, 43H, 44H, 45H, 46H, 47H, 48H B. DB ' ABCDEFGH' C: DB ' HGFEDCBA'

D. DW 4241H, 4443H , 4645H , 4847H 解I c

43. 下列语句中 ()是有效的汇编语言指令。 A. MOV SP, SS: DATA_WORDISI][ Dl] B. LEA AX,2000H C. MOV AX,4000H D. PUSH DL

E. OUT I800H, AL 【解]C

44. 试阅读下列程序段,执行此程序段后的结果是 AL = (

49

SR MACRO RI, R2, R3 Mov CL, B2 R3 R1, CL MOV AL, R1 ENDM

DATA SEGMENT DA1 DB O1H OA2 DB ? DATA ENDS . .

XOR CL, CL MOV BL, DA1 SR BL, 04H, SHL MOV DA2, AL

A. 02H B. 04H c. 08H D. 10H 【解1 D

45,结构的定义及预置语句如下: SABC STRUC

LD1 DB 3,4

LD2 DB 10 DUP(?) LD3 DB 10

LD4 DB 'ABCDEGHY' LD5 DW BUF SABC ENDS

DATA SABC<...'50HGFCBATH'> DATA ENDS

在预置与存储分配时,初值可以修改的结构字段有 () A. LDI 和 LD2 C,均可以

B. LD3, LD4, LD5 D. 均不可以 解 B

4.3 判断题

1. 指出下列指令正确与否,若不正确试说明原因。 1) POP CS

z) MOV DS, 2000H 3) PUSH FR

4) PUSH WORD PTR 20[ BX+ Sl-2] 5)LEA BX,4[BX] [答案]

1)x,禁止对CS寄存器赋值。 2)x,段寄存器不能直接赋值。 3)x,无此指令,可改用 PUSHFo

50