微机原理期末重点总结

时间:2024.4.20

第一章

1.微型计算机(Microcomputer):采用微处理器为核心构造的计算机

2.微处理器(Microprocessor):微型机的运算和控制核心,称为中央处理单元(CPUCentral Processing Unit),将控制器和运算器集成在一片或几片芯片上构成

3.微型计算机(MicroComputer)是指以微处理器为核心,配上存储器、输入/输出接口电路等所组成的计算机。

4.微型计算机系统(Micro Computer System是指以微型计算机为中心,配以相应的外围设备、电源和辅助电路(统称硬件)以及指挥计算机工作的系统软件所构成的系统。

5.总线:计算机中各功能部件间传送信息的公共通道,是微型计算机的重要组成部分。

5.1地址总线AB在对存储器或I/O端口进行访问时,通过地址总线传送由CPU提供的要访问存储单元或I/O端口的地址信息。(单向总线)

   数据总线DB从存储器取指令或读写操作数,对I/O端口进行读写操作时,指令码或数据信息通过数据总线传输。(双向总线)

   控制总线:各种控制或状态信息通过控制总线传输

6.基数 (Radix):一个数制所包含的数字符号的个数,被称为基数,记为r

7.在二进制计数系统中,最高位表示符号位,“0”表示正数,“1”表示负数,

       其余表示数值。

7.1补码:反码末位(包括小数)加1

7.2由原码直接求补码:二进制数低位(包括小数)的第一个1右边保持不变

(包含此1),左边依次求反

8.BCD码用4位二进制数表示1位十进制数,只取十个状态,而且每四个二进制码之间是“逢十进一”。(常使用8421码:即00001001)

8.109  ASCII码是 30H39H

AZ”的ASCII码是 41H5AH

az  ASCII码是 61H7AH

第二章

1.总线接口单元BIU:取指令时,BIU负责从内存的指定地址处取出指令,送到指令队列流中排队,执行指令中需要操作数时,也由BIU从内存的指定地址中取出,送给EU参加运算。

2.8086组成:416位段寄存器(CDSE);16位指令指针寄存器IP;20位地址加法器及总线控制电路;6个字节指令队列缓冲器

2.1 指令指针寄存器:存放下一条要读取的指令在代码段中的偏移地址。由CSIP 的内容决定程序的执行顺序。

   地址加法器:将段寄存器和指令指针寄存器的内容相加,得到20位的物理地址。

   指令队列缓冲器:086的指令队列有6个字节,当指令队列出现2个空字节,BIU就自动执行一次取指令周期,将下一条要执行的指令从内存单元读入指令队列。

3.执行单元EU:负责指令的译码执行

    组成;通用寄存器:AXBXCXDXSPBPSIDI

16位标志寄存器FLAGS:存放CPU运算的状态特征和控制标志

16位算术运算单元ALU:进行算术及逻辑运算

EU控制电路:接收指令,实时操作。

 

状态标志:表示处理器当前的运行状态。

CF(Carry Flag):进(借)位标志位。最高位产生进(借)位时,该位为1。用于无符号数运算。

PF(Farity Flag):奇偶标志位。当指令执行结果的低8位中含有偶数个1时,

PF1,否则为0

AF(Auxiliary Flag):辅助进(借)位标志位。执行加法或减法指令时,若结果的低字节的低四位向高四位有进位或借位,AF1,否则为0

ZF(Zero Flag):零标志位。若结果为0,则ZF1,否则为0

SF(Sign Flag):符号标志位。当运算结果最高位为1时,SF1,否则为0OF(Overflow Flag):溢出标志位。有符号数加减运算的结果有溢出OF=1,否则OF=0。双高位判别法确定OF=Cs?Cp   最高位、次高位

4.存储器的分段管理

物理地址:存储器的绝对地址,从00000H0FFFFFH

CPU访问存储器的实际寻址地址(也称为绝对地址)。(20位)

逻辑地址记为:段基址:偏移量(16位)物理地址=段基址左移4位+偏移量

物理地址=段基址×16 +偏移量

对于一个确定的存储单元,逻辑地址不唯一,物理地址唯一。

5.总线操作和工作时序

    总线操作:微处理器通过总线来进行取指令、存取操作数等操作

工作时序:指令译码以后按时间顺序产生的确定的控制信号。

时钟周期:时钟脉冲信号的一个循环时间,又称为一个“T”状态,

是微处理器工作的最小时间单位。

   指令周期:执行一条指令所需要的时间。

总线周期:完成一次对存储器或I/O端口的操作所需要的时间。

第三章

1.寻址方式:指令指定操作数的位置,即给出地址信息,执行时根据这个地址信                         息找到需要的操作数。这种寻找操作数的过程称为寻址,而寻找操作数的方法, 称为寻址方式。

1.1立即寻址:跟随在指令操作码之后(在指令中直接给出来),称为立即数    

           只适用于双操作数指令中的源操作数寻址,而且多用来为寄存器赋初值或者目的操作数与一个常数运算

  

1.2寄存器寻址:存放在CPU内部的寄存器中,称为寄存器操作数

  16位操作数,寄存器为AXBXCXDXSIDISPBP

  8为操作数,寄存器为AHALBHBLCHCLDHDL

储存器寻址:存放在内存储器中,称为存储器操作数

存储器寻址

2.1.直接寻址

在指令中,有四个段超越前缀:CSDSESSS

2..2寄存器间接寻址方式:EA通过寄存器间接给出。寄存器的内容就是偏移地址。

        可以表示EA的寄存器有4BPBXSIDI

 注意利用BX,SI,DI进行间接寻址时,如果指令前面没有用前缀指令指明

       段寄存器,则寻址时默认的段寄存器是数据段寄存器DS;

       利用BP进行间接寻址时,如果指令前面没有用前缀指令指明

       段寄存器,默认的段寄存器是堆栈寄存器SS.

2.3寄存器相对寻址方式 :EA是寄存器和立即数的和。

2.4基址变址寻址方式 :EA是基址寄存器(BPBX)和变址寄存器(SIDI)

2.5相对基址变址寻址方式:EA是基址寄存器、变址寄存器和立即数的和。

2.6 I/O端口寻址方式:当操作数在外部设备时,使用专门的I/O指令:输入指令 IN 输出指令 OUT

①当端口地址可以用一个字节(低256个端口)表示时,可直接也可间接寻址,高于256I/O端口必须间址。

②输入指令中目的操作数只能为ALAX;输出指令中源操作数只能为ALAX

3.

.

                      Mov操作指令小结

①立即数只能作源操作数

目的操作数可以是寄存器或者各种寻址的内存单元。不可以是立即数、IPCS

②目的操作数与源操作数必须类型一致,或者同为字,或者同为字节

③对于存储器单元与立即数同时作为操作数的情况,必须显式指明,(因为此时立即数可以看做字也可看做字节数)用byte ptr指示字节类型,用word ptr指示字类型。

④段寄存器的操作有一些限制:不允许立即数传送给段寄存器;不允许段寄存器之间的直接数据传送;CS不允许做目的操作数,因为这样直接改变CS值,将引起程序执行混乱。

⑤如果指令有两个操作数,不允许两个都是存储器数。

⑥上述四类格式以外的指令必定是非法指令。

“MOV”指令不改变源操作数,不影响标志位

                        堆栈指令小结

①堆栈操作是字操作指令,不要写出“PUSH AL”等。

②在“POP”指令中,“POP CS”为非法指令。

③堆栈中的数据弹出后,数据并没有在堆栈中消失,除非压入新数据。

④堆栈操作指令不影响标志位。

               

数据交换指令小结

①操作数不能为立即数;

②源操作数和目的操作数不能同时为存储单元;

③段寄存器不能作为操作数;

④交换指令不影响标志。

换码指令XLAT  指令格式:XLAT ;执行操作:AL[DS×16+BX+AL];

1 IN  输入指令

指令格式:IN  AL/AX port/DX

执行操作:AL/AX <= [port]/[DX] ;从外部设备输入数据给累加器

指令格式:OUT  port /DXAL/AX

执行操作:[port]/[DX] <= AL/AX;将累加器的数据输出给外部设备

目标地址传送指令

取有效地址指令LEALoad  Effective  Address

         指令格式:         LEA    reg16SRC    regSRC的有效地址 

地址指针装入DS指令LDSLoad  pointer  DS:16位送给DS形成新的数据段;低16位送入目的操作数形成新的偏移地址。

地址指针装入ES指令LESLoad  pointer into  ES):同上

   

标志寄存器传送指令

共有4条标志传送指令,都为单字节指令,指令的操作数为隐含形式。

1)取标志指令LAHFLoad  AH  from Flags

           格式:LAHF

2)置标志指令SAHFStore   AH  into  Flags

          格式:SAHF

3)标志压入堆栈指令PUSHF PUSH  Flags onto stack

格式: PUSHF          

操作:[SP][SP]?2[[SP]+1][SP]][FLAGS]

4)标志弹出堆栈指令POPF POP Flags off stack

格式:POPF       

操作:[FLAGS][[SP]+1[SP]][SP][SP]+2

3.3.2 算术运算指令

乘法指令:1)无符号数乘法指令MUL (MULtiplication unsigned

          2)带符号数的乘法IMUL (Integer MULtiplication

除法指令:1)无符号数除法指令DIV (DIVision unsigned)

2)带符号数除法指令IDIV (Integer DIVision)

除数只能是被除数的一半

被除数为16位时,除数应该为8位;

被除数为32位时,除数应该为16位。

指令指定的是除数,被除数是隐含的。

如除数为字节,则被除数为AX,所得8位商存入AL,余数存入AH

如除数类型为字,则被除数为DX:AX,所得16位商存入AX,余数存入DX

符号扩展指令:若被除数和除数字长相等,在做IDIV之前,必须先用符号扩展指令CBWCWD将被除数的符号位扩展,使之成为16位数或32位数。

              正数的符号位为零,在高位全添上零;负数的符号位为1,高位全添上1。保证原数据的大小和符号不变。

字节扩展指令CBW

格式:CBW

操作:AL的符号位扩展到AHAL扩展成AX

当(AL)的最高有效位为0时(AH= 00H

当(AL)的最高有效位为1时(AH= FFH

字扩展指令CWD (Convert Word to Double word)

格式:CWD

操作:AX的符号位扩展到DXAX扩展成DX,AX

当(AX)的最高有效位为0时(DX= 00H
当(AX)的最高有效位为1时(DX= FFH

3.3.3

逻辑运算和移位指令

1)逻辑指令AND (logical AND)    相当于乘

指令格式及操作:    AND   dstsrc           (dst)(dst)(src)

目的操作数:寄存器、存储器

源操作数:立即数、寄存器、存储器

操作对象可以为字节、可以为字!

2)逻辑指令OR (logical inclusive OR)   

3逻辑运算NOT (logical NOT)      相当于取反

操作数可以是8位或16位寄存器或存储器,但不可以是立即数!

不影响任何状态标志位!

4)逻辑异或指令XOR (logical eXclusive OR)

指令格式及操作:XOR     dstsrc                 (dst)(dst) Å (src)

5)测试指令TEST(TEST or non-destructive logical AND)

指令格式及操作:TEST  dstsrc            (dst)(src)

指令格式及运算均与AND指令相同,但是不保留运算结果,即不影响目的操作数,只根据运算结果设置标志。

2.移位指令 

逻辑左移SHL

算术左移SAL

逻辑右移SHR

算术右移SAR

3,.控制移位指令

                   汇编语言程序设计

5.1.2  汇编语言语句的类型和格式

1、语句的类型

指令语句:能产生目标代码,

CPU可以执行的

能完成特定功能的语句

伪指令语句

不产生目标代码,

仅在汇编过程中起控制作用或指示作用

2、语句的格式

[字名]              助记符       [操作数

字名:指令语句中,名字是一个标号,实质上是指令的符号地址

助记符:指令语句中助记符有90多种

操作数:指令语句:单操作数、双操作数、无操作数

伪指令语句:操作数不定,有多个操作数时需使用逗号隔开

操作数类型:常数寄存器标号表达式

表达式中常用的运算符:

算术运算符:+()?()*()/()MOD(模除,即两个整数相除后取余数)

逻辑运算符:AND(逻辑”)OR(逻辑”)XOR(逻辑异或”)NOT(逻辑”)

关系运算符:

     EQ(等于)NE(不等)LT(小于)GT(大于)LE(小于或等于)GE(大于或等于)

分析运算符

SEG运算符:得到一个标号或变量所在段的段地址

  OFFSET运算符:得到一个标号或变量的偏移地址

?TYPE运算符: 运算结果是一个数值

LENGTH运算符。如果一个变量已用重复操作符DUP说明其变量的个数,则利用

    LENGTH 运算符可得到这个变量的个数。如果未用DUP说明,则得到的结果总是1

SIZE运算符。如果一个变量已用重复操作符DUP说明,则利用SIZE 运算符可得到

   分配给该变量的字节总数。如果未用DUP说明,则得到的结果是TYPE运算的结果。

合成运算符:用来建立或临时改变变量或标号的类型或存储器操作数的存储单元类型

PTR运算符:指定或修改存储器操作数的类型。

?SHORT运算符:指定一个标号的类型为SHORT(短标号),即标号到引用该标号指令之间的距离在?128~+127个字节的范围内。

5.2 伪指令:给汇编程序的命令,如定义数据、分配存储区、定义段等,在汇编过程中起控制或指示作用。

数据定义伪指令:DBDWDDDFDQDT

[变量名伪指令定义符  操作数[,操作数…]

符号定义伪指令

1EQU             格式:名字   EQU   表达式

段定义伪指令

在汇编语言中定义逻辑段,常用的段定义伪指令有SEGMENT/ENDSASSUME

5.3  DOS系统功能调用

DOS功能调用,分为以下四个主要方面:

         (1) 磁盘的读/写及控制管理。

            (2) 内存管理。

    (3) 基本输入/输出管理(如键盘、打印机、显示器等)

           (4) 其他管理(如时间、日期等)

对于所有的功能调用,使用时一般需要经过以下三个步骤:

        (1) 子程序的入口参数送相应的寄存器。

        (2) 子程序编号送AH

        (3) 发出中断请求:INT 21H(系统功能调用指令)

11号功能调用(键入并显示一个字符)

调用格式:MOV      AH1

             INT   21H

22号功能调用(显示器显示一个字符)

调用格式:

            MOV  DL,待显示字符的ASCII, (或者单引号引上要显示的字符,如‘A’

            MOV  AH2

            INT     21H

39号功能调用(显示器显示字符串)

调用格式:MOV  DX,待显示字符串首字符的偏移地址

        MOV  AH9

        INT   21H

44C号功能调用(程序运行结束、返回操作系统)

调用格式:

     MOV          AH4CH

     INT   21H


第二篇:微机原理考前总结


微型计算机原理及应用

习题集

专业班级

学 号

姓 名

目录

第1章 概述 1

第2章 计算机中的数制与编码 2

第3章 微处理器及其结构 2

第4章 8086/8088CPU指令系统 2

第5章 汇编语言程序设计 2

第6章 存储器系统 2

第7章 中断技术 2

第8章 输入/输出接口技术 2

第9章 串行通信技术及其接口芯片 2 模拟试题(一) 2

参考答案 2

模拟试题(二) 2

参考答案 2

模拟试题(三) 2

参考答案 2

河南理工大学 2006--2007 学年第 1 学期 2 参考答案 2

近年来某高校硕士研究生入学试题 2 参考答案 2

近年某高校研究生入学考试试题 2 参考答案 2

近年某高校攻读硕士学位研究生试题 2 参考答案 2

第1章 概述

一、填空题

1.电子计算机主要由 运算器 、 控制器 、 存储器 、 输入设备 和 输出设备 部分组成。

2. 和 集成在一块芯片上,被称作CPU。

3.总线按其功能可分 、 和 三种不同类型的总线。

4.计算机系统与外部设备之间相互连接的总线称为 ;用于连接微型机系统内各插件板的总线称为系统内总线(板级总线) ;CPU内部连接各寄存器及运算部件之间的总线称为 内部总线 。

5.迄今为止电子计算机所共同遵循的工作原理是 和 的工作原理。这种原理又称为 冯·诺依曼型 原理。

二、简答题

1.简述微处理器、微计算机及微计算机系统三个术语的内涵。

答:微处理器是微计算机系统的核心硬件部件,它本身具有运算能力和控制功能,对系统的性能起决定性的影响。微处理器一般也称为CPU;微计算机是由微处理器、存储器、I/O接口电路及系统总线组成的裸机系统。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。三者之间是有很大不同的,微处理器是微型计算机的组成部分,而微型计算机又是微型计算机系统的组成部分。

2.什么叫总线?为什么各种微型计算机系统中普遍采用总线结构?

答:总线是模块与模块之间传送信息的一组公用信号线。

总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行。因此微型计算机系统中普遍采用总线结构。

3.微型计算机系统总线从功能上分为哪三类?它们各自的功能是什么?

答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。地址总线用于指出数据的来源或去向,单向;数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作。

第2章 计算机中的数制与编码

一、填空题

1.写出下列原码机器数的真值;若分别作为反码和补码时,其表示的真值又分别是多少?

(1) (0110 1110)=(+110 1110)=(+110)

(0110 1110)=(+110 1110)=(+110)

(0110 1110)=(+110 1110)=(+110)

(2) (1011 0101)=(-011 0101)=(-53)

(1011 0101)=(-100 1010)=(-74)

(1011 0101)=(-100 1011)=(-75)

2.写出下列二进制数的原码、反码和补码(设字长为8位)。

(1) (+101 0110)=(0101 0110)=(0101 0110)=(0101 0110)

(2) (-101 0110)=(1101 0110)=(1010 1001)=(1010 1010)

3.[X]=78H,则[-X]=(88)H。

4.下面各二进制数分别代表原码、反码和补码时,其等效的十进制数值为多少?

(1) (1111 1111)=(-127)

(1111 1111)=(-0)

(1111 1111)=(-1)

(2) (1000 0000)=(+0)

(1000 0000)=(-127)

(1000 0000)=(-128)

5.已知X1= +0010100,Y1= +0100001,X2= -0010100,Y2= -0100001,试计算下列各式(设字长为8位)。

(1) [X+Y]= [X]+[Y]= 0001 0100+0010 0001 = 0011 0101

(2) [X-Y]= [X]+[-Y]= 0001 0100+0010 0001 = 0011 0101

(3) [X-Y]= [X]+[-Y]= 1110 1100+0010 0001 = 0000 1101

(4) [X+Y]= [X]+[Y]= 1110 1100+1101 1111 = 1100 1011

6.将下列十六进制数分别转换成二进制、八进制、十进制和BCD数。

(1)(5D.BA)=(0101,1101.1011,1010)=(135.564)=(93. 7265625) =(1001,0011.0111,0010,0110,0101,0110,0010,0101)

(2)(1001.0101,1)=(9.34375)=(11.26)=(9.58)

=(1001.0011,0100,0011,0111,0101)

7.写出下列字符的ASCII码。

(1) ‘9’=(39H) (2) ‘C’ =(43H)

(3) ‘$’ =(24H) (4) ‘空格’ =(20H) 二进制原码二进制真值十进制真值二进制反码二进制真值十进制真值二进制补码二进制真值十进制真值二进制原码二进制真值十进制真值二进制反码二进制真值十进制真值二进制补码二进制真值十进制真值二进制真值原码反码补码二进制真值原码反码补码补补二进制原码十进制真值 二进制反码十进制真值二进制补码十进制真值二进制原码十进制真值 二进制反码十进制真值二进制补码十进制真值11补1补1补12补1补2补22补2补2补22补2补2补162810BCD210816BCDASCII码ASCII码

ASCII码ASCII码

(5) ‘b’ =(62H) (6) ‘回车’ =(0DH)

(7) ‘换行’ =(0AH) (8) ‘报警符’ =(07H) ASCII码ASCII码

ASCII码ASCII码

二、选择题

1.下列无符号数中最小的数是(A)。

A.(01A5) B.(1,1011,0101) C.(2590) D.(3764) HBDO

2.下列有符号数中最大的数是(D)。

A.1002H B.1001 0011 0010 1100B C.2570O D.9614D

3.在机器数(A)中,零的表示形式是唯一的。

A.补码 B.原码 C.补码和反码 D.原码和反码

4.8位二进制数补码的数值表示范围为(A)。

A.-128~+127 B.-127~+127

C.一129~+128 D.-128~+128

5.若下列字符码(ASCII)中有奇偶校验位,但没有数据错误,采用偶校验的字符码是(D)。

A.11001011 B.11010110 C.11000001 D.11001001

6.B9H可以看成(ABD)。

A.无符号数185 B.带符号数-71的补码

C.十进制数99的组合BCD码 D.带符号数-57的原码

第3章 微处理器及其结构

一、填空题

1.8086/8088 CPU执行指令中所需操作数地址由 ,由 BIU最后形成一个 20位的内存单元物理地址。

2.8086/8088 CPU在总线周期的T1时刻,用A19/S6~A16/S3输出 位地址信息的最高 位,而在其他时钟周期,则输出 状态 信息。

3.8086/8088 CPU复位后,从 一般这个单元在 区中,在其中设置一条 跳转 指令,使CPU对系统进行初始化。

4.8086系统的存储体系结构中,1MB存储体分 其中和数据总线D15~D8相连的库全部由 奇地址 单元组成,称为高位字节库,并用作为此库的选通信号。

5.8086/8088系统中,可以有 个存储单元。

6.用段基值及偏移量来指明内存单元地址的方式称为 。

7.通常8086/8088 CPU中当EU执行一条占用很多时钟周期的指令时,或者在多处理器系统中在交换总线控制时会出现 空闲 状态。

8.8086 CPU使用 根地址线访问I/O端口,最多可访问 根地址线访问存储单元,最多可访问 1M个字节单元。

9.CPU取一条指令并执行该指令的时间称为 指令周期,它通常包含若干个 总线周期,而后者又包含有若干个 时钟周期。

二、单项选择题

1.某微机最大可寻址的内存空间为16MB,其CPU的地址总线至少应有(E)条。

A.26 B.28 C.20 D.22 E.24

2.8086/8088 CPU的RESET引脚至少应维持(A)个时钟周期的正脉冲宽度才能有效复位。

A.4 B. 5 C.2 D.3

3.当RESET信号进入高电平状态时,将使8086/8088 CPU的(D)寄存器初始化为0FFFFH。

A.SS B.DS C.ES D.CS

4.8086/8088 CPU与慢速存储器或I/O接口之间进行数据传输,为了使传送速度匹配,有时需要在(C)状态之间插入若干等待周期TW。

A.T1和T2 B.T2和T3 C.T3和T4 D.随机

5.8086/8088 CPU中标志寄存器的主要作用是(D)。

A.检查当前指令的错误 B.纠正当前指令执行的结果与错误

C.决定是否停机 D.产生影响或控制某些后续指令所需的标志

6.8086最小模式下的存储器读周期中地址锁存发生在总线周期的(A)时刻。

A.T1 B.T2 C.T3 D.T4

7.指令指针IP的作用是(A)。

A.保存将要执行的下一条指令的地址 B.保存CPU要访问的内存单元地址

C.保存运算器运算结果内容 D.保存正在执行的一条指令

8.8086CPU有两种工作模式,最小模式的特点是(A)。

A.CPU提供全部控制信号 B.由编程进行模式设定

C.不需要8282收发器 D.需要总线控制器8288

三、简答题

1.8086/8088 CPU分为哪两个部分?如何协调工作?

答:EU是执行部件,主要的功能是执行指令和形成有效地址。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。

2.8086/8088 CPU的地址总线有多少位?其寻址范围是多少?

答:8086/8088 CPU的地址总线共20位,最大可寻址1MB空间。

3.8086/8088 CPU使用的存储器为什么要分段?怎么分段?

答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以及BX、BP、SI、DI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的

直接寻址能力在64KB范围内。而实际上8086/8088有20条地址线,它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址?

实际使用的解决办法是:将1MB大小的存储空间分为若干“段”,每段不超过64KB。这样,一个20位的物理地址就可以用“16位段基址:16位偏移量”的形式(称为逻辑地址)来表示了,其中段地址存放在8086/8088的段寄存器中。

4.8086/8088 CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?

答:8086/8088 CPU中共有:

8个16位的通用寄存器AX、BX、CX、DX、BP、SP、SI、DI;

2个变址寄存器SI、DI;

2个指针寄存器BP、SP;

其中BX、BP、SI、DI亦可作地址寄存器。

5.Intel 8086与8088有何区别?

答:8086与8088的区别主要表现在以下几个方面:

第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列。而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码。

第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位。注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同。

第三、其他不同的引脚定义:(1)AD15~AD0,在8086中为地址/数据复用,而在8088中AD15~AD8改为A15~A8只作地址线用;(2)34、28号引脚定义不同。

6.8086/8088CPU工作在最小模式时:当CPU访问存储器时,要利用哪些信号?当CPU访问外设接口时,要利用哪些信号?

答:8086/8088 CPU工作在最小模式时,若访问存储器,需用到以下信号:

、DEN、READY、

需用到以下信号:

7.试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:

(1)1278H+3469H

答:CF=0 AF=1 ZF=0 SF=0 OF=0 PF=1

(2)54E3H-27A0H

答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=0

(3)3881H+3597H

答:CF=0 AF=0 ZF=0 SF=0 OF=0 PF=1 、、、ALE、、AD0~AD15、A19/S6~A16/S3。若访问外设,、、AD0~AD15。 、ALE、、DEN、READY、

(4)01E3H-01E3H

答:CF=0 AF=0 ZF=1 SF=0 OF=0 PF=1

其中,进位标志CF用于判别无符号数运算是否超出数的表示范围,而溢出标志OF用于判别带符号数运算是否超出数的表示范围。

奇偶标志PF只能判断结果低8位中“1”的个数为奇数还是偶数。

8.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?

答:逻辑地址由两个16位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20位的地址,它是唯一能代表存储空间每个字节单元的地址,一般只出现在地址总线上。

由于8086/8088CPU中的寄存器只有16位长,所以程序不能直接存放20位的物理地址,而必须借助逻辑地址,即用两个16位的寄存器来表示物理地址。他们之间的关系是:物理地址=段基址*16+偏移量;另外,一个物理地址可对应多个逻辑地址。

9.设现行数据段位于存储器0B0000H~0BFFFFH单元,DS段寄存器内容为多少? 答: DS段寄存器内容为0B000H。

10.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?

答:逻辑地址是在程序中对存储器地址的一种表示方法,由段基址和段内偏移地址两部分组成,都是16位的二进制代码,如1234H:0088H。偏移地址是指段内某个存储单元相对该段首地址的差值。物理地址是8086芯片引线送出的20位地址码,物理地址=段基址*16+偏移地址,用来指出一个特定的存储单元。

11.给定一个存放数据的内存单元的偏移地址是20C0H,(DS)=0C0E0H,求出该内存单元的物理地址。

答:物理地址:0C2EC0H。

12.8086/8088为什么采用地址/数据引线复用技术?

答:考虑到芯片成本和体积,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。

13.怎样确定8086的最大或最小工作模式?

答:引线

小模式,

的逻辑状态决定8086的工作模式,引线接低电平,8086被设定为最大模式。 引线接高电平,8086被设定为最

14.8086基本总线周期是如何组成的?

答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为T1、T2、T3、T4。

15.在基于8086的微计算机系统中,存储器是如何组织的?存储器是如何与处理器总线连接的?信号起什么作用?

答:8086为16位微处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,分别命名为偶存储体和奇存储体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15~D8,“体选”信号接

允许访问偶体中的低字节存储单元,信号;A0信号有效时信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。

16.有一个由20个字组成的数据区,其起始地址为610AH:1CE7H。试写出该数据区首末单元的实际地址PA。

首单元地址:610A0H+1CE7H=62D87H

末单元地址:62D87H+27H=62DAEH

17.有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H和00135H,试画出它们的存储器示意图。

地址 内容

00130

H

微机原理考前总结

00131

H

00132

H

00133

H

00134

H

00135

H

00136

H

18.试说明8086CPU的控制引脚ALE的作用。

答:8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信

号将低位地址线通过锁存器保存,以形成系统地址总线。

第4章 8086/8088CPU指令系统

一、判断题

1.MOV AX,[BP]的源操作数物理地址为16×(DS)+(BP)。 (×)

2.OUT DX,AL指令的输出是16位操作数。 (×)

3.不能用立即数给段寄存器赋值。 (√)

4.所有传送指令都不影响PSW寄存器的标志位。 (×)

5.堆栈指令的操作数均为字。 (√)

6.段内转移指令执行结果要改变IP,CS的值。 (×)

二、单项选择题

1.寄存器间接寻址方式中,操作数在(C)中。

A.通用寄存器 B. I/O端口 C.存储单元 D.段寄存器

2.(A)寻址方式的跨段前缀不可省略。

A. DS:[BP] B. DS:[SI] C. DS:[DI] D. SS:[BP]

3.假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSH AX后,(SP)=

(C)。

A. 0014H B. 0011H C. 0010H D. 000FH

4.用BP作基址变址寻址时,操作数所在的段是当前(C)。

A.数据段 B.代码段 C.堆栈段 D.附加段

5.已知(IP)=1000H,CF=0,则执行指令JNC Short label后,下列各数中哪一个是可能的IP值?(B)

(A)0FFFFH (B)0FFEH (C)10FEH (D)1100H

6.执行下列指令后,(AX)=(A)。

MOV AX,1234H

MOV CL,4

ROL AX,CL

DEC AX

MOV CX,4

MUL CX

HLT

A. 8D00H B. 9260H C. 8CA0H D. 0123H

7.设(AL)= - 68,(BL)= 86,执行SUB AL,BL指令后,正确的结果是(C)。

A. CF =1 B. SF =1 C. OF =1 D. ZF =1

8.已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H。指令LEA AX,[SI]执行后(AX)=(C)。

A. 0002H B. 0005H C. 0004H D. C302H

9.条件转移指令JNE的条件是(C)。

A. CF=0 B. CF=1 C. ZF=0 D. ZF=1

10.在8086中,(BX)=0282H,且题中指令已在指令队列中,则执行

INC BYTE PTR(BX)指令需要的总线周期为(C)。

A. 0 B. 1 C.2 D. 3

三、多项选择题

1.下列指令中源操作数使用寄存器寻址方式的有(BF)。

A. MOV BX,BUF[SI] B. ADD[SI+50],BX C. SUB AX,2

D. CMP AX,DISP[DI] E. MUL VAR[BX] F. PUSH CX

2.将累加器AX的内容清零的正确指令是(BCD)。

A. CMP AX,AX B. SUB AX,AX

C. AND AX,0 D. XOR AX,AX

3.正确将字变量WORD VARR偏移地址送寄存器AX的指令是(CD)。

A. MOV AX,WORD VARR B. LES AX,WORD VARR

C. LEA AX,WORD VARR D. MOV AX,OFFSET WORD VARR

4.调用CALL指令可有(ABDE)。

A.段内直接 B.段内间接 C.短距离(SHORT)

D.段间直接 E.段间间接

5.8086指令的操作数可能有(ABCD)。

A. 0 B. 1 C. 2 D. 3

四、填空题

1.与指令MOV BX,OFFSET BUF功能相同的指令是 。

2.假设(BX)= 0449H,(BP)= 0200H,(SI)= 0046H,(SS)= 2F00H,(2F246H)= 7230H则执行XCHG BX,[BP+SI]指令后,(BX)。

3.执行下列指令序列后,完成的功能是将(DX,AX

MOV CX,4

NEXT: SHR DX,1

RCR AX,1

LOOP NEXT

4.已知(AL)=0101 1101B,执行指令NEG AL后,再执行CBW后,

(AX)= 0FFA3H 。

5.在数据传送类指令中,只有 令 POPF是唯一可以改变TF标志的指令。

6.设有100个字节数据(补码),存放在数据段中EA=2000H的存储单元中。以下程序应该从该数据区中找出最小的一个数据,并存入EA=2100H单元中,请将下面程序补充完整。

MIN: MOV BX, MOV AL,[BX]

MOV CX, LOOP1:INC BX

CMP AL,[BX]

MOV AL,[BX]

LOOP2:DEC CX

JNZ MOV ,AL

7.MOV AX,ES:[BX][SI]中,源操作数的物理地址计算式是:

(ES)×16+(BX)+(SI)。

五、综合题

1.请指出以下各指令的源、目的操作数所使用的寻址方式。

(1)MOV SI,2100H

(2)SBB DISP[BX],7

(3)AND [DI],AX

(4)OR AX,[609EH]

(5)MOV [BX+DI+30H],CX

(6)PUSH ES:[BP]

(7)CALL DISP [DI]

答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址

(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址

(3)源操作数:寄存器寻址;目的操作数:变址寻址

(4)源操作数:直接寻址; 目的操作数:寄存器寻址

(5)源操作数:寄存器寻址;目的操作数:(带位移量的)基址变址寻址

(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址

(7)只有一个操作数,为(带位移量的)变址寻址

2.请指出下列各条指令的错误,并改正。

? MOV [100],23H

? ADD AX,[BX+BP+6]

? PUSH DL

? IN AX,[3FH]

? OUT 3FFH,AL

? LES SS,[SI]

? POP [AX]

? IMUL 4CH

? SHL BX,

? INT 300

? XCHG DX,0FFFH

? MOV AH,BX

? MOV [BX],ES:AX

? MOV AX,OFFSET [SI]

? MOV CS,AX

? MOV DS,ES

? MOV DS,1000H

答:(1)不允许直接向段寄存器送立即数,可改为:

MOV AX,1000H

MOV DS,AX

(2)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTE PTR或WORD PTR说明,否则汇编程序会因不能确定操作数长度而指示出错。可改为:MOV BYTE PTR [100],23H

(3)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:

ADD AX,[BX+DI+6]

(4)堆栈操作应以字为单位进行,而DL是一个字节。

可改为:PUSH DX

(5)在输入/输出指令中,8位端口地址应直接写在操作数处。可改为:

IN AX,3FH

(6)端口地址3FFH已超出8位二进制表示范围,16位端口地址应存于DX。可改为:

MOV DX,3FFH OUT DX,AL

(7)LES指令的目操作数应该是通用寄存器,不能是段寄存器。可改为:

LES AX,[SI]

(8)AX不能用于间接寻址,间接寻址只能用BX、BP、SI、DI四个寄存器之一。可改为:POP [BX]

(9)立即数不能做乘法指令的操作数,可改为:

MOV BL,4CH

IMUL BL

(10)当逻辑移位的次数大于1时,应该用CL指示次数。可改为:

MOV CL,5

SHL BX,CL

(11)操作数300 > 255,已超出有效的中断类型码范围。

(12)XCHG指令不允许立即数做它的操作数。可改为:

MOV CX,0FFFH

XCHG DX,CX

(13)源、目的字长不一致

(14)在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式

(15)OFFSET只用于简单变量,应去掉

(16)CS不能作为目的寄存器

(17)段寄存器之间不能直接传送数据

3.设若标志寄存器原值为0A11H,(SP)=0060H,(AL)=4。下列几条指令执行后,标志寄存器、AX、SP的值分别是多少?

PUSHF

LAHF

XCHG AH,AL

PUSH AX

SAHF

POPF

答:指令执行后标志寄存器的值为0411H,AX=0411H,SP=005EH。

4.假如在程序的括号中分别填入指令:

(1) LOOP L20

(2) LOOPNE L20

(3) LOOPE L20

试说明在三种情况下,当程序执行完后, AX、BX、CX、DX四个寄存器的内容分别是什么?

BEGIN: MOV AX,01

MOV BX,02

MOV DX,03

MOV CX,04

L20: INC AX

ADD BX,AX

SHR DX,1

( )

答案: (1)(AX)= 5 (BX)= 16(CX)= 0 (DX)= 0

(2)(AX)= 3 (BX)= 7 (CX)= 2 (DX)= 0

(3)(AX)= 2 (BX)= 4 (CX)= 3 (DX)= 1

5.变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。 答案: MOV AX, 0

MOV AL, N1

SUB AL, N2

AAS

MOV DL, AL

MOV AL, N1+1

SBB AL, N2+1

AAS

MOV DH, AL

6.在已学的指令中,可实现累加器清0的单条指令有哪些?比较它们的功能。

答:(1)MOV AX,0 ;仅将累加器清0,不会影响任何标志位

(2)SUB AX,AX ;累加器清0的同时影响所有状态标志,具体地有:ZF、PF置1,CF、AF、SF、OF均清0

(3)AND AX,0 ;将累加器清0,ZF、PF置1,CF、OF、SF清0

(4)XOR AX,AX ;将累加器清0,ZF、PF置1,CF、OF、SF清0

7.已知(DS)=2000H,有关的内存单元值为:(21000H)=00H,(21001H)=12H,(21200H)=00H,(21201H)=10H,(23200H)=20H,(23201H)=30H,(23400H)=40H,(23401H)=30H,(23600H)=60H,(23601H)=30H,符号COUNT的偏移地址为1200H。执行下列指令后,寄存器AX、BX、SI的值分别是多少?

MOV BX,OFFSET COUNT

MOV SI,[BX]

MOV AX,COUNT[SI][BX]

答:执行结果为(BX)=1200H,(SI)=1000H,(AX)=3040H。

8.设若内存单元DATA在数据段中偏移量为24C0H处,24C0H~24C3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SI、DS的值分别是多少?

MOV AX,DATA

LEA SI,DATA

MOV CL,[SI]

LDS BX,DATA

答:执行结果为(AX)=6655H,(BX)=6655H,(CL)=55H,(SI)=24C0H,(DS)=8877H。

9.若(AX)=26D3H,(CX)=7908H,CF=1,执行下列指令后,寄存器AX、CX的值分别是多少?CF=?OF=?

SAL CH,1

RCR AX,CL

ROL AL,1

答:执行结果为(AX)=0A64CH,(CX)=0F208H,CF=OF=0。

10.已知有程序段如下:

MOV AL,35H

MOV DL,AL

AND DL,0FH

AND AL,0F0H

MOV CL,4

SHR AL,CL

MOV BL,10

MUL BL

ADD AL,DL

执行之后,AL的值等于多少?该程序段完成了什么功能?

答:程序段执行后(AL)=23H。该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能。

11.下面的程序执行后,DX、AX的值分别是多少?

;以X为首址的字单元中的数据依次为1234H、5678H

;以Y为首址的字单元中的数据依次为8765H、4321H

LEA SI,X

LEA DI,Y

MOV DX,[SI+2]

MOV AX,X

ADD AX,X

ADC DX,[SI+2]

CMP DX,[DI+2]

JL L2

CMP AX,Y

JL L1

JMP EXIT

L1: MOV AX,1

JMP EXIT

L2: MOV AX,2

EXIT:??

答:执行结果为(AX)=2,(DX)=0ACF0H。

12.设VAR字单元的值为x,F1字单元的值为y,试编程按以下要求给y赋值: 2 x>30

y = 0 30≥x≥1

-2 x<1

答:一种可能的程序段实现如下:

MOV AX,VAR;AX ? x

CMP AX,30

JG PLUS2 ;x>30,则转PLUS2

CMP AX,1

JL MIN2 ;x<1,则转MIN2

MOV F1,0 ;30≥x≥1,y=0

JMP GO

PLUS2:MOV F1,2 ;y=2

JMP GO

MIN2: MOV F1,-2 ;y = -2或00FEH

GO:?? ;后续处理

简析:本例中并未说明VAR字节单元是带符号数还是无符号数,读者在使用判断转移指令时可任意选用。若当作带符号数,应使用JG、JL、JGE、JLE等指令,如参考程序;若当作无符号数,则应使用JA、JB、JAE、JBE等指令。

第5章 汇编语言程序设计

一、填空题

1.段定义伪指令语句用 语句表示开始,以 语句表示结束。

2.ARRAY DW 10 DUP(5 DUP(4 DUP(20H,40H,60H))语句执行后共占 字节存储单元。

3.汇编语句中,一个过程有NEAR和FAR两种属性。NEAR属性表示主程序和子程序 在同一个代码段中 ,FAR属性表示主程序和子程序不在同一个代码段中。

4.DOS系统功能号应放在 寄存器中。

5.子程序又称 ,它可以由 或 。

6.假设VAR为数据段中已定义的变量,则指令MOV BX,OFFSET VAR中源操作数的寻址方式是 立即数寻址 。

二、选择题

1.EXE文件产生在(D)之后。

A.汇编 B.编辑 C.用软件转换 D.连接

2.变量定义的伪指令助记符有(ABCEF)。

A. DB B. DW C. DD D. DF E. DQ F. DT

3.主程序与子程序之间传递参数可通过(ABC)进行。

A.堆栈 B.存储器单元 C.通用寄存器 D.指令队列 E.其他

4.计算机系统软件中的汇编程序是一种(C)。

A.汇编语言程序 B.编辑程序

C.翻译程序 D.将高级语言转换成汇编程序的程序

5.若主程序段中数据段名为DATA,对数据段的初始化操作应为(B)。

A. MOV AX,DATA B. MOV AX,DATA

MOV ES,AX MOV DS,AX

C. PUSH DS D. MOV DS,DATA

6.8086宏汇编源程序中,若BUFF是字变量名,则执行指令MOV BX,BUFF后,BX中的值为BUFF单元的(A)。

A.字数据值 B.变量类型值 C.段基址 D.段内偏移量

三、综合题

1.下列标号为什么是非法的?

(1) GET.DATA

(2) 1_NUM

(3) TEST-DATA

(4) RET

(5) NEW ITEM

答案: (1)因为‘.’只允许是标号的第一个字符

(2)第一个字符不能为数字

(3)不允许出现‘-’

(4)不能是保留字,如助记符

(5)不能有空格

2.已知数据和符号定义

A1 DB ?

A2 DB 8

K1 EQU 100

判断下列指令的正误,并说明错误指令的原因。

(1)MOV K1,AX

(2)MOV A2,AH

(3)CMP A1,A2

(4)MOV BX,K1

MOV [BX],DX

(5)K1 EQU 200

答:(1)错误。K1是符号,在此处相当于立即数100,故不能做目的操作数。

(2)正确。

(3)错误。A1、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。

(4)正确。

(5)错误。用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。

3.若数据段中有定义

NUM1 EQU 23H

NUM2 DW 0

则指令MOV NUM2,NUM1的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么?

答:指令MOV NUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。指令执行后NUM2+1单元的内容是0。

4.已知某数据段从物理地址03000H处开始,定义如下:

DSEG SEGMENT

ORG 2000H

A1 DD 2 DUP(7,1,?)

A2 DB 10 DUP(0,4,3 DUP(2),5)

CNT EQU 20H

A3 DW 100 DUP(?)

DSEG ENDS

请分别用分析运算符SEG、OFFSET、LENGTH、SIZE、TYPE求出A1、A2、A3的段基址、偏移量、类型及它们的LENGTH、SIZE。

答:(SEG A1)=0300H,(OFFSET A1)=2000H,(TYPE A1)=4,

(LENGTH A1)=2,(SIZE A1)=2×3×4=24;

(SEG A2)=0300H,(OFFSET A2)=2018H,(TYPE A2)=1,

(LENGTH A2)=10,(SIZE A2)=10×6×1=60;

(SEG A3)=0300H,(OFFSET A3)=2054H,(TYPE A3)=2,

(LENGTH A3)=100,(SIZE A3)=100×2=200

5.下面两个数据段中偏移地址为10H和11H的两个存储单元中的数据一样吗? DTSEG SEGMENT

ORG 10H

DATA1 DW 7204H

DTSEG ENDS

DTSEG SEGMENT

ORG 10H

DATA1 DB 72H

DB 04H

DTSEG ENDS

为什么?

答案:不一样。分别是72H, 04H和04H, 72H。存储字时低8位存在低字节,高8位存在高字节。

6.已知符号定义语句如下:

ALPHA EQU 100

BETA EQU 25

GAMMA EQU 2

分别求下列各表达式的值。

(1)ALPHA*4 GT BETA

(2)ALPHA MOD GAMMA+BETA

(3)(BETA / 3)LE 5

(4)ALPHA AND BETA

(5)GAMMA XOR(BETA EQ 25)

答:(1)ALPHA*4 GT BETA = 100*4 GT 25 = 0FFFFH

(2)ALPHA MOD GAMMA+BETA = 100 MOD 2+25 = 25

(3)(BETA / 3)LE 5 =(25 / 3)LE 5 = 0

(4)ALPHA AND BETA = 100 AND 25 = 64H & 19H = 0

(5)GAMMA XOR(BETA EQ 25)= 2?(25 EQ 25) = 0FFFDH

7.已知数据段定义如下:

DSEG SEGMENT

ORG 6

VAR1 DB 2,18

ORG $ +2

VAR2 DW 569AH

CONT EQU $–VAR2

DB ‘AB’

DSEG ENDS

用示意图说明该数据段的分配情况。

答:有关存储单元的内容如下图所示。

8.判断以下说法是否正确,如有错,请说明原因并改正。

(1)伪指令在汇编过程中不会产生二进制代码。

(2)宏和过程的相同之处是都可用于简化源程序书写、精简目标代码。

(3)在计算机中,高级语言通常需要转换为汇编语言后才能执行。

(4)汇编语言程序上机一般包括编辑、汇编、链接和调试几个步骤。

答:(1)正确。 (2)错误。宏不能精简目标代码。

(3)错误。高级语言程序经编译或解释后直接转换为目标代码。

(4)正确。

9.执行下列指令后,AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50

ENTRY DW 3

.

.

MOV BX,OFFSET TABLE

ADD BX,ENTRY

MOV AX,[BX]

答:(AX)=1E00

10.指出下列程序中的错误:

STAKSG SEGMENT

DB 100 DUP(?)

STA_SG ENDS

DTSEG SEGMENT

DATA1 DB ?

DTSEG END

CDSEG SEGMENT

MAIN PROC FAR

START: MOV DS,DATSEG

MOV AL,34H

ADD AL,4FH

MOV DATA,AL

START ENDP

CDSEG ENDS

END

答案:

改正后:

STAKSG SEGMENT

DB 100 DUP(?) DTSEG SEGMENT

DATA DB ?

DTSEG CDSEG SEGMENT

MAIN PROC FAR

MOV AL, 34H

ADD AL, 4FH

MOV DATA1, AL

ENDP

CDSEG ENDS

END

11.请写出上述两条指令执行后,BX寄存器中的内容。

DATA SEGMENT

TABLE_ADDR DW 1234H

DATA ENDS

MOV BX, TABLE_ADDR

LEA BX, TABLE_ADDR

答案:MOV BX,TABLE_ADDR ;执行后(BX)=1234H

LEA BX,TABLE_ADDR ;执行后(BX)=OFFSET TABLE_ADDR

12.读下面程序,在其中的空处添上适当内容。该程序完成了什么功能?程序运行后,变量RS的值是多少?

DATA SEGMENT

BUF DB -13,24,5,-62

DB 77,20,-7,145,0

CNT DB $ -BUF

RS DB 0

DATA ENDS

STACK SEGMENT PARA STACK

DB 256 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE, DS:DATA, SS:STACK

START PROC FAR

PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA BX,BUF

MOV CH,0

MOV CL,

LP: MOV AL,[BX]

TEST AL,80H

JE CONT

INC RS

CONT: INC BX

LOOP LP

RET

START ENDP

CODE ENDS

END START

答:程序空处可填CNT,字节变量RS的最后结果是04H。该程序实现的功能是:统计数据段中以BUF为首址的带符号字节数据表中负数的个数,CNT为表中所有数据的个数,即表的长度。需要注意的是:十进制数据“145”在以二进制带符号字节数据形式存放时相当于“-111”。

13.试编写一个汇编语言程序段,要求对键盘输入的小写字母用大写字母显示出来。 答案:abc: mov ah,1

int 21h

cmp al,’a’

jb stop

cmp al,’z’

ja stop

sub al,20h

mov dl,al

mov ah,2

int 21h

jmp abc

stop: ret

14.编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NO MATCH”。

答案:datarea segment

string1 db ‘asfioa’

string2 db ‘xcviyoaf’

mess1 db ‘MATCH’,’$’

mess2 db ‘NO MATCH’,’$’

datarea ends

prognam segment

main proc far

assume cs:prognam,ds:datarea

start: push ds

sub ax,ax

push ax ;返回DOS

mov ax,datarea

mov ds,ax

mov es,ax ;赋初值

begin: mov cx, string2-string1

mov bx, mess1-string2

cmp bx,cx ;比较两字符串的长度

jnz dispno

lea dx,addr ;若长度相同

lea si,string1

lea di,string2 ;地址指针赋初值

repe cmpsb ;比较

jne dispno

mov ah,9 ;相同,显示MATCH

lea dx,mess1

int 21h

ret

dispno: mov ah, 9 ;不同,显示NO MATCH

lea dx, mess2

int 21h

ret

main endp

prognam ends

end start

15.编写一个完整的源程序,将数据35、-27、-13、6、-47、52、9、-3中的正数放入以BUFFER为首址的数据缓冲区中。

答:一种可能的程序如下实现:

DATA SEGMENT

BLOCK DB 35,-27,-13,6,-47,52,9,-3

COUNT EQU $-BLOCK

BUFFER DB COUNT DUP(?)

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 40 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK

BEGIN: MOV AX,DATA

MOV DS,AX

MOV ES,AX ;需用STOS串操作指令

MOV CX,COUNT

LEA SI,BLOCK ;源数据区指针

LEA DI,BUFFER ;正数存放区指针

CLD ;自动增量

AGAIN: LODSB ;取源数据,并修改SI

TEST AL,80H ;取符号位,不影响AL

JS GO ;符号位=1,是负数,不存

STOSB ;存正数并修改DI

GO: LOOP AGAIN

MOV AH,4CH ;退出循环,返回DOS

INT 21H

CODE ENDS

END BEGIN

16.从内存单元BUF开始的缓冲区中有7个8位无符号数,依次为13H、0D8H、92H、2AH、66H、0E0H、3FH。编程找出它们的中间值并放入RES单元,且将结果以“(RES) = ?”的格式显示在屏幕上。

答:一种可能的程序如下实现:

DATA SEGMENT

BUF DB 13H,0D8H,92H,2AH,66H,0E0H,3FH

RES DB ? ;中间数的存放单元

STR DB ‘(RES)=’

STR1 DB ?,?,‘$’ ;结果字符串

DATA ENDS

SSEG SEGMENT PARA STACK‘SSEG’

DB 100 DUP(?)

SSEG ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:SSEG,DS:DATA,ES:DATA

MAIN PROC FAR ;主程序

PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

MOV ES,AX ;有STOS指令,需用ES

MOV CX,6 ;外循环次数,比6次

AGN: MOV SI,OFFSET BUF

MOV DI,SI

INC DI ;SI、DI指向相邻2数

MOV DX,6 ;内循环次数,比6次

AGN1: MOV AL,[SI]

CMP AL,[DI] ;两个无符号数相比较

JB UNCH ;小于则转,不互换

EXCH: XCHG AL,[ DI ] ;前1单元较大,则互换

MOV [ SI ],AL ;大数放在后面

UNCH: INC SI ;修改指针,指向下一个数

INC DI

DEC DX

JNZ AGN1 ;未处理完,继续内循环

LOOP AGN ;外循环

DONE: MOV AL,[SI-3] ;排序完成,取中间数

MOV RES,AL

AND AL,0F0H ;分离高半字节

MOV CL,4

SHR AL,CL

CALL BATR ;调子程序,将AL值转换为ASCII码

LEA DI,STR1 ;DI指向结果单元

CLD

STOSB ;存放转换结果

MOV AL,RES

AND AL,0FH ;分离并转换低半字节

CALL BATR

STOSB

LEA DX,STR ;显示整个字符串

MOV AH,09H

INT 21H

RET

MAIN ENDP ;主程序MAIN结束

;子程序BATR,实现16进制数到ASCII码的转换

BATR PROC NEAR

CMP AL,10 ;入口参数为AL

JB NUM ;是数字,则转NUM

ADD AL,’A’-10-’0’ ;字母

NUM: ADD AL,’0’

RET

BATR ENDP ;子程序结束

CODE ENDS

END MAIN

简析:本例的基本思路是:先把7个无符号数按大小排序,排序完成之后取位于中间的一个数即为中间值。然后将该16进制数转换为两个对应的ASCII码,再与要求的格式字符一起输出送显即可。

数据排序可以是从大到小、或从小到大排列,本参考程序完成从小到大排序,由一个双重循环结构实现。内循环完成一个数与其它数之间的一一比较,并使每次比较所得的小数置于低地址单元。外循环实现所有数之间的两两相较。共7个数据,故内、外循环中的比较次数均为6次。

编程时需注意:无符号数比较大小应使用JA、JB、JAE、JBE指令,本例完成从小到大的排列,故用JB控制转移到UNCH;若要从大到小排列,则用JA代替JB即可。

对两个循环体进行初始化时,需仔细考虑指针和循环控制寄存器的初值。在数据段的定义中,分别定义STR、STR1两个变量名字,是为了便于在STR1处存放转换结果;显示时使DX直接指向STR,以STR1末尾的“$”为结束符。中间值找出之后,应把高、低半字节相分离,并分别转换为各所对应的ASCII码。

17.设某测试系统中,1号端口为测试口,所得数据是0~9之间的十进制整数;2号端口为显示口,对应于数字0~9的LED七段共阴显示码依次为:3FH、06H、5BH、4FH、66H、

6DH、3DH、07H、7FH、6FH。编写一段查表送显的程序,要求:先从测试口读入一个数据,再查表将相应的显示码从显示口送出,如此反复进行直至读入数据“0FFH”为止。

答:一种可能的程序如下实现:

DATA SEGMENT

TAB DB 3FH,06H,5BH,4FH,66H

DB 6DH,3DH,07H,7FH,6FH ;0~9的七段码

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 50 DUP(?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,SS:STACK,DS:DATA

START: MOV AX,DATA

MOV DS,AX

LE BX,TAB ;BX指向表首址

NEXT: IN AL,1 ;从测试口输入

CMP AL,0FFH

JE STOP ;是0FFH,结束

XLAT TAB ;不是0FFH,查表转换

OUT 2,AL ;向显示口输出七段码

JMP NEXT ;继续测试

STOP: MOV AH,4CH

INT 21H

CODE ENDS

END START

第6章 存储器系统

一、选择题

1.下列(B)不是半导体存储器芯片的性能指标。

A.存储容量 B.存储结构 C.集成度 D.最大存储时间

2.高速缓存由(B)构成。

A. SRAM B. DRAM C. EPROM D.硬磁盘

3.由2K×1bit的芯片组成容量为4K×8bit的存储器需要(D)个存储芯片。

A. 2 B. 8 C. 32 D. 16

4.安排2764芯片内第一个单元的地址是1000H,则该芯片的最末单元的地址是(D)。

A. 1FFFH B. 17FFH C. 27FFH D. 2FFFH

5.一片容量为8KB的存储芯片,若用其组成1MB内存,需( C )片。

A. 120 B. 124 C. 128 D. 132

6.外存储器包括 ( A B E F)。

A.软磁盘 B.磁带 C. SRAM D. BIOS E.硬磁盘 F.光盘

7.在多级存储体系结构中,Cache-主存结构主要用于解决( D )的问题。

A.主存容量不足 B.主存与辅存速度不匹配

C.辅存与CPU速度不匹配 D.主存与CPU速度不匹配

8.动态RAM的特点之一是(BD)。

A.能永久保存存入的信息 B.需要刷新电路

C.不需要刷新电路 D.存取速度高于静态RAM

二、填空题

1.在分层次的存储系统中,存取速度最快、靠CPU最近且打交道最多的是 器,它是由 DRAM类型的芯片构成,而主存储器则是由 SRAM类型的芯片构成。

2.将存储器与系统相连的译码片选方式有 法。

3.若存储空间的首地址为1000H,存储容量为1K×8、2K×8、4K×8H和8K×8的存储器所对应的末地址分别为 13FFH、 17FFH、 1FFFH和 2FFFH。

4.微机系统中存储器通常被视为 、

三、综合题

1.某微机系统中内存的首地址为3000H,末地址为63FFH,求其内存容量。

答:存储区总的单元数为:63FFH-3000H+1=3400H,故总容量13KB。

计算方法:若直接用十六进制表示,则总容量=(3*16+4*16)/1024;

若将地址表示成二进制,则总容量= 2B+2B+2B;

2.下图为SRAM6116芯片与 8088系统总线的连接图。

? (1)写出6116芯片的存储容量;

? (2)分析每片6116所占的内存地址范围。

答: 32131210

(1)6116芯片的存储容量是2k*8bit

(2)第一片6116的内存地址范围是F1000H~F17FFH

第二片6116的内存地址范围是F1800H~F1FFFH

3.利用6264芯片,在8088系统总线上实现20000H-23FFFH的内存区域,试画出连接电路图。

答:

4.如图所示,IBM-PC/XT计算机扩展槽上与存储器连接的总线信号为20根地址线A19~A0,8根数据线D7~D0以及存储器读写信号和。使用这些信号扩展1片27256(32K×8 EPROM)和1片62256(32K×8 RAM)。要求EPROM的起始地址为C8000H,RAM紧随其后,使用74LS138(3-8译码器),采用全地址译码方式。

(1)试在图中画出计算机的存储器连接图(门电路自选)。

第四题图

(2)写出各片存储器的地址范围。

答:地址范围27512:C8000~CFFFFH, 62512:D0000H~D7FFFH

5.设某系统中的数据总线宽度为8bit,地址总线宽度为16bit。若采用4K×4的RAM芯片组成16KB的存储系统。问:

(1)共需多少片4K×4的RAM芯片?这些芯片应分成多少组?每组多少片? 答:共需8片RAM芯片,分成4组,每组2片。

(2)该存储系统至少需要多少根地址总线?其中多少根低位地址线用于片内自选(译码)?

答:至少需要14根地址总线,其中12根低位地址线用于片内自选。

(3)设该存储系统从0000H开始占用一段连续地址空间,试给出每组芯片占用的地址范围。

答:0000~0FFFH 1000~1FFFH 2000~2FFFH 3000~3FFFH

第7章 中断技术

一、判断题

1.内部中断的优先权总是高于外部中断。(×)

2.两片8259A级连后可管理16级中断。(×)

3.8259A所管理的中断源中,优先级低的中断源不可能中断优先级高的中断服务子程序。(×)

4.若8259A的中断屏蔽字为00H,则8259A所管理的8级中断全被屏蔽。(×)

5.只要8259A所管理的中断源没有被屏蔽,则任何中断源的中断请求都能得到CPU的响应和服务。(√)

6.在8259A特殊完全嵌套方式中,同级的中断可实现嵌套。(√)

二、单项选择题

1.8086CPU工作在总线请求方式时,会让出(D)。

A.地址总线 B.数据总线

C.地址和数据总线 D.地址、数据和控制总线

2.CPU响应INTR引脚上来的中断请求的条件之一是(B)。

A. IF =0 B. IF =1 C. TF =0 D. TF =1

3.断点中断的中断类型码是 (C)。

A. 1 B. 2 C. 3 D. 4

4.执行指令IRET后弹出堆栈的寄存器先后顺序为(B)。

A. CS、IP、Flags B. IP、CS、Flags C. Flags、CS、IP D. Flags、IP、CS

5.若8259A工作在优先级自动循环方式,则IRQ4的中断请求被响应并且服务完毕后,优先权最高的中断源是(B)。

A. IRQ3 B. IRQ5 C. IRQ0 D. IRQ4

6.PC/XT机中若对从片8259A写入的ICW2是70H,则该8259A芯片的IRQ6的中断类型码是(B)。

A. 75H B. 76H C. 70H D. 1D8H

7.PC/XT机中若对从片8259A写入的ICW2是70H,则该8259A芯片的IRQ5的中断矢量存储的地址是(D)。

A. 75H B. 280H C. 300H D. 1D4H

8.当向8259A写入的操作命令字OCW2为01100100时,将结束(E)的中断服务。

A. IRQ0 B. IRQ1 C. IRQ2 D. IRQ3

E. IRQ4 F. IRQ5 G. IRQ6 H. IRQ7

9.3片8259A级联起来,可管理(C)级中断。

A. 24 B. 23 C. 22 D. 20 E. 16 F. 15

三、多项选择题

1.在PC机工作过程中,8259A所管理的中断源优先级将发生变化的工作方式有(C D)。

A.全嵌套工作方式 B.特殊全嵌套方式

C.优先级自动循环方式 D.优先级特殊循环方式

2.写入8259A的ICW1为13H,则该8259A芯片的工作方式是(ADE)。

A.上升沿触发中断请求 B.仅高电平请求中断 C.多片主从方式

D.单片方式 E.初始化写入ICW4 F.初始化不写入ICW4

3.写入8259A的ICW4为09H,则该8259A芯片的工作方式是(ABD)。

A.全嵌套 B.采用8086CPU C.多片主从方式

D.缓冲方式 E.自动结束中断 F.优先级自动循环

4.写入PC/XT机8259A芯片的操作命令字OCW1是36H,则被屏蔽的中断源是(BCEF)。

A. IR0 B. IR1 C. IR2 D. IR3

E. IR4 F. IR5 G. IR6 H. IR7

5.8086CPU响应硬中断NMI和INTR时,相同的条件是(BD)。

A.允许中断 B.当前指令执行结束

C. CPU工作在最大模式下 D.不处于DMA操作期间

四、填空题

1.中断矢量就是中断服务子程序的 ,在内存中占有 个存储单元,其

中低地址存储单元存放的是 IP内容,高地址存储单元存放的是 CS内容。

2.中断返回指令是 器和 CS 寄存器中,将堆栈中保存的标志装入 Flags 中。

3.CPU响应8259A中断,在引脚上输出 在第 断类型码。

4.8086CPU共可管理 个中断,中断矢量表放在从 地址单元到 地址单元,总共有 1K个字节。

5.CPU响应中断后将 寄存器入栈保存,然后自动将 标志和 标志复位。若要实现中断嵌套,必须在中断服务子程序中执行一条 开中断 指令。

6.以下代码完成8086系统中断向量设置的功能,其设置的中断类型为 ,中断服务程序入口的物理地址为 579B4H。

DATA SEGMENT

ORG 2CH

VAR1 DW ?

VAR2 DW ?

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,ES:DATA

XOR AX,AX

MOV ES,AX

MOV AX,1234H

MOV ES:VAR1,AX

MOV AX,5678H

MOV ES:VAR2,AX

CODE ENDS

五、综合题

1.试说明一般中断系统的组成和功能。

答:处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。系统中请求中断处理的I/O接口电路要有提供中断请求信号及接收中断响应信号的逻辑。

2.简述中断的响应过程。

答:8086在中断响应时,自动将标志寄存器FR和断点(CS和IP)的值入栈保存,但不将别的其它寄存器的值入栈保存,故如果中断服务程序中用到其它寄存器时,应单独使用指令将其它寄存器的值入栈保存,等中断返回前再将其恢复。这一步骤称为保护现场和恢复现场。保护现场和恢复现场应后进先出。

8086只对可屏蔽中断的响应输出2个总线周期的INTA,并在第2个INTA期间到DB的

低8位读入中断类型码,而对其它类型的中断,由于中断类型码是固定的,不用到DB读取,故没有2个INTA总线周期。

中断响应与调子程序过程完全不同。

3.简述8086系统的中断分类及优先级。

答:内部(除法除以0、单步、断点、溢出、指令中断)和外部(非屏蔽、可屏蔽)两大类。

每个中断源有一个自已特定的类型码,8086靠类型码来识别不同中断源,转去执行不同中断服务程序。

可以使标志寄存器的IF位和TF位为0来关闭可屏蔽中断和单步中断,但除法除以0中断、溢出中断、断点中断、指令中断及非屏蔽中断是无法关闭的。可屏蔽中断有专用的指令STI(开可屏蔽中断)和CLI(关可屏蔽中断),但单步中断的开或关没有专用指令。

因8086的中断类型码为8位的,中断类型码的个数为0—FFH,最多可有256个数,故8086的内部中断和外部中断加起来最多可有256个。除了可屏蔽中断的中断类型码是由8259A提供的外,其它每种中断的中断类型码都是固定的。

8086各中断源的优先级从高到低依次是:

除法除以0

溢出中断、断点中断、指令中断

非屏蔽中断

可屏蔽中断

单步中断

注意,优先级的高低与中断类型码的大小没有关系。

因INT N指令中断的优先级高于可屏蔽中断的优先级,故8086在执行指令中断期间不能响应可屏蔽中断的中断请求。

4.什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?

答:处理机可处理的每种中断的编号为中断类型码。中断向量是指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。

5.写出分配给下列中断类型号在中断向量表中的物理地址。

(1) INT 12H

答:00048H

(2) INT 8

答:00020H

6.8259A中断控制器的功能是什么?

答:8259A中断控制器可以接受8个中断请求输入并将它们寄存。对8个请求输入进行优

先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。8259A支持多种中断结束方式。8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A可以进行级连以便形成多于8级输入的中断控制系统。

7.画出8259A的初始化流程图。

答:

8.试按照如下要求对8259A设定初始化命令字:8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。中断类型码为20H~27H,8259A的端口地址为0B0H和0B1H。并写出8259A的初始化程序段。

答:ICW1=1BH (送B0H端口),ICW2=20H (送B1H端口),ICW4=03H (送B1H端口) MOV AL,1BH

OUT 0B0H,AL

MOV AL,20H

OUT 0B1H,AL

MOV AL,03H

OUT 0B1H,AL

9.8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别?

答:IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。

10.若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE0H:0024H,则对应该中断源的中断向量表内容是什么,如何定位?

答:中断向量表入口地址为:0段的0090H地址。对应4FE24H中断服务程序入口,在向量表中定位情况:(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH。

11.现假设某外设的中断请求信号由IR2端引入,要求编程实现CPU每次响应该中断时屏幕显示字符串“WELCOME!”。已知主机启动时8259A中断类型号的高5位已初始化为00001,故IR2的类型号为0AH(00001010B);8259A的中断结束方式初始化为非自动结束,即要在服务程序中发EOI命令;8259A的端口地址为20H和21H。

解:程序如下:

DATA SEGMENT

MESS DB 'WELCOME!',0AH,0DH,''

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START:MOV AX,SEG INT2

MOV DS,AX

MOV DX,OFFSET INT2

MOV AX,250AH

INT 21H ;置中断矢量表

IN AL,21H ;读中断屏蔽寄存器

AND AL,0FBH ;开放IR2中断

OUT 21H,AL

STI

LL: JMP LL ;等待中断

INT2: MOV AX,DATA ;中断服务程序

MOV DS,AX

MOV DX,OFFSET MESS

MOV AH,09

INT 21H ;显示每次中断的提示信息

MOV AL,20H ;OCW2,一般EOI命令

OUT 20H,AL ;发出EOI结束中断

IN AL,21H

OR AL,04H ;屏蔽IR2中断

OUT 21H,AL

STI

MOV AH,4CH

INT 21H

IRET

CODE ENDS

END START

第8章 输入/输出接口技术

一、选择题

1.8086CPU在执行IN AL,DX指令时,DX寄存器的内容输出到(A)上。

A.地址总线 B.数据总线 C.存储器 D.寄存器

2.在CPU与外设进行数据传送时,下列(C)方式可提高系统的工作效率。

A.无条件传送 B.查询传送 C.中断传送 D.前三项均可

3.外部设备的端口包括 (ABC)。

A.数据端口 B.状态端口 C.控制端口 D.写保护口

4.CPU在数据线上传输的信息可能是 (ABC )。

A.数据 B.状态 C.命令 D.模拟量

5.PC/XT机对I/O端口的寻址方式有(AF )。

A.端口直接寻址 B.寄存器寻址 C.基址寻址

D.变址寻址 E.寄存器相对寻址 F. DX间接寻址

6.PC机在和I/O端口输入输出数据时,I/O数据须经(AE)传送。

A. AL B. BL C. CL D. DL E. AX F. BX G. CX H. DX

7.I/O接口电路中,8255控制口可能使用的端口地址只能是(D)。

A. 00H B. 01H C. 04H D. 07H

8.程序查询I/O的流程总是按(B)的次序完成一个字符的传输。

A.写数据端口,读/写控制端口 B.读状态端口,读/写数据端口

C.写控制端口,读/写状态端口 D.随I/O接口的具体要求而定。

9.由(D)引脚的连接方式可以确定8255的端口地址。

A.、 B.、A0 C. A0、A1 D. A0、A1、

10.若8255A接口芯片的A口工作在方式2时,B口可以工作在(D)。

A.方式0 B.位控方式 C.方式2 D.方式0或方式1

11.在CPU与外设之间设计接口电路的目的主要有(ABCD)。

A.解决驱动能力问题 B.控制数据传输速度

C.完成数据形式转换 D.负责CPU与外设的联络

二、填空题

1.对I/O端口的编址一般有 方式。PC机采用的是

2.在PC系列微机中,I/O指令采用直接寻址方式的I/O端口有 个。采用DX间接寻址方式可寻址的I/O端口有 64K个。

3.数据的输入/输出指的是CPU与 进行数据交换。

4.数据输入/输出的四种方式是 和 传送方式 。

5.CPU在执行OUT DX,AL指令时, 存器的内容送到数据总线上。

6.当CPU执行IN AL,DX指令时,

为 高电平。 引脚为 电平,为 电平,

三、判断对错并说明原因

1.一个外设总是只能对应一个端口地址。

错误原因:一个外设不一定只对应一个端口地址,可能有数据端口、控制端口和状态端口。

2.每个I/O接口中都应具备数据端口、控制端口和状态端口。

错误原因:无条件传送方式下的接口就无需状态端口。

3.通过对8255进行初始化编程可使其三个端口都工作在双向方式下。

错误原因:只有A口能工作在双向方式下。

四、综合题

1.简述接口编址的方法及其特点。

答:给接口编地址,主要有两种方法:独立编址和统一编址。

统一编址是指将端口和存储单元一起进行分配地址,即端口地址占用存储空间的一部分,使得存储空间减少了,但对端口的访问正如对存储单元的访问一样灵活,不需设置专门的访问端口的指令(即I/O指令)。

单独编址是指单独对端口进行地址分配,端口地址不占用存储空间,但对端口的访问需专门的指令(即I/O指令)。

2.微机通过接口与外设交换数据的指令有哪些?并写出所有的格式。

答:有输入和输出两条指令,其格式各有四种:

IN AL,n OUT n,AL

IN AX, n OUT n, AX

IN OUT DX,

AL,DX AL

IN OUT

AX,DX DX,AX

3.设8253计数器的时钟输入频率为1.91MHz,为产生25KHz的方波输出信号,应向计数器装入的计数初值为多少?

答:

应向计数器装入的初值是76。

4.设8253三个计数器的端口地址为201H、202H、203H,控制寄存器端口地址200H。输入时钟为2MHz,让1号通道周期性的发出脉冲,其脉冲周期为1ms,试编写初化程序段。

答:

要输出脉冲周期为1ms,输出脉冲的频率是

初值是 ,当输入时钟频率为2MHz时,计数器

使用计数器1,先读低8位,后读高8位,设为方式3,二进制计数,控制字是76H。设控制口的地址是200H,计数器1的地址是202H。程序段如下:

MOV DX,200H

MOV AL,76H

OUT DX,AL

MOV DX,202H

MOV AX,2000

OUT DX,AL

MOV AL,AH

OUT DX,AL

3.如图所示,将8255的C端口接8个发光二极管,使这8个发光二极管依次亮灭,其中

74LS138译码器与地址总线已经连接正确。

(1)C口端口地址为多少?控制口端口地址为多少?

(2)按位置位/复位字0FH含义是什么?

(3)试编写实现8个发光二极管循环亮灭的程序。(已知有一个延时1秒的子程序,其入口地址为DELAY1S)。

答:(1)C口端口地址为3EAH,控制口端口地址为3EBH。

(2)按位置位/复位字0FH含义是将PC7置1。

(3) MOV DX,3EBH

MOV AL,80H

OUT DX,AL

MOV DX,3EAH

MOV AL,01H

L1: OUT DX,AL

LCALL DELAY1S

ROL AL,1

JMP L1

HLT

5.用8253实现每隔1s产生一个负脉冲,已知8253的时钟频率为2MHz,(1)写出8253的端口地址;(2)编写8253的初始化程序。

? 答:(1)8253的端口地址为DF80H,DF81H,DF82H,DF83H

(2)1/2MHz=0.5us ,1s/0.5us=2000000>65535,应采用两个计数器级联,可定义0#计数器工作在方式3(方波发生器),计数初值为20000,1#计数器工作在方式2(频率发生器),计数初值为100。

MOV DX,0DF83H

MOV AL,00110110B

OUT DX,AL

MOV AL,01010100B

OUT DX,AL

MOV DX,0DF80H

MOV AX,20000

OUT DX,AL

MOV AH,AL

OUT DX,AL

MOV DX,0DF81H

MOV AL,100

OUT DX,AL

6.IBM-PC/XT计算机系统接口芯片连接如图所示,AEN低电平选中端口。

(1)试说明各芯片使用的端口地址。

答:8259:20H,21H

8253:40H,41H,42H,43H

(2)初始化各芯片。

1)单片8259工作在完全嵌套方式,中断申请输入IR0~IR7为边沿触发,IR0的中断号为08H,试写出8259初始化程序段。

答:

INT00 EQU 20H

INT01 EQU 21H

MOV AL,13H

OUT INT00,AL

MOV AL,08H

OUT INT01,AL

MOV AL,09H

OUT INT01,AL

2)8253的定时器0和定时器2工作在方式2,定时器0的定时时间为25mS,定时器2的输出频率为896HZ,试写出8253初始化程序段。

答:CTC0 EQU 40H

CTC1 EQU 41H

CTC2 EQU 42H

CTCC EQU 43H

MOV AL,36H ;通道0

OUT CTCC,AL

MOV AX,7485H

OUT CTC0,AL

OUT CTC0,AL

MOV AL,0B6H ;通道2

OUT CTCC,AL

MOV AX,533H

OUT CTC2,AL

MOV AL,AH

OUT CTC2,AL

第9章 串行通信技术及其接口芯片

一、填空题

1.如果串行传输速率是2400波特,则数据位的时钟周期是

2.设串行异步传送的数据格式是7个数据位、1个停止位、1个校验位,波特率为2400,则每秒钟传送的最大字符数为 240 个。

3.为使传送过程更可靠,在串行异步通信接口中设立了三种出错标志,分别是溢出错 、 格式错 和奇偶错。

4.串行通信根据其连接方式的不同可分为单工、 单双工和 全双工等三种。

5.设8251A工作于异步方式,收发时钟频率为38.4KHz,波特率为2400。数据格式为7位数据位,1位停止位,偶校验,则8251A的方式字为 7AH。 -4

二、单项选择题

1.串行同步传送时,每一帧数据都是由( D )开头的。

A.低电平 B.高电平 C.起始位 D.同步字符

2.RS232是一种常用的串行总路线标准,它规定逻辑“0”对应的电平是(C)。

A.0~+1.8V B. +2.8~+5V C. +3~+15V D. -15~-3V

3.现行PC机中打印机与主机的接口标准大多采用( C )。

A.IDE B.Centoronics C.RS-232C D.SCSI

4.USB——通用串行总线实际上是一个万能插口,目前在PC机上都有USB连接器插座,USB连接器为( C )芯连接器。

A.2 B.3 C.4 D.5

5.8251A的方式控制字(即模式字)的作用是( A )。

A.决定8251的数据格式 B.决定8251的数据格式和传送方向

C.决定8251何时收发 D.以上都不对

6.在数据传输率相同的情况下,同步字符串送的速度高于异步字符传输,其原因是( D )。

A.字符间无间隔 B.双方通信同步

C.发生错误的概率少 D.附加位信息总量少

7.异步串行通信中,收发双方必须保持(C )。

A.收发时钟相同 B.停止位相同

C.数据格式和波特率相同 D.以上都正确

8.可编程通信接口芯片8251A( D )。

A.可用作并行接口 B.仅可用作异步串行接口

C.仅可用作同步串行接口 D.可用作同步、异步串行接口

三、综合题

1.什么是并行接口和串行接口?它们各有什么作用?

答:并行接口是指接口与外设之间按字长传送数据的接口,即4位、8位或16位二进制位同时传送;而串行接口是指接口与外设之间依时间先后逐位传送数据的接口,即一个时刻只传送一个二进制位。

并行接口传送速度较快,但在远距离传送数据时成本高,损耗大,且平行数据线之间干扰大,所以并行接口一般适用于近距离的高速传送,而串行接口则适用于远距离传送。

2.一个异步串行发送器,发送具有8位数据位的字符,在系统中使用一位作偶校验,2个停止位。若每秒钟发送100个字符,它的波特率和位周期是多少?

答:每个字符需要的发送位数是12位(数据位8位,校验位1位,停止位2位,起始位1位)。每秒发送100个字符共1200位。因此波特率为1200波特,位周期≈833?s。

3.全双工和半双工通信的区别是什么?在二线制电路上能否进行全双工通信?为什么?

答:全双工和半双工通信,双方都既是发送器又是接收器。两者的区别在于全双工可以同时发送和接收。半双工不能同时双向传输,只能分时进行。在二线制电路上是不能进行全双工通信的,只能单端发送或接收。因为一根信号线,一根地线,同一时刻只能单向传输。

4.同步传输方式和异步传输方式的特点各是什么?

答:同步传输方式中发送方和接收方的时钟是统一的、字符与字符间的传输是同步无间隔的。异步传输方式并不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。

5.在异步传输时,如果发送方的波特率是600,接收方的波特率是1200,能否进行正常通信?为什么?

答:不能进行正常通信,因为发送方和接收方的波特率不同,而接收端的采样频率是按传输波特率来设置。

6.试对一个8251A进行初始化编程,要求工作在内同步方式,2个同步字符,7位数据位,奇校验,1个停止位。

答:方式字是:00011000B=18H

程序段如下:

XOR AX,AX

MOV DX,PORT

OUT DX,AL

OUT DX,AL

OUT DX,AL ;向8251的控制口送3个00H

MOV AL,40H

OUT DX,AL ;向8251的控制口送40H,复位

MOV AL,18H

OUT DX,AL ;向8251送方式字

MOV AL,SYNC ;SYNC为同步字符

OUT DX,AL

OUT DX,AL ;输出2个同步字符

MOV AL,10111111B

OUT DX,AL ;向8251送控制字

模拟试题(一)

一、单选题

1.在8086宏汇编过程中不会产生指令码,只用来指示汇编程序如何汇编的指令是 。

A.汇编指令 B.伪指令 C.机器指令 D.宏指令

2.在CMP AX,DX指令执行后,当标志位SF、OF、ZF满足下列逻辑关系(SF?OF)+ZF=0时,表明 。

A. (AX) > (DX) B. (AX)≥(DX) C. (AX) < (DX) D. (AX)≤(DX)

3.8086微机系统的RAM存储单元中,从0000H:002CH开始依次存放23H,0FFH,00H,和0F0H四个字节,该向量对应的中断号是 。

A. 0AH B. 0BH C. 0CH D. 0DH

4.8255的A口工作在方式1输入时,其中断允许控制位INTE的开/关是通过对 的按位置位/复位操作完成的。

A. PC B. PC C. PC D. PC

5.在8086中断优先级顺序中,最低优先级的中断源是 。

A.单步陷阱中断 B. INTR C. 被零除 D.断点

6.在 PC/XT中,设(AX)=9305H,(BX)=6279H,若ADDBX,AX指令后接着INTO指令则会 。

A.进入 INTO中断服务子程序 B.执行 INTO后面的指令

C.死机 D.显示器显示 OVERFLOW

7.有一微机系统,采用CPU的低10位地址线A0~A9作为输入输出口的地址线,系统中接口芯片内部有16个端口地址,该接口芯片的片选信号由地址译码器产生,则地址译码器的输入地址线一般应为( )。

A. A5~A9 B. A4~A9 C. A2~A9 D. A0~A9

8.CPU可以对8253计数器进行读操作,其读到的是( )。

A.工作方式字 B.计数初值

C.计数执行部件CE(减一计数单元)的当前值 D. 0

9.在一个项目或产品研制的过程中,通常采用 ____类型的存储芯片来存放待调试的程序。 0246

A. RAM B. ROM C. PROM D. EPROM

10.8259A工作在8086/8088模式时,初始化命令字ICW2用来设置 。

A.中断向量地址的高8位 B.中断类型号地址的高5位

C.中断向量的高5位 D.中断类型号的高5位 2

二、判断题

( )1.控制器的基本功能是:由程序计数器PC控制程序的有序运行,并完成各种算术逻辑运算。

( )2.8086的一个汇编源程序可以只有一个段。

( )3.奇校验的含义是:待传送的数据加上校验位中的“0”的个数为奇数表示正确。 ( )4.字长一定的情况下,原码、反码和补码所能表示的二进制真值范围是相同的。 ( )5.(6.51) >(3.FC)。

( )6.8086系统中,每个存储单元都只对应一个唯一的物理地址和一个唯一的逻辑地址。

( )7.8086的中断分为可屏蔽中断和不可屏蔽中断两种。

( )8.串行接口中“串行”的含意仅指接口与外设之间的数据交换是串行的,而接口与CPU之间的数据交换仍是并行的。 OH

三、填空题

1.设模为2,则52的补码为 _____H,-14的补码为 ______H,-0的反码为 _____H。 2.设内存中一个数据区的起始地址是1020H:0A1CBH,在存入5个字数据后,该数据区的下一个可以使用的单元的物理地址是 ________________。

3.8086根据所构成系统大小的不同,可以工作在最大方式或最小方式。在最大方式下,系统需使用 ________来形成总线周期。

4.微机系统内,按信息传输的范围不同,可有 ______,_________,_______,________等四级总线。

5.CPU对外设进行数据传送的方式有三种,即 __________,___________,或___________。

6.汇编指令通常包括 ___________和 __________两部分。

7.8086系统中,默认方式下对指令寻址由寄存器 ________和 _______完成,而堆栈段中的偏移量可由寄存器 ________或 _________来指示。

8.程序存储与程序控制原理的含义是 ________________________________。 8

四、程序阅读

1.下面的程序通过子程序调用,将数组ARRAY的COUNT个元素求和,并将结果送SUM单元,分析这段程序后,补充完整程序中的空格部分。

SUM DW ?

ARRAY DW 200 DUP(?)

COUNT DW 200

MOV BX, OFFSET SUM

PUSH BX

MOV BX, OFFSET ARRAY

PUSH BX

MOV BX, OFFSET COUNT

PUSH BX

CALL SUMPRO

LABEL1:

SUMPRO PROC NEAR

PUSH AX

PUSH BX

PUSH SI

PUSH DI

PUSH BP

MOV BP, SP

MOV SI, [BP+ ;得到ARRAY的地址

MOV DI, [BP+ ];得到COUNT的地址

MOV CX, [DI]

MOV DI, [BP+ ];得到SUM的地址

XOR AX, AX

NEXT:ADD AX, [SI]

INC SI

INC SI

LOOP NEXT

MOV [ ;送求和结果

POP

POP DI

POP SI

POP BX

POP AX

RET 6

SUMPRO ENDP

2.设有100个字节数据(补码),存放在数据段中EA=2000H的存储区内,以下程序应能从该数据区中找出最大的1个数并存入同一数据段EA=2100H的单元中,请完成该程序(在空白处填入适当的语句)。

MAX: MOV BX, MOV AL,[BX]

MOV CX, LOOP1: INC BX

CMP AL,[BX]  LOOP2

MOV AL,[BX]

LOOP2: DEC CX

JNZ

MOV AL

五、存储器编址

某系统有一片EPROM2716,它与CPU地址总线的连接如图,写出此EPROM的地址空间范围。

六、综合应用

有如题六图键盘电路,试编写8255初始化程序和键值读取程序,并将键值序号在LED七段数码管显示出来。

七、设计题

设外部有一脉冲信号源PLUS,要求用8253—5的计数器0对该信号源连续计数,当计数器计为0时向CPU发出中断请求。

1、画出8253-5的CLK0、GATE0和OUT0的信号连接图。

2、若该芯片的端口地址为40H~43H,计数初值为1234H,写出该计数器工作在方式2按二进制计数的初始化程序。

3、若计数初值为12345H,在上述基础上增加计数器1如何连接以实现计数。

参考答案

一、单选题

BABCA BBCDD

二、判断题 ×√××√ ××√

三、填空题

1、34H,0F2H,0FFH 2、1020H:0A1D5H或1A3D5H

3、总线控制器8288 4、片内总线,片(间)总线,系统内总线,系统外总线

5、程序方式,中断方式,DMA方式 6、操作码,操作数 7、CS,IP,SP,BP

8、用户应预先将程序存入存储器,计算机开始工作后,其控制器将自动、依次地从存储器中取出程序指令并加以执行,而不需人工干涉。

四、程序阅读

? 14 12 16 DI BP。 2.2000H,99,JGE,LOOP1,[2100H]

五、存储器编址 A000H~A3FFH

六、综合应用

一种可能的程序实现如下:

DATA SEGMENT ;数据段中存放数字0 ~ 9的LED显示代码

LED DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV DX,203H ;送8255工作方式字:A口方式0输出,

MOV AL,10001000B;C口上半部输入,下半部输出

OUT DX,AL

MOV CX,3 ;准备键扫

MOV AL,0FEH ;送第一行扫描码:PC0=0

MOV BH,-1 ;BH=-1表示第一行无键按下

S_NEXT: MOV DX,202H ;从8255C口下半部送键扫描码

OUT DX,AL

MOV BL,AL

IN AL,DX ;从8255C口上半部读按键状态

AND AL,70H

CMP AL,70H ;(AL)=70H表示无键按下

JNZ DISP ;有键按下,转到显示处理

MOV AL,BL

RCL AL,1

ADD BH,3 ;准备检查第二行(PC1=0)键状态

LOOP S_NEXT

JMP EXIT

DISP: MOV CL,4 ;根据AL值计算键值

SHR AL,CL

NN: INC BH

RCR AL,1

JC NN

MOV AH,0 ;查表取键值显示码

MOV AL,BH

MOV SI,AX

MOV AL,LED[SI]

MOV DX,200H ;从8255A口送显示码,驱动LED显示

OUT DX,AL

EXIT: MOV AX,4C00H ;退出

INT 21H

CODE ENDS

END START

七、1、

2、 MOV AL,34H

OUT 43H,AL

MOV AL,34H

OUT 40H,AL

MOV AL,12H

OUT 40H,AL

3、PLUS作CLK的输入,OUT的输出作CLK的输入信号。OUT的输出作CPU的请求信号。用两个计数0011

器串联计数实现20位二进制的计数。

模拟试题(二)

一、填空

1、设字长为八位,有x= -1,y=124,则有:[x+y]=_________,[x-y] =__________;

2、数制转换:247.86= ;

3、在8086CPU中,由于BIU和EU分开,所以_____和_____可以重叠操作,提高了CPU的利用率;

4、8086的中断向量表位于内存的 它可以容纳 每一个向量占 个字节;

5、8086系统中,地址FFFF0H是___________________地址; 补补

6、8086CPU的引脚的作用是____________________;

7、8251芯片中设立了_____、_____和______三种出错标志;

8、8086CPU中典型总线周期由____个时钟周期组成,其中T期间,CPU输出______信息;如有必要时,可以在__________两个时钟周期之间插入1个或多个T等待周期。

9、8259A共有___个可编程的寄存器,它们分别用于接受CPU送来的______命令字和________命令字。 1W

二、简答题

1、什么是信号的调制与解调?为什么要进行调制和解调?试举出一种调制的方式。

2、已有(AX)=E896H,(BX)=3976H,若执行ADD BX,AX指令,则BX、AX、标志位CF、OF、ZF各为何值?

3、自行设计一个可独立工作的8086单板机,板上共有64KB存储器,其中32KB为EPROM,物理地址分配在0~07FFFH,另外32KB为静态RAM,物理地址分配在F8000~FFFFFH。问此方案是否可行?并说明原因。

4、已有MOV AL,INF[BP+SI]与MOV AL,ES:INF[BP+SI]两条指令,试问:其源操作数采用何种寻址方式?是字或是字节操作?两条指令有何区别?

三、读图

下图中,AB~AB为8086CPU低八位地址总线 70

试问:1、8259A占用____个端口地址,分别为______,其中ICW的设置地址为; 2、8255A占用个端口地址,分别为,其中控制寄存器的地址为。 1

四、判断题(下列各题,请在正确的题的括号内打“√”,错误的请打“×”。)

( )1、8253在不同的工作方式中,计数到0时,都会从OUT输出一个相同的信号。 ( )2、CPU寻址外设时,存储器对应的I/O方式是把外设端口作为存储单元来看待。 ( )3、用软件确定中断优先权时,只要改变查询的顺序,即可以改变中断的优先权。 ( )4、在8259A级连系统中,作为主片的8259A的某些IR引脚连接从片,同时也可以在另一些IR引脚上直接连接外设的中断请求信号端。

五、阅读程序与接口芯片初始化

1.源程序如下:

MOV CL,4

MOV AX,[2000H]

SHL AL,CL

SHR AX,CL

MOV [2000H],AX

试问:j若程序执行前,数据段内(2000H)=09H,(2001H)=03H,则执行后有

(2000H)=_____ ,(2001H)=______。

k本程序段的功能_________________________。

2.源程序如下:

MOV AL,0B7H

AND AL,0DDH

XOR AL,81H

OR AL,33H

JP LAB1

JMP LAB2

试问:j执行程序后AL=_______; k程序将转到哪一个地址执行:__________。

3.源程序如下:

MOV CX,9

MOV AL,01H

MOV SI,1000H

NEXT: MOV [SI],AL

INC SI

SHL AL,1

LOOP NEXT

试问:j执行本程序后有:AL=_____;SI=______;CX=______;

k本程序的功能是______________________________。

4.某系统中8253占用地址为100H~103H。初始化程序如下:

MOV DX, 103H

MOV AL, 16H

OUT DX,AL

SUB DX, 3

OUT DX, AL

试问:j此段程序是给8253的哪一个计数器初始化?安排工作在哪种工作方式? k若该计数器的输入脉冲的频率为1MHZ,则其输出脉冲的频率为:___________。 5.已知某8255A在系统中占用88~8BH号端口地址,现欲安排其PA,PB,PC口全部为输出,PA,PB口均工作于方式0模式,并将PC置位,使PC复位,试编写出相应的初始化程序。 63

六、编程

已知某输入设备的数据端口地址为40H,状态端口地址为41H,其中D位为“1”时,表示“READY”状态。试编程实现:

j采用查询方式从该设备输入20个ASCII码表示的十进制数,并求出这20个十进制数的累加和;

k将此累加和转换成BCD码,并存放到NBCDH(百位数)和NBCDL(存十位和个位数)单元中。

注:只要求写出程序的可执行部分,可以不写任何伪指令。

参考答案

一、

1、01111011 10000011 2、F7.DCH 001001000111.10000110 BCD

3、取指令 执行指令 4、00000H~003FFH区 256 4

5、CPU复位以后执行第一条指令的 6、决定CPU工作在什么模式(最小/最大)

7、奇/偶错 帧格式错 溢出错 8、4个 地址 T和T9、7个 初始化 操作 34

二、

1、调制是将数字信号?模拟信号。而解调则是相反。

串行长距离通信时,需要利用模拟信道来传输数字信号,由于信道的频带窄,一般为300~3400HZ,而数字信号的频带相当宽,故传输时必须进行调制,以免发生畸变而导致传输出错。

例如FSK制(调频制或称数字调频)可将数字“1”和“0”分别调制成2400HZ和1200HZ的正弦波信号。

2、BX=220CH AX=E896H CF=1 OF=0 ZF=0

3、答:方案不可行,因8086的低端内存为RAM区,高端应为ROM区。

4、源操作采用相对基址变址寻址方式 是字节操作

MOV AL,INF[BP+SI]—访问的是堆栈段

MOV AL,ES:INF[BP+SI]—访问的是附加段,实现了段超越

三、

j 8259A占2个 为20H,22H或24H,26H 20H或24H

k 8255A占4个 为80H,82H,84H,86H 86H

四、

×√√√

五、

1、 (2000H)=39H (2001H)=00H 将(2000H),(2001H)两相邻单元中存放的未组合型BCD码压缩成组合型

BCD码,并存入(2000H)单元,0?(2001H)

2、37H LAB2 3、0 1009H 0 对数据段内1000H~1008H单元置数,依次送入1,2,4,8,16,32,

64,128,0共九个

4、计数器0 工作于方式3

45.454KHz

5、 MOV AL, 80H

OUT 8BH,AL

MOV AL,ODH

OUT 8BH,AL

MOV AL,06H

OUT 8BH,AL

六、 MOV CX,20

MOV BL,0

INLOOP:IN AL,41H

TEST AL,01H

JZ INLOOP

IN AL,40H

AND AL,0FH ;ASCII十进制 (BCD)

ADD BL,AL

LOOP INLOOP ;共输入20个

MOV AL,BL ;累加和?AL

MOV AH,0

MOV BL,100

DIV BL ;AX?BL?AL,余数?AH

MOV NBCDH,AL ; 存百位数

MOV AL,AH

MOV AH,0

MOV BL,10

DIV BL ;十位数?AL,个位数?AH

MOV CL,4

ROL AL,CL ;AL循环左移四位

OR AL,AH ;形成组合型BCD码

MOV NBCDL,AL ; 存十位,个位数

HLT

模拟试题(三)

一、填空题

1、将十进制数279.85转换成十六进制数、八进制数、二进制数及BCD码数分别为:________H,________Q,_____B, 。

2、字长为8位的二进制数10010100B,若它表示无符号数,或原码数,或补码数,则该数的真值应分别为______D,______D或______D。

3、已知(BX)=7830H,CF=1,执行指令:ADC BX,87CFH之后,(BX)=__________,标志位的状态分别为CF=_____,ZF=_____,OF=_____,SF=______。

4、8086中,BIU部件完成 功能,EU部件完成

5、8086中引脚信号有效的含义表示____________________________。

6、8086正常的存储器读/写总线周期由________个T状态组成,ALE信号在__________状态内有效,其作用是______________。

7、设8086系统中采用单片8259A,其8259A的ICW=32H,则对应IR的中断类型号为____________H,它的中断入口地址在中断向量表中的地址为____________________H。 25

二、简答及判断题

1、某指令对应当前段寄存器(CS)=F000H,指令指针寄存器(IP)=FF00H,此时,该指令的物理地址为多少?指向这一物理地址的CS值和IP值是唯一的吗?试举例说明。

2、8086CPU的Flags寄存器中,状态标志和控制标志有何不同?程序中是怎样利用这两类标志的?

3、设采用8251A进行串行异步传输,每帧信息对应1个起始位,7个数据位,1个奇/偶

校验位,1个停止位,波特率为4800,则每分钟能传输的最大字符数为多少个?

4、判断下列指令的对错(正确的在括号内打 “√”,错的打 “×”)

(1) LEA SI, 4[SI] ( ) (2) MOV AL, [CX] ( )

(3) XCHG [SI], [BX] ( ) (4) PUSH WORD PTR[BX] ( )

(5) POP CS ( )

三、读图和作图题

1、8086系统中接口连接关系如下图所示。要求回答以下问题:

(1)试分别确定8255,8253,8259及8251的端口地址;

8255的端口地址为:___________________________________;

8253的端口地址为:___________________________________;

8259的端口地址为:___________________________________;

8251的端口地址为:___________________________________;

对PA口操作的I/O指令为_______________________________;

对PB口操作的I/O指令为______________________________。

(2)设8255的PA口为输出,PB口为输入,试写出对PA口和PB口执行输入/输出操作的指令。

2、作图题。

系统采用4个接口芯片:8253,8251,8259及8255。要求8253的通道0用作实时时钟,每当定时时间到之后向8259的IR送入中断申请信号。8253通道1用作方波发生器作为8251的收发时钟脉冲。8253通道0,通道1的门控信号由8255PC口的PC和PC控制。

(1)画出4个芯片之间控制线的连接图;

(2)8253的两个通道应分别工作在什么方式? 232

四、程序阅读题

1、源程序如下:

MOV AH, 0

MOV AL, 9

MOV BL, 8

ADD AL, BL

AAA

AAD

DIV AL

结果AL_________,AH=___________,BL=_____________。

2、源程序如下:

MOV AX,SEG TABLE;TABLE为表头

MOV ES,AX

MOV DI,OFFSET TABLE

MOV AL,‘0’

MOV CX,100

CLD

REPNE SCASB

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

2)该段程序执行完毕后,ZF和CX有几种可能的数值?各代表什么含义?

3、源程序如下:

CMP AX,BX

JNC L1

JZ L2

JNS L3

JNO L4

JMP L5

设(AX)=74C3H,(BX)=95C3H,则程序最后将转到哪个标号处执行?试说明理由。

4、源程序如下:

MOV DX,143H

MOV AL,77H

OUT DX,AL

MOV AX,0

DEC DX

DEC DX

OUT DX,AL

MOV AL,AH

OUT DX,AL

设8253的端口地址为140H~143H,问:

(1)程序是对8253的哪个通道进行初始化?

(2)该通道的计数常数为多少?能计多少脉冲?

(3)若该通道时钟脉冲CLK的周期为1?s,则输出脉冲OUT的周期为多少?s?

五、编程题

1、8255的编程。设8255的端口地址为200H~203H。

(1)要求PA口方式1,输入;PB口方式0输出;PC~PC为输入;PC~PC为输出。试写出8255的初始化程序。

(2)程序要求当PC=0时置位PC,而当PC=1时复位PC,试编制相应的程序。

2、自BUFFER开始的缓冲区有6个字节型的无符号数:10,0,20,15,38,236,试编制8086汇编语言程序,要求找出它们的最大值、最小值及平均值,分别送到MAX、MIN和AVI三个字节型的内存单元。

要求按完整的汇编语言格式编写源程序。 76107160

参考答案

一、

1、117.D99H 427.6631Q 000100010111.110110011001B 0010 01111001.1000 0101

2、148D -20D -108D 3、(BX)=0000H CF=1 ZF=1 OF=0 SF=0

4、总线接口功能 指令的译码及执行功能 5、高8位数据线D~D有效 158

6、4 T 给外部的地址锁存器提供一个地址锁存信号 7、35H 000D4H~000D7H 1

二、

1、物理地址为0FFF00H。

指向该物理地址的CS,IP值不唯一。

例如:CS:IP=FF00:0F00H也指向该物理地址。

2、状态标志表示算术运算或逻辑运算执行之后,运算结果的状态,这种状态将作为一种条件,影响后面的操作。

控制标志是人为设置的,指令系统中有专门的指令用于控制标志的设置或清除,每个控制标志都对某一特定的功能起控制作用。

3、每帧占1+7+1+1=10位,波特率为4800 bit/s,每分钟能传送最大字符数为4800*60/10=28800个

4、√××√×

三、 1、 (1)

微机原理考前总结

8255的端口地址为80H,82H,84H,86H

8253的端口地址为 90H,92H,94H,96H

8259的端口地址为 A0H,A2H,

8251的端口地址为 B0H,B2H,

OUT 80H,AL 或IN AL,80H

OUT 82H,AL 或IN AL,82H

(2) OUT 80H, AL

IN AL, 82H

2、 (1)控制线连接图如图所示。

(2)通道0工作在方式2——速率发生器;通道1工作在方式3——方波速率发生器

四、

? (AL)=01H (AH)=00H

(BL)=08H

2、(1)从目的串中查找是否包含字符 ‘0’,若找到则停止,否则继续重复搜索。

(2) ZF=1, 说明已找到字符

ZF=0, 说明未找到字符

CX?0,说明中途已找到字符退出CX=0,且ZF=0说明串中无字符 ‘0’

3、 ∵ 74C3H

- 95C3H

DF00H

且有:CF=1, ZF=0, SF=1, OF=1 \程序将转到L标号处执行。 5

4、(1)程序对8253的通道1进行初始化。 (2)计数常数为0,能计10000个脉冲。

(3)周期=10000?1?s=10000?s=10ms

五、

1、(1) MOV DX,203H

MOV AL,10111000B

OUT DX,AL

(2) MOV DX,202H

IN AL,DX

MOV AH,AL

TEST AL,80H

JNZ NEXT1

MOV DX,203H

MOV AL,00000011B ;对PC1置位

OUT DX,AL

NEXT1:MOV AL,AH

TEST AL,40H

JZ NEXT2

MOV AL,00000000B;对PC0复位

MOV DX,203H

OUT DX,AL

NEXT2:???

2、DATA SEGMENT

BUFFER DB 10,0,20,15,38,236

MAX DB 0

MIN DB 0

AVI DB 0

DATA ENDS

STACK SEGMENT PARA STACK‘STACK’

DW 100 DUP (?)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK

START PROC FAR

BEGIN: PUSH DS

MOV AX,0

PUSH AX

MOV AX,DATA

MOV DS,AX

LEA DI,BUFFER

MOV DX,0 ;使DH=0,DL=0

MOV CX,6

MOV AX,0 ;和清0

MOV BH,0 ;最大值

MOV BL,0FFH;最小值

LOP1: CMP BH,[DI]

JA NEXT1 ;若高于转移

MOV BH,[DI] ;大值?BH

JMP NEXT2

NEXT1: CMP BL,[DI] ;

JB NEXT2 ;若低于转移

MOV BL,[DI] ;小值?BL

NEXT2: MOV DL,[DI] ;取一字节数据

ADD AX,DX ;累加和

INC DI

LOOP LOP1

MOV MAX,BH ;送大值

MOV MIN, BL ;送小值

MOV DL,6

DIV DL ;求平均值

MOV AVI,AL ;送平均值

RET

START ENDP

CODE ENDS

END BEGIN

河南理工大学 2006--2007学年第 1学期

一、概念题(本大题50分)

1.填空(20分,每空1分)

(1)电子计算机由 、 、 、 和 组成。

(2)半导体存储器从读写性能上分 和 。

(3)微处理器是将 和 集成在一个芯片上的 。

(4)总线从性能上分为 、 和 。

(5)8086CPU的数据总线有 根,有 位的地址总线,最大寻访端口的能力为 。

(6)8086CPU内部能用来存放地址的寄存器有 个。

(7)总线管理器8259占用 个端口地址。

(8)8255有 个8位的端口。

(9)8253有 种工作方式。

2.选择(10分,每题1分)

(1)已知BX=2000H,DS=1000H,(12000H)=34H,端口(2000H)=45H,问执行完指令MOV AL,(BX)后AL的内容是( )。

A.34H B.45H C.34 D.2000H

(2)下列8086CPU标志寄存器Flags的标志位中,不属于状态标志位的是 ( )

A.OF B.IF C.AF D.PF

(3)在8088系统中,内存从0001CH~0001FH单元内容分别为10H,01H,00H,01H,则对应的中断服务程序的起始地址为:( )

A.不能确定 B.1001H:0001H C.0100H:1001H D. 0100H:0110H

(4)定时与计数器8253的所有工作方式中,能产生周期方波的是方式( )。

A.2 B.3 C.4 D.5

(5)8255PA口工作在方式2,PB口工作在方式0时,其PC口( )。

A、两个4位I/O端口 B、一个8位I/O端口

C、部分作联络线 D、全部作联络线

(6)某数存于内存数据段中,已知该数据段的段基址为2000H,而数据所在单元的偏移地址为0220H,该数据在内存的物理地址为( )。

A. 02220H B. 20220H C. 22200H D. 04200H

(7)Intel2732A地址线及数据线分别为( )。

A.12和8 B.12和1 C.11和8 D.11和1

(8)8086系统中可屏蔽中断的引入端为( )。

A.NMI B.INTR C. D.(9)8086CPU有一个始终指向堆栈顶部的地址指针是( )。

A.IP B.BP C.SP D.BX

(10)准16位微处理器是( )。

A.外部数据总线条数和内部数据总线条数均为16位;

B.外部数据总线条数为8位,内部数据总线条数为16位;

C.外部数据总线条数为8位,内部数据总线条数为8位;

D.外部数据总线条数为16位,内部数据总线条数8位。

3.简答(15分,每题5分)

(1)8086的执行部件有什么功能?

(2)8086CPU复位后,内部各寄存器的状态是什么?

(3)设8255A的方式选择控制字为9BH,其含义是什么?

4.判断对错。若错,则需指明错误原因。(5分,每题1分)

(1)存储器分段是把1MB空间分为若干逻辑段,每段最多可含64KB个连续存储单元。 ( )

(2)OUT DX,90H ( ) (3)ADD [0098H],[2000H] ( )

(4)POP CS ( ) (5)ADD AX,[SI+DI] ( )

二、综合应用题(本大题50分)

1.计算(10分,每题5分)

(1)某串行通信设备以异步方式进行ASCII字符传送,约定用7位数据位、1位偶校验位、1位停止位。该设备每秒钟能传送120个字符,试问其波特率至少为多少?

(2)(11010.1)+(100100.1001)+(16.8)=(

2.阅读程序(10分,每题5分)

(1)执行下列程序后,CL和AX的内容是什么?

STR1 DW ‘AB’

STR2 DB 18 DUP‘?’

COUNT EQU $-STR1

MOV CX,COUNT 2BCD1610

MOV AX,STR1

HLT

(CL)= ,(AX)= H

(2)写出以下程序段的功能。

STR1 DB 300 DUP(?)

STR2 DB 100 DUP(?)

MOV CX, 100

MOV BX, 100

MOV DI, 0

MOV SI,0

NEXT: MOV AL,STR1[BX][SI]

MOV STR2[DI],AL

INC SI

INC DI

LOOP NEXT

3.设计程序(10分)将内存中2000H和3000H两个单元中的两个16位无符号二进制数中的大数挑出,并送给4000H单元。

4.存储器(10分)参看IBM-PC/XT的基本ROM图,写出分配给ROM的地址。

5.如图所示,由8255A的A口输出控制一位共阳极数码管,由C口的PC7~PC4输入接入四位DIP开关的设置,根据开关设置值,在数码管上显示字型。(10分)

(1)确定8255的端口地址;

(2)编写子程序实现之(包括8255初始化程序和实现功能的程序)。

参考答案

(本大题50分)一、概念题

1.(1)电子计算机由 输入设备、 输出设备 存储器 、

运算器和 控制器组成。

(2)半导体存储器从读写性能上分 随机存储器 和 只读存储器 。

(3)微处理器是将 运算器 和 控制器 集成在一个芯片上的 中央处理单元 。

(4)总线从性能上分为 地址总线 、 控制总线 和 数据总线 。

(5)8086CPU的数据总线有 16根,有 20 位的地址总线,最大寻访端口的能力为 64KB 。

(6)8086CPU内部能用来存放地址的寄存器有 11个。

(7)总线管理器8259占用 2 个端口地址。

(8)8255有 3个8位的端口。 (9)8253有 6 种工作方式。

2.答:A,B,D,B,C,B,A,B,C,B

3.(1)答:执行指令;形成有效地址 (2)答:(CS)=FFFFH,其余各寄存器的状态均为0

(3)答:A、B、C口全工作在方式0的输入状态

4.判断对错。若错,则需指明错误原因。(5分,每题1分)

(1)对(2)错,立即数不能直接输出 (3)错,双操作数不允许同时为存储单元

(4)错,CS不能为目标操作数 ( 5)错,两个变址寄存器不能同时用来访问存储器 二、1.(1)答:120*(1+7+1+1)=1200bps (2) 73.9

2.(1)(CL),(AX) (2)将STR1中从100到199的100个数送到STR2中

3. MOV AX,[2000H]

CMP AX,[3000H]

JAE NEXT

MOV AX,[3000H]

NEXT:MOV [4000H],AX

4.①分配给32K×8ROM芯片的地址为:F8000H-FFFFFH(5分)

②分配给8K×8ROM的地址为下述4组地址之一:

E0000H-E1FFFH E2000H-E3FFFH

E4000H-E5FFFH E6000H-E7FFFH(5分)

5.(1)PORTA EQU 60H

PORTB EQU 62H

PORTC EQU 64H

PCTRL EQU 66H(5分)

(2)DIS PROC

MOV AL,88H

OUT PCTRL,AL ;初始化8255

IN AL,PORTC ;读开关状态

MOV CL,4

SHR AL,CL ;转成低4位

LEA BX,SH_TAB

XLAT SH_TAB ;查表

OUT PORTA,AL ;显示输出

RET

SH_TAB DB 0C0H,? ;字型表

DIS ENDP(5分)

近年来某高校硕士研究生入学试题

一、单项选择(每小题2分,共20分)

1.( )是以CPU为核心,加上存储器、I/O接口和系统总线组成的。

A.微处理器 B.微型计算机 C.微型计算机系统 D.小型机系统

2.堆栈指针SP是微处理器中用于指示( )的专用寄存器。

A.栈底地址 B.栈项地址

C.中断服务程序入口地址 D.子程序入口地址

3.在I/O同步控制方式中,程序查询方式相比于中断控制方式,具有( )。

A.硬件电路简单,数据传送可靠 B.硬件电路简单,CPU使用效率高

C.硬件传送可靠,CPU使用效率高 D.硬件电路复杂,CPU使用效率低

4.在X86等PC系列微机中,采用2个8259A级联,其可屏蔽中断可扩展为( )。

A.15级 B.16级 C.32级 D.64级

5.PC系列微机中,确定外部硬中断的服务程序入口地址的是( )。

A.主程序中的调用指令 B.主程序中的条件转移指令

C.中断控制器中的中断服务寄存器 D.中断控制器发出的中断类型号

6.设(SP)=0200H,(SS)=4000H,执行PUSH BX指令后,栈顶的物理地址是( )。

A.401FEH B.40202H C.01FEH D.0202H

7.在I/O接口的各类端口中,必须具有三态功能的端口是( )。

A.数据输入缓冲器和状态寄存器 B.控制寄存器和状态寄存器

C.数据输入缓冲器和控制寄存器 D.数据输出缓冲器和控制寄存器

8.8086CPU用于中断请求输入的引脚信号是( )。

A.INTR和NMI B.INI和NMI C.INTR和INTA D.INTE和INET

9.8086CPU在进行无符号数比较时,应根据( )标志位来判断。

A.CF和OF B.CF和PF C.CF和ZF D.ZF和OF

10.宏指令和子程序的相同之处为( )。

A.宏指令的目标代码与子程序的目标代码都是唯一的

B.都需要先定义后调用

C.执行宏指令的目标代码时与子程序时一样,都需要增加如保护、恢复现场类的额外开销

D.宏指令的目标代码与子程序的目标代码都不是唯一的

二、填空题(每小题2分,共22分)

1.8086CPU复位时,CS的内容为 ,IP的内容为 。

2.计算机内的堆栈是一种特殊的数据存储区,对它采用 的原则。

3.若(AL)=96H,(BL)=12H,则执行ADD AL,BL后,(AL)= 位OF= ,CF= 。

4.若(CS)=4200H,物理转移地址为4A230H,当CS的内容被设定为7900H时,则物理转移地址为 。

5.8086CPU的I/O空间有

6.若(AL)=94H,当看作是无符号数时,它代表 ,若是有符号数(补码)时,它代表 。

7.若有一片SRAM芯片为64K×4位,其片内地址信号有 条,对外数据总线有 若用其组成256K字节的内存,需要 片此种芯片。

8.执行NEG AX之后,OF=1,则AX的内容为

9.8086CPU的ALE信号的作用是

10.8086CPU向内存写一个地址为0623H:36FFH的字时,需用

11.AEN地址允许信号为 电平是I/O译码的必要条件,这表示

三、是非判断题(每小题1分,共10分)

( )1.存储器与I/O接口的地址译码,目的是保证CPU能对所有存储单元和所有I/O端口正确寻址。

( )2.高速缓冲存储器(Cache)是介于CPU和内存之间的缓冲器,一般由PROM组成。

( )3.8086CPU中的运算器主要用于完成各类算术运算。

( )4.异步串行通信的基本特点是:以字符为单位,传输是字符间异步,字符内同步。

( )5.8086CPU提供了2种I/O端口寻址方式,即直接寻址和DX寄存器间接寻址。前者寻址范围为0~255,后者寻址范围为0~64K。

( )6.DMA方式的I/O操作与中断方式相比,用硬件控制代替了那里的软件控制,且无需CPU传数,因此数据传送速度明显提高。

( )7.在字长一定的情况下,原码、反码和补码所能表示的二进制真值范围是相同的。

( )8.串行接口中串行的含义是指接口与外设之间数据是串行的,而接口与CPU之间的数据交换是并行的。

( )9.80486工作在实地址方式时,所能寻址的最大地址空间和程序最多能同时访问的逻辑段数与8086相同。

( )10.所谓I/O操作具体是指对I/O设备的操作。

四、简答题(每小题4分,共24分)

1.什么叫中断,8086CPU包含哪几类中断?

2.存储器的片选控制方式由哪几种,各有什么缺点?

3.计算机中哪些操作场合用到堆栈?简述堆栈的操作方式和堆栈指针的作用。

4.什么叫总线操作周期?

5.在汇编语言程序中,变量和标号有何异同?

6.简述半导体存储器的主要技术指标。

五、阅读程序并回答问题(每小题6分,共30分)

1.已知:(AX)=4567H,(BX)=9ABCH,执行下列程序段后,(AX)= (BX)= 。

CMP AX,BX

JG NEXT

XCHG AX,BX

NEXT: NOT AX

2.已知某字串BUF1的首址为1000H,BUF2的首址为1020H,数据段与附加段重合,欲从BUF1处开始将20个字数据顺序传送到BUF2处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。

LEA SI,BUF1

ADD SI,

LEA DI,BUF2

STD

MOV CX, REP MOVSW

3.欲将数据段中首址为DEST,共50个字节单元的存储区初始化为0,试在下面程序段的空白处填上适当的指令或操作数,以实现上述功能。

LEA DI,DEST

CLD

MOV CX, MOV AL, REP 4.已知(AL)=56H,下列程序执行以后,(AL)= ,该程序段实现的功能是 。

MOV DL,AL

AND DL,0FH

AND AL,0F0H

MOV CL,4

SHR AL,CL

MOV BL,10

MUL BL

ADD AL,DL

5.已知以X为首址的字单元中的数据依次为1234H、5678H,以Y为首址的字单元中的数据依次为8765H、4321H。下列的程序执行后,(DX)= ,(AX)= 。

LEA SI,X

LEA DI,Y

MOV DX,[SI+2]

ADD DX,[DI]

CMP DX,[DI+2]

JL L1

MOV AX,Y

JMP EXIT

L1: MOV AX,1

EXIT:┆

六、编写程序(每小题11分,共22分)

1.编写一个内存自检程序,其要求是将数据55H写入要检测的某内存区的偏移地址从0~7FFFH的每一个单元中。然后,再逐个单元读出与55H比较。若全对,则屏幕显示“Memory OK”,只要任何一个单元出错,则显示“Memory ERROR”。

2.在BUFFER开始的单元中有100个带符号的字节数据,编写一个程序,将其中的正数、负数、0的个数分别统计出来,并分别存放在PLUS、MINUS、ZERO的单元中。

七、综合题(22分)

1.用8255设计打印机接口。假设8255占用的端口地址为300H~303H,8255的A口为数据端口,B口为状态端口,其D5位为状态位,若D5=0,则表示打印机数据缓冲区空,此时CPU可以向它输出新的数据。编写8255初始化和打印数据的程序,从存储器中BUFFER开始的存储区中送1K字节的数据给打印机。

2.图示SRAM芯片,利用该芯片构成8086的从E8000H~EFFFFH的内存,

1)该芯片存储容量是多少?共需要几个存储器芯片才能满足上述要求?

2)试画出片选信号的产生电路。

3)从地址E8000H开始,顺序将00H、01H、02H、?直到FFH重复写满上面构成的内存,编写一个程序段实现该功能。

参考答案

一、单项选择题:

BBDAD ADACA

二、填空题

1.0FFFFH,0000H 2.先进后出 3.0A8H,0,0 4.81230H

5.64K 6.148,-108 7.16,4,8 8.128

9.将地址总线从地址/数据、地址/状态复用信号中分离出来

10.2 11.低电平,CPU

三、是非判断题

√××√√ √×√××

四、简答题

答案要点:

1.暂停当前程序的执行,转向需要立即处理的程序的过程。包括软中断和硬中断(又称内中断和外中断)。

2.全译码、部分译码和线选译码。全译码电路复杂,部分译码的部分存储空间地址重叠,线选译码的重叠度最大。

3.子程序调用时、中断响应时、执行堆栈操作指令时。堆栈操作方式为先进后出。堆栈指针总是指向

栈项。

4.CPU完成一次总线操作所需要的时间。

5.变量用于定义数据,具有5个属性,常在数据段。标号用于说明指令的位置,具有3个属性,常在代码段中。

6.存储容量、访问周期、易失性、功耗。

五、阅读程序并回答问题

1.BA98H 9ABCH 2.19 ADD DI,19 20

3.50 00H STOSB 4.56(38H) 将组合BCD码转换为二进制

5.(DX)=0BBBBH (AX)=1

六、编写程序

1.实现方法之一

DATA SEGMENT

BUF DB 8000H DUP (?)

CNT EQU $-BUF

BUFD EQU 55H

DIS1 DB 0DH, 0AH ,‘Memory OK!$’

DIS2 DB 0DH, 0AH,‘Memory ERROR!$’

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

LEA DI,BUF

MOV CX,CNT

PUSH CX

MOV AL,BUFD

CLD

REP STOSB

POP CX

LEA SI,BUF

L1: LODSB

CMP AL,BUFD

LOOPZ L1

JZ G

LEA DX,DIS2

MOV AH,09H

INT 21H

JMP E

G: LEA DX,DIS1

MOV AH,09H

INT 21H

E: MOV AH,4CH

INT 21H

CODE ENDS

END START

2. DATA SEGMENT

BUFFER DB 34H,0,45,-45,0,45,-34,-66,?;100个 CNT EQU 100

PLUS DB 100 DUP(?)

MINUS DB 100 DUP(?)

ZERO DB 100 DUP(?)

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

START: MOV AX,DATA

MOV DS,AX

MOV ES,AX

MOV CX,CNT

LEA SI,BUFFER

LEA DI,PLUS

LEA BX,MINUS

LEA BP,ZERO

CLD

L: LODSB

TEST AL,80H

JS M

CMP AL,0

JNZ P

XCHG DI,BP

STOSB

XCHG DI,BP

JMP E

M: XCHG DI,BX

STOSB

XCHG DI,BX

JMP E

P: STOSB

E: DEC CX

JNZ L

MOV AH,4CH

INT 21H

CODE ENDS

END START

七、综合题

1.8255控制字为1000X01X;A口为方式0输出,B口为方式0输入。

MOV AL,1000 0010B

MOV DX,303H

OUT DX,AL

MOV CX,1024

LEA SI,BUFFER

CLD

L: MOV DX,301H

W: IN AL,DX

TEST AL,20H

JNZ W

LODSB

MOV DX,300H

OUT DX,AL

DEC CX

JNZ L

2.1)芯片存储容量为16K×8位,需要2片。

2)为偶存储体芯片的,为奇存储体芯片的。

3) DATA SEGMENT AT 0E800H

MOV CX,8000H

CLD

MOV DI,0

MOV AL,CL

REP STOSB

近年某高校研究生入学考试试题

第一部分:微机原理(100分)

一、单项选择题(在每小题的四个备选答案中,选出一个正确的答案,并将其号码填在题干的括号内。每小题2分,共30分)

1、计算机中( )不能直接表示有符号数。

A.原码 B.补码 C.反码 D.BCD码

2、当使用BP寄存器作基址寻址时,若无指定段替换,则内定在( )段内寻址。

A.程序 B.堆栈 C.数据 D.附加

3、在存储器映象编址方式中,I/O端口( )

A.可与存储器同时使用同一地址 B.可与存储器分时使用同一地址

C.与存储器使用两个独立的地址空间 D.与存储器共用统一的地址空间

4、可屏蔽中断的屏蔽通常可由CPU内部的( )来控制。

A.中断请求触发器 B.中断屏蔽触发器 C.中断允许触发器 D.中断锁存器

5、串行传送的波特率是指单元时间内传送( )数据的位数。

A.二进制 B.八进制 C.十进制 D.十六进制

6、若采用8位A/D转换器转换0~5V的电压信号,则分辨率约为( )

A.5mv B.10mv C.20mv D.40mv

7、下列接口中,( )不是当前计算机的标准并行接口。

A、打印机接口 B、PC机IEEE 1284接口

C、GPIB接口 D、RS-232C标准接口

8、如果对系统的实时时钟电路重新编程,在相应的中断被允许的前提下,它将每隔976.562μs提出一次( )

A、告警中断 B、周期中断 C、秒中断 D、NMI中断

9、计算机的发展阶段通常是按计算机所采用的( )来划分的。

A、内存容量 B、电子器件 C、程序设计 D、操作系统

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

A、系统软件和应用软件 B、计算机及其外部设备

C、硬件系统和软件系统 D、系统硬件和系统软件

11、用高级语言编写的程序( )。

A、只能在本种计算机上运行 B、无需经过编译或解释,即可被计算机直接执行

C、具有通用性和可移植性 D、几乎不占用内存空间

12、运算器由很多部件组成,其核心部分是( )。

A、数据总线 B、算术逻辑单元 C、累加器 D、多路开关

13、假定(SS)=2000H,(SP)=0100H,(AX)=2107H,执行指令PUSH AX后,存放数据21H的物理地址是( )。

A、20102H B、20101H C、200FEH D、200FFH

14、下列叙述中,正确的说法是( )。

A、编译程序、解释程序和汇编程序不是系统软件

B、故障诊断程序、排错程序、人事管理系统属于应用软件

C、操作系统、财务管理程序、系统服务程序都不是应用软件

D、操作系统和各种程序设计语言的处理程序都是系统软件

15、主存和CPU之间增加高速缓存的目的是( )。

A、解决CPU和主存之间的速度匹配问题 B、扩大存容量

C、既扩大内存容量,又提高存取速度 D、解决CPU与外存之间速度匹配问题

二、多项选择题(本大题共5小题,每小题3分,共15分)在每小题列出的四个选项中有二至四个选项是符合题目要求的,请将正确选项前的字母填在题干的括号内。多选、少选、错选均无分。)

16、下列( )接口标准,能弥补RS-232C在传输距离和传输效率上的不足。

A、IEEE1284 B、RS-422 C、RS-423 D、RS-449

17、下列寄存器为8位的寄存器有( )

A.IP B.AH C.AL D.BH

18、8086CPU访问存储器,当地址A=0时( )

A、如果访问的是一个字节,该字节在偶存储体中 0

B、如果访问的是一个字节,该字节在奇存储体中

C、如果访问的是一个字,该字的低8位在偶存储体中

D、如果访问的是一个字,该字的高8位在偶存储体中

19、有关存储器映象I/O方式错误描述的是( )

A、又称为I/O独立方式 B、I/O端口地址空间独立于存贮器地址空间

C、增加地址译码的复杂性 D、I/O指令类型较少

20、交换寄存器SI、DI的内容,正确的程序段是( )。

A、PUSH SI B、PUSH SI

PUSH DI PUSH DI

POP SI POP DI

POP DI POP SI

C、MOV AX,SI D、MOV AX,SI

MOV SI,DI MOV BX,DI

MOV DI,AX XCHG BX,AX

三、填空题(本大题共15空,每空1分,共15分)

1、8086CPU中断系统有 为 。

2、I/O端口有 和 两种编址方法。

3、当接口芯片的选择端为 CPU才能与该芯片传送数据。

4、可编程接口电路中用来存放控制电路组态的控制字的寄存器称为

5、根据功能,8086的标志位可分为 标志。

6、数据段中有以下定义:

ARRAY1 EQU 16H

ARRAY2 DW 16H

请指出下面两条指令中源操作数的寻址方式:

MOV AX,ARRAY1;寻址方式:

MOV AX,ARRAY2;寻址方式:

7、8259A工作在8086模式,中断向量控制字ICW2=70H,若在IR3处有一中断请求信

号,这时它的中断类型号为 ,该中断的服务程序的入口地址保存在内存地址为 H到 H的4个单元中。

8、下面程序是将10个8位无符号数按递减次序排序,请将程序填写完整。

DATA SEGMENT

ARRAY DB 05H,78H,0FFH,7BH,0H,8CH,20H,0A0H,0F0H,60H

DATA ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA

MAIN PROC FAR

START: PUSH DS

XOR AX,AX

PUSH AX

MOV AX,DATA

MOV DS,AX

AB1: MOV SI,OFFSET ARRAY

MOV BL,0

MOV CX,10

AGAIN:MOV AL,[SI]

INC SI

CMP AL,[SI]

MOV AH,[SI]

MOV [SI],AL

DEC SI

MOV [SI],AH

INC SI

MOV BX,1

CD1: LOOP AGAIN

DEC BL

AB1

RET

MAIN ENDP

CODE ENDS

END START

四、CPU与外设之间进行数据传送时有哪几种方式?简单说明其意义和用途。(本题10分)

五、在如图所示的电路中,试分析电路图,回答下列问题。(本题共10分)

1、74LS138的作用是什么?(3分)

2、74LS138在什么条件下才工作?(3分)

3、RAM的地址范围是多少?(4分)

六、设计题(本大题共3小题,前两问各7分,后一问6分,共20分)

试用8255A作5×6键盘矩阵的接口电路芯片。

(1)画出8255A与主机的连接电路原理图(译码器可用示意图表示,其它信号需注明)。

(2)画出端口A作输出,端口B作输入,8255A与5×6键盘矩阵的连接电路原理图。

(3)若端口地址为60H~63H,写出8255A初始化程序。

第二部分:接口部分(50分)

1、设外部有一脉冲信号源PLUS,要求用8253—5的计数器0对该信号源连续计数,当计数器计为0时向CPU发出中断请求。(共20分)

(1)画出8253-5的CLK、GATE和OUT的信号连接图。

(2)若该芯片的端口地址为40H~43H,计数初值为1234H,写出该计数器工作在方式2按二进制计数的初始化程序。

(3)若计数初值为12345H,在上述基础上增加计数器1如何连接以实现计数。

2、串行通信接口标准很多,常见的有EIA-RS 232C、RS422和RS485,简要说明各自000

特点和联系。(本题10分)

3、用ADC0809和0832及INTEL 8155设计一个数据采集、模拟控制输出及I/O报警的简单系统(说明:若有必要,其他辅助芯片可以随意选用!)。(20分)

要求:(1)画出连线图(端口地址自己确定);(2)以单通道检测和控制输出为例、画出其初始化和主程序流程框图。

参考答案

微机原理部分

一、DBDCA CDBBC CBDDA 二、BCD BCD AC ABD AC

三、1、256,中断类型码×4(n×4) 2、独立编址和统一编址

3 6, 7、、

四、答:传送方式一般有四种,即无条件方式、查询方式、中断方式和DMA方式。

查询方式是指主机在传送数据之前要检查外部设备是否准备好,若没有准备好,则继续检查起状态,直至外设准备好了。它信息传送的效率非常之低,但硬件开销小。

中断方式传送信息时无须反复测试外设的状态,外设没准备好时可运行与传送数据无关的指令,准备好后,主动向CPU请求中断,CPU响应这一请求,终止其他程序,转入中断服务程序,运行完后自动返回原来运行的程序。适用于实时控制及紧急事件处理。

DMA方式使CPU不参加数据的传送工作,由DAM控制器实现内存与外设,或外设与外设之间的直接快速传送,从而减轻了CPU的负担,这对高速度大批量传送特别有用。

五、 1、 74LS138是地址译码器。(3分)

2、 当A=0,A均为1,MEMR或MEMW为0时,74LS138才工作。(3分) 1918—16

2、(画出电阻部分1分,PA和PB各2分)

3、址范围:72000H~73FFFH(3分)

六、答案:1、

3、

MOV AL,82H(或8BH) (3分)

OUT 63H,AL (2分)

接口技术部分

(2)MOV AL,34H

OUT 43H,AL

MOV AL,34H

OUT 40H,AL

MOV AL,12H

OUT 40H,AL

1.(1)

(3)PLUS作CLK的输入,OUT的输出作CLK的输入信号。OUT的输出作CPU的请求信号。用两个计0011

数器串联计数实现20位二进制的计数。

2、答:RS-232适合于传输速率在(0—20000bit/s)范围内的通信,它最初是为远程通信连接数据终端设备DTE与数据通信设备DCE而制定的。

RS422标准是一种以平衡方式传输的标准,所谓平衡就是双端发送和双端接收,所以传送信号要用两条线,发送端和接收端分别采用平衡发送器和差动接受器。它是在RS232基础上为了实现更大的距离和更高的速率上的直接连接而制订的更高性能的接口标准。

RS485与RS422一样也是一种平衡传输方式的串行接口标准,它和RS422兼容,并且扩展了RS422的功能,两者的主要差别是,RS422只许电路中有一个发送器,而RS485标准允许在电路中有多个发送器,是一种多发送器的标准。RS485的抗干扰能力强,传输速率高,传送距离远。

3、略

近年某高校攻读硕士学位研究生试题

科目名称:微机原理 科目代码:430

适用专业:电路与系统共6页

一、选择题:(1小题6分,其它每小题3分,共21分)

1、计算机使用总线结构的优点是便于实现积木化,同时 ________。

A.减少了信息传输量; B.提高了信息传输速度; C.减少了信息传输线的条数。其缺点是 ______________。

D.地址信息、数据信息和控制信息不能同时出现;E.地址信息和数据信息不能同时出现;F.两种信息源的代码在总线中不能同时传递 。

2、存储周期是指 __________。

A.存储器的读出时间; B.存储器的写入时间;

C.存储器进行连续读和写操作所允许的最短时间间隔;

D.存储器进行连续写操作所允许的最短时间间隔。

3、以下可以使寄存器AX和CF同时清0的指令为 _________。

A.SUB AX,AX B.XCHG AX,AX C.XOR AX,AX D.PUSH AX

4、下列指令中语法有错误的是: __________。

A.IN AX,20H B. LEA SI,[2000H] C. OUT DX,AL D. SHL AX,2

5、在PC/XT中,NMI中断矢量在中断矢量表中的位置 _______。

A.是由程序指定的; B.是由DOS自动分配的;

C.固定在0008H开始的4个字节中; D.固定在中断矢量表的表首。

6、在8086中,执行单步中断服务程序的第一条指令时,TF、IF的状态为_______。

A.TF=0,IF=0; B.TF=0,IF=1; C.TF=1,IF=0; D.TF=1,IF=1;

二、试将左边各部件的功能与右边的说明对应地联系起来,在对应序号下填入所选的A,B,C,? (每空1分,共11分)

(1) CPU A.保存当前栈顶地址的寄存器。

(2)存储器 B.指示下一条要执行的指令的地址。

(3) EU C.总线接口部件,实现执行部件所需的总线操作。

(4) BIU D.分析并控制指令执行的部件。

(5)堆栈 E.存储程序、数据等信息的记忆装置。

(6) IP F.以后进先出方式工作的存储器空间。

(7) SP G.唯一代表存储器空间中每个字节单元的地址。

(8)状态标志 H.保存各逻辑段起始地址的寄存器。

(9)控制标志 I.控制各操作的标志。

(10)段寄存器 J.记录指令操作结果的标志。

(11)物理地址 K.执行部件,由计算机逻辑单元 ALU及寄存器组成。

(1)____; (2)____; (3)____; (4)____; (5)____; (6)____;

(7)____; (8)____; (9)____; (10)____; (11)____;

三、编写汇编程序(1题10分,2题20分,共 30分)

1、编写程序段,将存放在TABLE下的2K字节的数据块搬到NEXT下。

附图1 第四题图

2、在DATA下存放50个无符号8位数,试编写完整的汇编语言程序实现将其中最大的数放在KVFF中。

四、附图1是6264与8088系统总线的连接图,问:(1题3分,2题8分,共11分)

1、该芯片的存储容量有多大?

2、该芯片所占的内存空间范围是什么?

五、综合应用(每空1分,共27分)

设有两片8255A,其中:

8255A-1的地址为A口:10H;B口:12H;C口:14H;控制口:16H;

8255A-2的地址为A口:20H;B口:22H;C口:24H;控制口:

有一片8259A,两个端口地址为90H和92H;

有一片8251A,它连接CRT,已被初始化,数据口:54H;控制口:56H;

现将8255A-2的B口和8255A-1的A口相连,用8255A-2的B口作为8位数据输出口,工作于方式0,C口也工作于方式0;当B口进行数据输出时,用PC1作为选通信号。8255A-1的A口作为8位数据输入口,工作于方式1,中断请求信号和8259A的IR2相连。要求8259A的ICW2为20H,用边沿触发,全嵌套方式并采用中断自动结束方式。

下面的程序由CPU往8255A-2的B口输出数据0~9,再从8255A-1的A口输入,然后往CRT输出。请填写下列程序中和程序后面的空项。

MOV AL,____(1)____ ;8259A初始化

OUT ____(2)____,AL

MOV AL,____(3)_____

OUT ____(4)____,AL

MOV AL,____(5)____

OUT ____(6)____,AL

IN AL,____(7)____ ;读中断屏蔽字

AND AL,____(8)____ ;设置新的屏蔽字

OUT ____(9)____,AL

MOV AL,____(10)____ ;8255A-1初始化

OUT ____(11)____,AL

MOV AL,____(12)____ ;8255A-2初始化

OUT ____(13)___,AL

MOV AH,00H ;送数字0

STI

KK:MOV AL, (14) ;用按方式1使选通无效

OUT _____(15)_,AL

MOV AL,AH ;8255A-2的B口输出数据

OUT ____(16)_____,AL

MOV AL,_____(17)_____

OUT ____(18)____,AL

INC AH

CMP AH, 0AH ;是否超过9

JNZ KK

MOV AH, 0

JMP KK

T:IN AL,__(19)_ ;测试CRT

TEST AL , 01

JZ T

IN AL, ____(20)_____ ;读入数据

AND AL , 0FH

ADD AL, ____(21)_____ ;变成ASCⅡ码

OUT ____(22)____,AL ;往CRT输出

RET中断类型号为 _____(23)_______

中断向量存放单元为0段(24)____, (25)_____, (26)_____, (27)_____。

参考答案

一、(21分)1、C、F; 2、C; 3、AC; 4、D; 5、C; 6、A

二、(11分)(1)D;(2)E;(3)K;(4)C;(5)F;(6)B;(7)A;(8)J;(9)I;(10)H;(11)G

三、(1、10分,2、20分,共30分)

1、 MOV CX, 2048

MOV SI, OFFSET TABLE

MOV DI, OFFSET NEXT

LOOP1: MOV AL, [SI]

MOV [DI], AL

INC SI

INC DI

LOOP LOOP1

2、 DATASEG SEGMENT

DATA DB 0F2H, 23H, 01H, 0EFH,┅;50个数

KVFF DB (?)

CONT EQU 49

DATASEG ENDS

STACK SEGMENT

DW 100 DUP (?)

STACK ENDS

CODESEG SEGMENT

ASSUME CS:CODESEG,DS:DATASEG,SS:STACK

START: MOV AX, DATASEG

MOV DS, AX

MOV BX, OFFSET DATA

MOV AL, [BX]

INC BX

MOV CX, CONT

AGAIN: CMP AL, [BX]

JA NEXT

MOV AL, [BX]

NEXT: INC BX

DEC CX

JNZ AGAIN

MOV KVFF, AL

MOV AH, 4CH

INT 21H

CODESEG ENDS

END START

四、(1、3分,2、8分,共11分)

1、8K×8bit

2、DA000H-DBFFFH; DE000H-DFFFFH; FA000H-FBFFFH; FE000H-FFFFFH.

五、(每题1分,共27分)

(1)13H;(2)90H;(3)20H;(4)92H;(5)0FH;(6)92H;(7)92H;(8)0FBH;(9)92H;(10)0B0H;

(11)16H;(12)80H;(13)24H;(14)03H;(15)24H;(16)22H;(17)02H;(18)24H;(19)56H;(20)10H;

(21)30H;(22)54H;(23)22H;(24)88H;(25)89H;(26)8AH;(27)8BH

更多相关推荐:
微机原理总结

微机原理总结08通信(1)班汪海云0805070178继对计算机语言的学习,我开始学习了计算机的硬件部分——《微型计算机与接口技术》。这门课程是我以前从未接触过的一门课程,微型计算机系统包括运算器、控制器、存储…

微机原理总结

1.8086CPU由哪两部分构成?它们的主要功能是什么?答:8086CPU由两部分组成:指令执行部件(EU)和总线接口部件(BIU)指令执行部件(EU)主要由算术逻辑运算单元(ALU)、标志寄存器FR、通用寄存…

微机原理知识点总结

微机原理复习总结第1章基础知识计算机中的数制BCD码与二进制数11001011B等值的压缩型BCD码是11001011BF第2章微型计算机概论计算机硬件体系的基本结构计算机硬件体系结构基本上还是经典的冯设备5个...

微机原理实验总结

不知不觉,微机原理与接口技术实验课程已经结束了。回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很重要的,因为它是和机器语言最…

微机原理学习心得

微机原理学习心得本学期的微机原理课程即将要结束以下是关于微机这门课程的心得体会初学微机原理时感觉摸不着头绪面对着众多的术语概念及原理性的问题不知道该如何下手在了解课程的特点后我发现应该以微机的整机概念为突破口在...

微机原理学习总结

微机原理学习总结微机原理与系统设计作为电子信息类本科生教学的主要基础课之一课程紧密结合电子信息类的专业特点围绕微型计算机原理和应用主题以Intelx86CPU为主线系统介绍微型计算机的基本知识基本组成体系结构和...

微机原理课程总结

HEFEIUNIVERSITY微机原理与接口技术课程总结题目微机原理与接口技术课程总结系别电子信息与电气工程系班级11级电子信息工程2班姓名钟文俊学号11050120xx指导老师丁健完成时间20xx年5月28日...

20xx-20xx微机室工作总结

微机室工作总结莒县库山乡中心小学20xx20xx学年微机室工作总结20xx20xx学年我校20xx至20xx学年度第二学期教育教学工作已基本结束本学期微机室在学校领导的指导下圆满地完成了各项工作任务现对本学期以...

小学微机室工作总结

20xx20xx学年度上学期微机室管理工作总结浮岗镇中心小学本学年在学校整体工作计划的指导下我负责微机室管理工作学期临近结束回顾这个学期所从事的微机室管理工作基本上是比较顺利地完成任务当然在工作中我享受到收获喜...

微机原理期末复习总结

一基本知识1微机的三总线是什么答它们是地址总线数据总线控制总线28086CPU启动时对RESET要求80868088CPU复位时有何操作答复位信号维高电平有效80868088要求复位信号至少维持4个时钟周期的高...

微机原理心得体会

微机原理心得体会时间过得很快微机原理课程已经结束了回想起来受益匪浅主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写期间也听老师讲过微机原理这门课程是比较偏硬件一点的正是因为这一点我还是对它比较...

微机原理总结

习题练习一填空题1在8086CPU引脚中用来控制8086工作方式的引脚为33引脚MNMX2在指令中直接给出操作数的寻址方式称为立即38086CPU可屏蔽中断请求信号为高电平有效4CPU通过一个外设接口同外设之间...

微机原理总结(41篇)