微机计算机原理及应用大连理工出版社答案

骨z1里的傲慢
539次浏览
2020年03月21日 19:28
最佳经验
本文由作者推荐
大连微网站开发

习题一 一.单项选择题 1.( B )是以CPU为核心,加上存储器、I/O接口和系统总线组成的。 A.微处理器 B.微型计算机 C.微型计算机系统 D.小型机系统 2. 在I/O接口的各类端口中,必须具有三态功能的端口是( A )。 A.数据输入缓冲器和状态存储器 B.控制器寄存器和状态寄存器 C.数据输入缓冲器和控制寄存器 D.数据输出缓冲器和控制寄存器 3. 通常所说的“裸机”指的是( C )。 A.只装操作系统的计算机 B.不带输入输出设备的计算机 C.未装任何软件的计算机 D.计算机主机暴露在外 4. 计算机中数据总线驱动电路使用的基本逻辑单元是( B )。 A.非门 B.三态门 C.触发器 D.译码器 5.CPU对存储器访问时,地址线和数据线的有效时间关系为( B )。 A.同时有效 B.地址线先有效 C.数据线先有效 D.同时无效 6.在计算机内,表示带符号的机器数均用( D )。 A.ASCII码 B.原码 C.反吗 D.补码 7.二进制数10000000B作为带符号数的补码时,表示的数为( D )。 A.128 B.0 C.-127 D.-128 8.BCD码是二进制编码的十进制数,一个16位的十进制数的组合BCD码在机内要占用的单元个数是( C )。 A.32 B.16 C.8 D.4 9.在计算机内,字符均用ASCII码表示。一个字符在存储器中占用( B )。 A.4bit B.一个字节 C.一个字 D.一个双字 10.x=-46,y=117,则[x-y]补和[x+y]补分别等于( B )。 A.D2H和75H B.5DH和47H C.2EH和71H D.47H和71H 11.二进制数的反码表数范围为( C )。 A.0~255 B.-128~+127 C.-127~+127 D.-128~+128 12.n+1位符号数x的补码表示范围为( C )。 A.-2n

13.某数据单元内容为10000000B,它所能代表的补码的值是( B )。 A.-1 B.-128 C.+128 D.-127 14.带符号十进制数+10,在数据单元中的二进制表示为( C )。 A. 00000010B B.10000010B C.00001010B D.10001010B 15.从键盘输入的数据,通常是以( C )形式表示的。 A.二进制 B.十六进制 码 码 16.算机内的溢出是指其运算结果( D )。 A. 无穷大 B.超出了计算机内存储单元所能存储的数值范围 C.超出了运算器的取值范围 D.超出了该指令所指定的结果单元所能存储的数值范围 二、判断题 1.字长是处理器内部可以一次处理的二进制数码的位数,字长越长,在完成同样精度的运算时数据处理速度越高。( √ ) 2.程序计数器是确保微处理器有序的执行程序的关键性寄存器,用于存放将要执行的下一条指令的地址码。(√ ) 3.微型计算机工作的过程本质上就是执行一个特定指令序列的过程。而每执行一条指令都包括取指令、分析和执行三个阶段。( √ ) 4.现代高档微机中普通采用了流水线结构,因此每条指令的时间明显缩短。( √ ) 5.准确的讲,所谓I/O操作是指对I/O设备的操作。( × ) I/O操作是指对设备与cpu连接的接口电路的操作。 6.控制器的基本功能是:由程序计数器PC控制程序的有序运行并完成各种算术逻辑运算。(× ) 控制器是整个计算机的指挥中心,用于接受来自存储器里的程序命令,经译码后产生一系列定时和控制信号,用来控制指挥计算机中各部件的操作,使整个计算机各部分协调有序的工作。 7.奇校验的含义:待传送的数据加上校验位中的“0”的个数为奇数表示正确。(× ) 待传送的数据的“1”的个数为奇数表示正确. 8.字长一定的情况下,原码、反码和补码所能表示的二进制真值范围是相同的。(× ) 9.微机系统中按信息传输的不同范围,可将总线分为数据总线、地址总线、控制总线三类。( × ) 微机系统中按信息传输的不同类型,可将总线分为数据总线、地址总线、控制总线三类。 三、填空题 1.设模为28,则52的补码为( 34 )H,-14的补码为( 0F2 )H,-0的反码为( 0FF )H。

2.CPU与外设之间交换的信息包括数据信息、( 状态 )和( 控制 )三类。 3.将-56.625表示为单精度浮点数,指数部分(共8位,偏移量为+127)应当是( 10000100B ),尾数部分(共23位)应当是( 1100010 10000000 00000000 B )。 4.微型计算机中,CPU重复进行的基本操作是: 取指令 、 分析指令和 执行指令出 。 5.程序存储与程序控制原理的含义是(事先把程序加载到计算机的存储器中,当给机器加电并启动后,计算机便会按照程序的要求进行工作。)。 四、问答题 1、计算机的特点表现在哪些方面?简述计算机的应用领域。 答:(1)自动化程度高,处理能力强。(2)运算速度快,处理能力强。(3)具有很高的计算精确度。(4)具有存储容量大的记忆功能。(5)具有逻辑判断功能。此外,微机还有体积小、重量轻、耗电少、功能强、使用灵活、维护方便、可靠性高、易掌握、价格便宜等等。 应用领域:1)科学计算;2)数据处理;3)辅助技术;4)过程控制;5)人工智能;6)网络应用。 2冯·诺依曼型计算机的结构由哪些部分组成?各部分的功能是什么?分析其中数据信息和控制信息的流向。 答:冯·诺依曼结构中计算机硬件系统由运算器、控制器、存储器、输入设备、输出设备5个硬件系统构成。①运算器。计算机中进行算术运算和逻辑运算的主要部件,是计算机的主体。在控制器的控制下,运算器接收待运算的数据,完成程序指令指定的基于二进制数的算术运算或逻辑运算。②控制器。计算机的指挥控制中心。控制器从存储器中逐条取出指令、分析指令,然后根据指令要求完成相应操作,产生一系列控制命令,使计算机各部分自动、连续并协调动作,成为一个有机的整体,实现程序的输入、数据的输入以及运算并输出结果。③存储器。存储器是用来保存程序和数据,以及运算的中间结果和最后结果的记忆装置。计算机的存储系统分为内部存储器(简称内存或主存储器)和外部存储器(简称外存或辅助存储器)。主存储器中存放将要执行的指令和运算数据,容量较小,但存取速度快。外存容量大、成本低、存取速度慢,用于存放需要长期保存的程序和数据。当存放在外存中的程序和数据需要处理时,必须先将它们读到内存中,才能进行处理。④输入设备。输入设备是用来完成输入功能的部件,即向计算机送入程序、数据以及各种信息的设备。常用的输入设备有键盘、鼠标、扫描仪、磁盘驱动器和触摸屏等。⑤输出设备。输出设备是用来将计算机工作的中间结果及处理后的结果进行表现的设备。常用的输出设备有显示器、打印机、绘图仪和磁盘驱动器等。

3、计算机中的CPU由哪些部件组成?简述各部分的功能。 答:计算机中的中央处理器(CPU)又叫微处理器(Microprocessor),主要由运算器和控制器两大部分组成,用于逻辑数据处理和产生各种控制信号,是一种可编程的逻辑器件,具有运算和控制功能。 运算器是计算机中加工和处理数据的功能部件,主要包括两个功能:一是对数据的加工处理,包括算术运算和逻辑运算,算术运算有加、减、乘、除等,逻辑运算有比较、判断、与、或、非等。这些功能是通过运算器内部的算术逻辑部件ALU(Arithmetic and Logic Unit)来完成的。二是暂时存放参与运算的数据和某些中间结果,通常是通过与ALU相连的寄存器来实现的。算术逻辑部件ALU有两个操作数,一个是来自累加器,一个是来自内部总线。内部总线的数据可以来自寄存器组,也可以来自数据锁存器(外部数据总线上提供的数据)。ALU进行运算的结果经内部总线送回累加器或寄存器组,同时有可能改变标志寄存器中的标志。 控制器是整个计算机的指挥中心,用于接受来自存储器里的程序命令,经译码后产生一系列定时和控制信号,用来控制指挥计算机中各部件的操作,使整个计算机各部分协调有序的工作。控制器一般由程序计数器PC(或指令指针寄存器IP)、指令寄存器IR、指令译码器ID和微操作控制电路组成。 4微型计算机系统主要由哪些部分组成?各部分的主要功能和特点是什么? 答:一台完整的微型计算机系统由硬件系统和软件系统两部分组成。 硬件部分:1)中央处理器、运算器、控制器;2)存储器在计算机系统中,习惯上把内存、CPU合称为主机。存储器包括(1)内存(2)外存储器;3)输入设备包括(1)键盘(2)鼠标等;4)输出设备包括:(1)显示器(2)打印机。 软件部分:微型计算机系统的软件分为两大类,即系统软件和应用软件。1)系统软件:(1)操作系统(2)程序设计语言(3)数据库管理系统(4)联网和网络管理系统软件。2)应用软件(1)办公软件(2)工具软件(3)信息管理软件(4)辅助设计软件(5)实时控制软件。 5、什么是微型计算机的系统总线?定性说明微处理器三大总线的作用。 答:系统总线包含有三种不同功能的总线,即数据总线DB(Data Bus)、地址总线AB(Address Bus)和控制总线CB(Control Bus) 。数据总线DB用于传送数据信息。数据总线是双向三态形式的总线,即他既可以把CPU的数据传送到存储器或I/O接口等其它部件,也可以将其它部件的数据传送到CPU。数据总线的位数是微型计算机的一个重要指标,通常与微处理的字长相一致。例如Intel 8086微处理器字长16位,其数据总线宽度也是16位。需要指出的是,数据的含义是广义的,它可以是真正的数据,也可以指令代码或状态信息,有时甚至是一个控制信息,因此,在实际工作

中,数据总线上传送的并不一定仅仅是真正意义上的数据。地址总线AB是专门用来传送地址的,由于地址只能从CPU传向外部存储器或I/O端口,所以地址总线总是单向三态的,这与数据总线不同。地址总线的位数决定了CPU可直接寻址的内存空间大小,比如8位微机的地址总线为16位,则其最大可寻址空间为216=64KB,16位微型机的地址总线为20位,其可寻址空间为220=1MB。一般来说,若地址总线为n位,则可寻址空间为2n字节。 控制总线CB用来传送控制信号和时序信号。控制信号中,有的是微处理器送往存储器和I/O接口电路的,如读/写信号,片选信号、中断响应信号等;也有是其它部件反馈给CPU的,比如:中断申请信号、复位信号、总线请求信号、限备就绪信号等。因此,控制总线的传送方向由具体控制信号而定,一般是双向的,控制总线的位数要根据系统的实际控制需要而定。实际上控制总线的具体情况主要取决于CPU。 6、画图说明1.3中模型计算机执行第二条指令(ADD A,05H)工作过程。 答:图示略。执行第二条指令(ADD A,05H)工作过程。 (1)第二条指令的取指令阶段的执行过程。当第二条指令执行完毕后,自动进入第二条指令的取指阶段,其过程如下。 ①CPU把程序计数器PC的内容02H送地址寄存器AR中,记为PC→AR。 ②程序计数器PC的内容自动加1变为03H,为取下一条指令做准备,记为PC+1→PC。 ③地址寄存器AR将02H通过地址总线送至存储器经地址译码器译码,并选中相应的02号单元,记为AR→M。 ④CPU发出存储器“读”命令,打开存储器的输出数据缓冲器三态门,以便读取存储器地址为02H的单元内容。 ⑤把所选中的存储器02号单元的内容04H读到数据总线DB上,记为(02H)→DB。 ⑥存储器02号单元的内容04H经数据总线送到数据寄存器DR,记为DB→DR。 ⑦因为是第一个字节的内容,所以此时在数据寄存器DR中的数据一定是操作码部分,所以在数据寄存器DR将其内容送至指令寄存器IR,再送入指令译码器ID,经指令译码器译码后,控制逻辑发出执行该条指令的一系列时序控制信号至外部控制总线,记为DR→IR,IR→ID,ID→PLA。 经过对操作码的译码,CPU“识别”出这个操作码就是ADD A,05H指令,于是控制器发出将立即数05H传送到CPU中ALU的各种控制命令,并且知道该指令的操作码下一个存储单元内容就是要传送的立即数05H。这就完成了第二条指令的取指阶段。 (2)第二条指令的执行指令阶段的执行过程 经过对操作码04H译码后,CPU就知道这是一条把02H单元的内容与累加器A的内容相加并把和送入累加器A的指令。所以第二条指令的执行,就是把第二字节中的立即数取出来送至CPU

中ALU的一端作为加数,其执行过程为: ①把程序计数器PC的内容03H送地址寄存器AR,记为PC→AR。 ②将程序计数器PC的内容自动加1变为04H,为取下一条指令做准备,AR内容保持不变,记为PC+1→PC。 ③将地址寄存器AR内容03H通过地址总线送至存储器,经地址译码电路选中03H单元,记为AR→M。 ④CPU发出存储器读命令。 ⑤把选中的03H存储器单元内容05H送到数据总线DB上,记为(03H)→DB。 ⑥通过数据总线把读出的内容05H经数据总线DB送至数据寄存器DR,记为DB→DR。 ⑦因为经过译码已经知道读出的是立即数,并要求将它送至CPU的ALU的加数单元中,所以数据寄存器DR内容经过内部数据总线DB送到CPU的ALU的一端加数单元。 ⑧执行加法操作,A的内容06H和05H相加的结果0BH由ALU输出经内部数据总线送累加器A中。 7.简述计算机中“数”和“码”的区别,计算机中常用的数制和码制有哪些? 答:计算机中的数用来直接表示量的多少,有大小之分,能够进行加减等运算。码通常指代码或编码,在计算机中用来描述某种信息。数和码仅在使用场合上有区别,用于代表不同性能的数据,而在使用形态上并没用区别。 计算机中常用的数制有二进制、八进制、十六进制数。计算机中常用的码制有原码、反码、补码、BCD码等。 8将下列十进制数分别转化为二进制数、八进制数、十六进制数和压缩BCD数。 (1) 125.74 :1111001.10111101B;171.572Q;;( 000100100101.01110100)BCD (2) 513.85:1000000001.1101B;1001.61Q;;(100100010011.10001001) BCD (3) 742.24:1011100110.0011B;1346.14Q;2E6.3H;(011101000010.00100100)BCD (4) 69.357:1000101.0101B;105.21Q;45.5H;(01101001.001101010111)BCD (5) 158.625 :10011110.101B;236.5Q;9E.5H;(000101011000.011000100101)BCD (6) 781.697:1011100101.1011B;1345.51Q;;(011110000001.011010010111)BCD 9将下列二进制数分别转化为十进制数、八进制数和十六进制数。 (1)101011.101:43.625;53.5Q;2B.5H (2)110110.l101 :54.8125;66.61Q; (3)1001.11001 :9.78125;11.62Q;9.C1H

(4)100111.0101:39.3125;47.21Q;27.5H 10.将下列十六进制数分别转化为二进制数、八进制数、十进制数和压缩BCD数。 (1)5A.26H:01011010.00100110B;132.112Q;90.15;(01101010.00100110)BCD (2)143.B5H :000101000011.10110101B;0503.552Q;323.71;(000101000011.10110101)BCD (3)6AB.24H :011010101011.00100100B;3253.10Q;1707.14;(011010101011.00100100) BCD (4)E2F3.2CH:1110001011110011.00101100B;161363.130Q;58099.17; (1110001011110011.00101100)BCD 11.根据ASCII码的表示,查表写出下列字符的ASCII码。 (1)0的ASCII码30H;(2)9的ASCII码39H ;(3)K的ASCII码4BH;(4)6的ASCII码36H ;(5)t的ASCII码74H;(6)DEL的ASCII码7FH ;(7)ACK的ASCII码6;(8)CR的ASCII码13 ;(9) $的ASCII码36 ;(10)<的ASCII码60。 12.写出下列十进制数的原码、反码、补码表示(采用8位二进制,最高位为符号位)。 (1)104:(01101000)原码 (01101000)反码 (01101000)补码 (2)52:(00110100)原码 (00110100)反码(00110100)补码 (3)-26 :(10011010)原码 (11100101)反码 (11100110)原补码码 (4)-127 :(11111111)原码 (10000000)反码(10000001)补码 13.已知补码求出其真值。 (1)48H ;72 (2)9DH ;-99 (3)B2H;-78 (4)4C10H;19472 14.己知某个8位的机器数65H,在其作为无符号数、补码带符号数、BCD码以及ASCII码时分别表示什么真值和含义? 答:65H 作为无符号真值=101;65H 作为补码真值=+101;65H 作为BCD真值=65;65H 作为ASCII表示‘a’ 15.给字符4和9的ASCII码加奇校验,应是多少?若加偶校验呢? 奇校验01101000B;10111001B 偶校验10110100B;00111001B 16.中文信息如何在计算机内表示? 答:目前在计算机中主要有两种方式来表示汉字,分别是GB2312码和big5码。GB2312码是中华人民共和国国家汉字信息交换用编码,全称《信息交换用汉字编码字符集--基本集》,由国家标准总局发布,1981年5月1日实施,通行于大陆。新加坡等地也使用此编码。GB2312收录简化汉字及符号、字母、日文假名等共7445个图形字符,其中汉字占6763个。GB2312规定"对任意一个

图形字符都采用两个字节表示,每个字节均采用七位编码表示",习惯上称第一个字节为"高字节",第二个字节为"低字节"。GB2312-80包含了大部分常用的一、二级汉字,和9区的符号。该字符集是几乎所有的中文系统和国际化的软件都支持的中文字符集,这也是最基本的中文字符集。其编码范围是高位0xa1-0xfe,低位也是0xa1-0xfe;汉字从0xb0a1开始,结束于0xf7fe。big5码多用于港台地区。每个字由两个字节组成,其第一字节编码范围为0xA1~0xF9,第二字节编码范围为0x40~0x7E与0xA1~0xFE,总计收入13868个字(包括5401个常用字、7652 个次常用字、7个扩充字、以及808个各式符号)。由于GB2312编码的字数太少,其后又对其进行过多次扩充,故产生了GB12345码、GBK码、GB18030码。Big5也作了不少扩充,如CNS11643码。 习题二 一、选择题 1.8086CPU中指令指针寄存器IP通常用于存放(D )。 A.已被译码的指令的条数 B.正被译码的指令的条数 C.正在执行的指令的地址 D.下一条将要取出的指令的地址 2.下列不属于8086的EU组成部分的是(C )。 A.通用寄存器 B.标志寄存器 C.指令队列 3.IBM-PC微机中的地址总线是( D )。 A.由8237提供 B.由8288提供的 C.双向的 D.单向的 4.比较两个无符号数大小时,通常是根据标志(A )的状态 。 A .CF 5.若8086CPU工作于最小方式,则执行指令MOV [SI+4],DL时,引脚信号M/IO和 RD的电平应分别是( D )。 A. 低、低 B.低、高 C.高、低 D.高、高 6.若8088CPU工作在最小方式下,当CPU的引脚M/IO为高电平、RD为低电平时, CPU正在( A )。 A.访问存储器 B.访问外设接口 C.访问DMA控制器 D.访问8259芯片 7.设堆栈指针为(SP)=3000H,此时若将AX、CX、BX依次推入堆栈后,(SP)=(D ) A.3000H B.2FFEH C.2FFCH D.2FFAH 8.8086的延长总线周期是在( C)之后插入Tw周期。

A.T1 B.T2 C.T3 D.T4 9.8088的分时复用数据/地址线的宽度为(B )。 A.16 B.8 C.4 D.20 10.8086CPU产生存储单元的物理地址是由( B )组合产生的。 和IP B.段基址和偏移地址 和SP D.有效地址和相对地址 11.8086 CPU访问(读/写)一次存储器或I/O接口所花的时间,称为一个( C )。 A.基本指令执行时间 B.时钟周期 C. 总线周期 D.指令周期 12.8086 CPU寻址I/O端口时,若要访问1024个字节端口或512个字节端口,至少使 用( C )根地址线。 A.4 B.8 C.10 D.16 13.8086的基本总线周期长度(不含等待)是( D) A.3T B. TI+TS C. 一个指令周期 D .4T 14.在8086CPU中,用来存放EU要执行的下一条指令的偏移地址的寄存器是( C )。 15.在8086系统中,用来唯一代表存储空间每个字节单元的地址是( C )。 A. 逻辑地址 B.偏移地址 C.物理地址 D.段地址 16.若堆栈段寄存器(SS)=3A60H,堆栈指针(SP)=1500H,则此时堆栈顶存储单元的 实际地址为(D )。 A.3B500H B.8BA00H C.3CB00H D.3BB00H 17.堆栈对数据进行存取的方式是( B )。 A.先进先出 B.先进后出 C.随机存取 D.后进后出 18.在8086系统中,堆栈操作指令PUSH和POP中的源操作数为( B )。 A.字节操作数 B.字操作数 C.双字操作数 D.双精度操作数 二、判断题(判断对错,并改正) 1.8086CPU的总线周期占4个时钟周期。× 2.8086/8088的堆栈采用“先入先出”的原则,而指令队列采用“后入先出”原则。× 8086/8088的堆栈采用“后入先出”的原则,而指令队列采用“先入先出”原则 3.8086CPU的指令周期不等长,由若干总线周期组成。√ 4.8086/8088总是以字为单位进行堆栈操作,以字节为单位进行存储器编址。√ 5.微机系统中,按信息传输的不同范围,可将总线分为数据总线、地址总线、控制总

线三大类。√ 6.8086/8088属于CISC(复杂指令集)型CPU,具有指令长度不等、指令的执行时间 不等这两个典型特点。√ 7.8086CPU中的运算器主要用于完成各种算术运算。× 8086CPU中的运算器主要用于完成各种算术运算和逻辑运算 8.无论写操作还是读操作,其地址信号都要超前于数据信号出现在总线上。√ 三、填空题 1.某存储器单元的实际地址为2BC60H,若该存储单元所在段首地址为2AF0H,则该存 储器单元的段内偏移地址为_____0D60H_。 2.当8086CPU在最小方式下执行指令MOV [DI+2],CX时,引脚M/IO,RD,WR, DT/R在有效期间的电平高低依次是 1 , 1 , 0 , 1 。 3.若CS=0E00H,则可寻址的代码段物理地址范围是_0E000H-1FFFFH 4.设(SS)=2000H,(SP)=0010H,(AX)=0AB5FH。执行指令PUSH AX后,栈顶 的物理地址是 2000EH,当前堆栈指针所指第一个字节单元的内容是 5FH 5.设内存中一个数据缓冲区的起始地址是100EH:C9FAH,在连续存入8个字数据区 的最后一个单元的物理地址是 1CAE8 H。 6.8086CPU复位时,CS的内容为 0FFFFH, IP的内容为 0000H 。 7.计算机内的堆栈是一种特殊的数据存储区,对它的操作采取用先进后出 的原则。 8.8086CPU的EU中的主要部件是 ALU ,主要完成 算数/逻辑运算 和 算出16位便宜地址 工作。 9.8086CPU的ALE信号的作用是 提供有效信号电平,将地址信息锁存到地址锁存器 中。 10.8086CPU向内存写一个地址为0623H:36FFH的字时,需用 2 个总线周期。 11.8086CPU所访问的存储器分为奇地址存储体 和偶地址存储体,各区的数据 总线分别对应CPU数据总线的 高八位 和 低八位。 12.8086CPU完成16位段内偏移量计算的功能部件是 ALU ,完成逻辑地址到物理 地址转换计算的功能部件是 BIU的地址加法器 。 四、简答题 1.什么是8088/8086CPU的最小组态、最大组态模式?

答: 在用8086CPU构成一个微机系统时根据所连的存储器和外设规模的不同有两 种不同的组态。当系统规模较小时系统的控制总线直接由CPU的控制线供给称为最小组态。当系统规模较大时要求有较强的驱动能力为最大组态。 2.简单解释一下储存器的物理地址、段基地址、偏移地址? 答:偏移地址就是相对于基地址的偏移量就像是相对距离;基地址是一个段的起始地址,一般的20位地址总线,基地址为16位;逻辑地址就是基地址和偏移地址的复合形式,逻辑地址= 基地址 : 偏移地址;物理地址要通过基地址和偏移地址的计算才能得出,一般的20位地址总线,其物理地址为:基地址 X 16D(相当于在基地址后面添一个0)+ 偏移地址 3.计算机中哪些操作场合用到堆栈?简述堆栈的操作方式和堆栈指针的作用。 答:堆栈是为了保护数据或是断点地址的 保护数据:比如在中断过后很可能会改写中 断前某一个前面正在使用而后面还要用到的寄存器内的数据,一般是人为的入栈出栈 。保护断点地址:比如在调用子程序时,断点处的地址会自动入栈,等调用完成时会自动出栈,以接断点处继续向下执行指令 堆栈是在RAM专门开辟的一个特殊用途的存储区。堆栈是按照“先进后出”(即先进入堆栈的数据后移出堆栈)的原则存取数据。堆栈指针SP是一个8位寄存器,其值为栈顶的地址,即指向栈顶,P为访问堆栈的间址寄存器。 4.什么叫总线操作周期、时钟周期、指令周期? 答:总线周期所谓一个T状态就是一个时钟周期。它是CPU执行操作的最小时间单位。通常包含4个T状态:T1,T2,T3,T4。时钟周期是一个时间的量,一般规定10纳秒(ns)为一个时钟周期。指令周期指执行一条指令的时间。 5.8086/8088微处理器从逻辑上可以分为哪两部分?试说明每一部分的组成与功能? 答:总线接口单元BIU: 负责CPU与存储器或I/O设备之间的数据传送执行单元。8086总线接口部件BIU由下列各部分组成。(1)4个16位段地址寄存器。CS(Code Segment):16位的代码段寄存器,存储当前的代码段的段地址。DS(Data Segment):16位的数据段寄存器,存储当前的数据段的段地址。ES(Extra Segment):16位的附加段寄存器,存储当前附加数据段的段地址。SS(Stack Segment):16位的堆栈段寄存器,存储当前的堆栈段的段地址。(2)16位的指令指针寄存器IP。存放下一条要执行指令的偏移地址,由CS和IP 的内容决定程序的执行顺序。(3)20位的地址加法器。用来产生20位物理地址。地址加法器将16位逻辑地址变换成存储器读/写所需要的20位物理地址,实际上完成地址加法操作。(4)6字节的指令队列缓冲器。按先进先出的原则存放6字节预取指令的代码。(5)总线控制逻辑电路。以逻辑控制方式实现总线上的信息传送,发出总线控制信号。 8086便通过总线控制器8288来形成各种控制信号称

执行单元EU: 负责指令的译码执行。它主要由算术逻辑单元ALU、寄存器组、标志寄存器flags和EU控制器组成。其中算术逻辑单元ALU是执行单元EU的主要部件,其功能有两个,一是进行算术/逻辑运算,二是按指令的寻址方式算出所寻址的16位偏移地址。寄存器组由4个通用16位寄存器(AX、BX、CX、DX)和4个16位的专用寄存器(源变址寄存器SI、目的变址寄存器DI、堆栈指针寄存器SP、基址指针寄存器BP)组成。标志寄存器flags存放ALU运算结果特征。EU控制器是执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。 6.8086系统中存储器采用什么结构?用什么信号来选中存储体? 答:8086存储器分为奇地址存储体和偶地址存储体。偶地址存放数据低8位,奇地址存放数据高8位。奇偶地址存储体由8086输出的控制信号A0和BHE选择。A0=0即选通低8位。BHE=1选通高8位。 7.写出8086/8088CPU寄存器中的6个状态标志位和3个控制标志位的定义。 答:TF(Trap Flag):跟踪标志位。若TF=1,则8086/8088CPU处 于单步工作方式。 IF(Interrupt Flag):中断允许标志位。控制可屏蔽中断请求,若IF=1,允许CPU接受外部从INTR引脚上发来的可屏蔽中断请求信号,对非屏蔽中断及内部中断没有影响。 DF(Direction Flag):方向标志位。若DF=1,则串操作按减地址方式进行,若DF=0, 则串操作按增地址方式进行。 CF(Carry Flag):进位标志位。最高位产生借位或进位时,该位为1。用于判 断无符 号数运算结果是否正确。 PF(Farity Flag):奇偶标志位。当指令执行结果的低8位中含有偶数个1时,PF为1, 否则为0。 AF(Auxiliary Flag):辅助进位标志位。执行加法或减法指令时,若结果的低 字节的 低四位向高四位有进位或借位,AF为1,否则为0。 ZF(Zero Flag):零标志位。若结果为0,则ZF为1,否则为0。 SF(Sign Flag):符号标志位。当运算结果最高位为1时,SF为1,否则为0。 OF(Overflow Flag):溢出标志位。判断带符号数运算结果是否溢出。 8.写出8086/8088CPU引脚中ALE、NMI、INTR、的含义以及输入/输出方向 答:ALE:地址锁存使能信号,输出,高电平有效。是用来作为地址锁存器的锁存控制信号;NMI:非屏蔽中断请求,输入,上升沿触发;INTR:可屏蔽中断请求,输入,高电平有效; 9.8086/8088CPU内部由哪两部分组成?它们的主要功能是什么? 答:总线接口单元BIU: 负责CPU与存储器或I/O设备之间的数据传送。总线接口部件BIU是

8086CPU与外部(存储器和I/O端口)的接口,它提供了16位双向数据总线和20位地址总线,完成所有外部总线操作。总线接口部件负责与存储器和I/O接口传送信息,8086CPU与存储器或I/O接口电路信息传送都是通过BIU进行的。执行单元EU: 负责指令的译码执行。它主要由算术逻辑单元ALU、寄存器组、标志寄存器flags和EU控制器组成。其中算术逻辑单元ALU是执行单元EU的主要部件,其功能有两个,一是进行算术/逻辑运算,二是按指令的寻址方式算出所寻址的16位偏移地址。寄存器组由4个通用16位寄存器(AX、BX、CX、DX)和4个16位的专用寄存器(源变址寄存器SI、目的变址寄存器DI、堆栈指针寄存器SP、基址指针寄存器BP)组成。标志寄存器flags存放ALU运算结果特征。EU控制器是执行指令的控制电路,实现从队列中取指令、译码、产生控制信号等。 习题三 一、选择题 1.8086/8088CPU直接寻址方式的特点是数据所在单元的地址包含在( B )中。 A.数据存储器 B.指令 C.堆栈 D.通用寄存器 2.在8086的循环控制指令LOOP ABC,目标地址ABC距LOOP的下一条指令的地址偏移范 围(A )。 A. +127~-128 B. 0~65535 C.0~255 D. +32767~-32768 3.已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H。指令LEA AX,[SI] 执行后(AX)=( C )。 A.0002H B.0005H C.0004H D.C302H 4.执行下面程序段后,BX中的内容是(C )。 MOV CL,2 MOV BX,0A6H ROL BX,CL A.0530H B.3050H C.0298H D.0035H 5.用于控制串操作的方向(増量/减量)标志是( D )。 6.指令PUSH DS的目的操作数寻址方式采用的是( A )。 A.寄存器寻址 B.寄存器间接寻址 C. 直接寻址 D.固定寻址 7.如果(AL)=A3H,执行指令CBW后,(AX)=( B ) A.00A3H 3H C.0FA3H D.A3OOH

8.下列指令中,不含有非法操作数寻址的执指令是(D )。 [BX],[30H] [SI+DI],AX AX,CL [3000H],DX 9.指令执行前,(AX)=8F00H,执行CWD后,(DX)=(B ) A.0000H C.00FFH D.0001H 10.指令LEA SP,DS:[0470H]执行后(SP)=(B ) A. 地址为0470H存储单元中的内容 B. 0470H C. 0470H+(SS) D. 0470H+(DS) 11.执行下列程序后,(AL)=( B )。 MOV AL,92H SUB AL,71H DAS A.21 B.11 C.21H D.11H 12.在8086CPU中,( C )组寄存器都可以用来实现对存储器的寻址。 ,SI,DI,BX ,BX,CX,DX ,DI,BP,BX ,CX,SI,DI 13.若已知(SP)=2000H,(AX)=0020H,则执行指令PUSH AX后(SP)和((SS):(SP)) 的值分别为( C )。 A.2002H,00H B.1FFEH,00H C.1FFEH,20H D.2002H,20H 二、判断题(判断对错,并改正) 1.输入/输出指令(如IN、OUT)是所有微处理器必需具备的指令。(×) 输入/输出指令(如IN、OUT)不是所有微处理器必需具备的指令。 2.在8086汇编语言源程序中,只要改变CS、IP之中任一寄存器的值就可以达到程序跳转的目的。(√) 3.判断下列指令是否有错误,并改正。 (1)MOV CS,BX (×);代码段寄存器不能做目的操作数,MOV AX,BX。 (2)PUSH 02FFH (×) ;立即数不能做堆栈的操作数, PUSH AX。 (3)MOV BYTE PTR[BX],1000 (×) ;操作数字长不明确,MOV BYTE PTR[BX],10H。 (4)OUT [BX],AX (×);I/O口间接寻址只能使用做DX间接寻址寄存器, OUT [DX],AX。 (5)MOV IP,AX (×) ;指令指针寄存器不能做目标操作数, MOV BX,AX。 (6)MOV AL,1000 (×);源目操作数字长不匹配, MOV AX,100。0 (7)SAR AX,8 (×);移位指令移位次数超过一次只能用CL做以为次数寄存器,SAR AX,CL。 (8)OUT AL,0436H (×); I/O口间接寻址只能使用做DX间接寻址寄存器, OUT AL,[DX]。

(9)MOV DS,3000H (√)。 (10)ADD [DI],[SI]( ×);加法指令不能源目操作数均为存储器操作数ADD [DI],AX。 三、填空题 1.8086CPU允许使用的间接寻址的寄存器有 SI , DI , BX 和 BP 。 2.MOV AX,ES:[BX][SI]中,源操作数的物理地址计算式是 ES*10H+BX+SI 。 3.设(AX)=2A45H,(DX)=5B19H。执行指令SUB AX,DX后,(AL)= 2C H,CF= 1 , ZF= 0 ,OF= 0 。 4.假设VAR为数据段中已定义的变量,则指令MOV BX,OFFSET VAR中源操作数的寻址方 式是 立即寻址 。MOV BX, VAR指令源操作数的寻址方式是直接寻址方式。 5.若(AL)=96H,(BL)=12H,则执行ADD AL,BL后,结果为 A8 H,标志位OF为 0 , CF为 0 。 6.已知(AL)=01011101B,执行指令NEG AL后再执行CBW,(AX)=____FFA3H______。 7.若(AL)=01001001B,执行ADD AL,AL指令后,再执行DAA命令,则(AL)= 98H , (CF)= 0 ,(AF)= 1 。 8.已知指令序列如下: MOV AX,0FFBDH MOV BX,12F8H IDIV BL 此指令序列执行后,(AX)= FD08H ,(BX)= 12F8H 。 9.在数据传送类指令中,只有 SAHF 和 POPF 两条指令会影响标志位的值,其中 POPF指令唯一可以改变TF标志的指令。 10、指令MOV DL,[BX][SI]中,源操作数使用 基址变址的寻址方式,源操作数在 数据 段中。 四、简答题 1.8086微处理器有哪几种寻址方式?分别说明下列指令的源操作数和目的操作数各采用什么寻址方式? (1)MOV AX,2408H (2)MOV CL,0FFH (3)MOV BX,[SI] (4)MOV 5[BX],BL (5)MOV [BP+100H],AX (6)MOV [BX+DI],‘$$’ (7)MOV DX,ES:[BX+SI] (8)MOV VAL[BP+DI],DX (9)IN AL,05H (10)MOV DS,AX 答:8086的寻址方式有立即数寻址;寄存器寻址;直接寻址;寄存器间接寻址;基址变址寻址; 寄存器先对寻址;基址变址相对寻址;IO端口直接寻址;IO端口间接寻址。(1)源操作数:立即数,

目的操作数:寄存器(2)源操作数:立即数,目的操作数:寄存器;(3)源操作数:寄存器间接寻址,目的操作数:寄存器;(4)源操作数:寄存器,目的操作数:寄存器相对寻址;(5)源操作数:寄存器,目的操作数:寄存器相对寻址;(6)源操作数:立即数,目的操作数:基址变址寻址;(7)源操作数:段超越的基址变址寻址,目的操作数:寄存器;(8)源操作数:寄存器;目的操作数:基址变址相对寻址;(9)IO端口直接寻址,源操作数:立即数,目的操作数:寄存器;(10)源操作数:寄存器,目的操作数:寄存器。 2.假设标志寄存器各状态标志位的初始值为0,试分析分别单独执行如下各组指令后,有关寄存器和标志寄存器的值: (1)MOV AX,2B7EH MOV CX,4DB5H ADD AX,CX 答:AF=1,CF=0,OF=0,SF=0,ZF=0,PF=1;AX=7933H,CX=4DB5H 。 (2)STC MOV BX,B69FH MOV AX,43A2H SBB AX,BX 答:CF=1,OF=1,ZF=0,SF=1,AF=1,PF=0;AX=8C02H,BX=B69FH。 (3)MOV DX,1234H ADD ADD ADD DL,DH DH,DL DH,0E2H 答:CF=1,OF=0,AF=0,ZF=0,PF=1,SF=0;3A46H。 3. 试用逻辑运算指令分别实现下列逻辑操作。 (1)令AH中数据的低两位变为“0”,其余位不变;答:AND AH,11111100B (2)令AL中数据的低两位变为“1”,其余位不变;答:OR AL,00000011B (3)令CX中数据的低两位变反,其余位不变。答:XOR CX,0000000000000011B 4.指出下列指令中哪些是错误的,错在什么地方。 答:(1)操作数字长不对,DL应该改为DX;(2)立即数不做目的操作数;(3)正确;(4)不能 两个操作数都是存储器;(5)IP不做目的操作数;(6)正确;(7)BX,BP都是基址寄存器,不能一起用改成[BX+SI];(8) 正确;(9)SI和DI 是变址寄存器不能同时用;(10)OFFSET后面应该是地址;

(11)偏移地址是16位,改AL 为AX;(12)立即数50H 不能互相交换数据,应该为寄存器或存储器;(13)指令不全改为 IN AL,05H;(14)IO指令地址超过8位的应放在DX寄存器。 5.假定(DS)=3000H,(ES)=3100H,(SS)=2800H,(SI)=00BAH,(BP)=1200H,(BX)=0010H,数 据段中变量VAR的偏移地址是0600H,说明下列各种源操作数的物理地址。 答:(1)MOV AX,BX;源操作数的物理地址在CPU中。(2)MOV AX,0AH[BX];物理 地址=3001AH。(3)MOV AX,[BX];物理地址=30010H。(4)MOV AX,[260H];物理地址=30260H。(5)MOV AX,[BP+10H];物理地址=29210H。(6)MOV AX,ES:[BX];物理地址=31010H。 6.MOV AL,64H MOV BL,-1 CMP AL,BL ADD AL,AL 执行本程序段后,(AL)=_____C8H___,(BL)=___-1______,(CF)=____0____。 7.MOV AL,25H MOV BL,57H AND AL,BL ADD AL,AL DAA 执行上面程序段后,(AL)=____10____,(ZF)=_____0______,(AF)=____1___。 8.已知:(SS)=0B2F0H,(SP)=00D0H,(AX)=8031H,(CX)=0F012H PUSH AX PUSH CX POP AX PUSH CX POP AX POP CX 执行上面程序段后,(SS)=____0B2F0____,(SP)=__00D0_____,(AX)=__0F012_____,(CX)=__8013____。 9.写出下列程序段执行后的结果:(AL)=___37H_____,(DL)=___38H_____。 MOV CL,4 MOV AL,87

MOV DL,AL AND AL,0FH OR AL,30H SHR DL,CL OR DL,30H 10.已知执行下列指令前,(AX)=C376H,(BX)=0002H,(SI)=4400H,(DI)=2300H, DS=ES=SS=CS=6000H,(SP)=4400H,(IP)=1200H,(64400H)=A2H,(64401H)=71H,(64402H)=00H,(64403H)=F3H,CF=1,DF=1写出下列指令单独执行后有关寄存器和存储单元的值,并指出是否影响标志SF、ZF、CF、OF,若影响需写出标志值。 (1)ADC AL,[4400H] ;AL=76H+A2H+1=19H,CF=1,SF=0,ZF=0,OF=0 (2)OR AL,[BX+SI-1] ;AL=77H (3)MOVSW ;(62300H)=71A2H (4)NEG BYTE PTR[SI] ;AL=5EH (5)CALL BX(段内间接调用) ;IP=0002H 11.设(DS)=3000H,(BX)=1100H,(CS)=0062H,(SI)=0002H,(31100H)=52H,(31101H) =8FH,(31162H)=6BH,(31163H)=99H,(31103H)=F6H,(32200H)=AAH,(32201H)=B6H,(32800H)=55H,(32801H)=77H,给出下列各指令执行后AX寄存器的内容。 (1)MOV AX,BX ;AX=1100H (2)MOV AX,[BX] ;AX=8F52H (3)MOV AX,4200H ;AX=4200H (4)MOV AX, [2800H];AX=7755H (5)MOV AX,1100H[BX] ;AX=B6AAH (6)MOV AX,[1160H+SI] ;AX=996BH 12.设(AX)=00D9H,(CL)=03H,(CF)=1,写出下列指令分别执行后AX中的内容(16进 制数)。 (1)SAR AX,CL;AX=E01BH (2)SHR AX,1;AX=006CH (3)SHL AL,1;AL=B2H (4)SHL AX,CL;AX=06C8H (5)ROR AX,CL;AX=201BH

(6)RCL AX,CL;AX=06CCH (7)RCR AL,1;AL=ECH (8)ROL AL,CL;AL=B3H 13.设(CS)=1200H,(IP)=0100H,(SS)=5000H,(SP)=0400H,(DS)=2000H,(SI)=3000H, (BX)=0300H,(20300H)=4800H,(20302H)=00FFH,TABLE=0500H,PROG_N标号的地址为1200:0278H,PROG_F标号的地址为3400:0ABCH。说明下列每条指令执行完后,程序将分别转移到何处执行? (1)JMP PROG_N ;转移到1200:0278H (2)JMP BX ;转移到(CS)=1200H ,(IP)=0300H (3)JMP [BX] ;转移到(CS)=1200H ,(IP)=4800H (4)JMP FAR PROG_F;转移到3400:0ABCH (5)JMP DWORD PTR[BX] ;转移到00FF:4800H 14.如在下列程序段的括号中分别填入以下指令: (1) LOOP NEXT (2) LOOPE NEXT (3) LOOPNE NEXT 试说明在这三种情况下,程序段执行完后,AX、BX、CX、DX寄存器的内容分别是什么? START: MOV AX,01H MOV BX,02H MOV CX,03H MOV DX,04H NEXT: INC BX ADD BX,AX SHR DX,1 ( ) 答:第一种AX=01H,BX=08H,CX=0,DX=0; 第二种AX=01H,BX=04H,CX=02H,DX=02H。 第三种AX=01H,BX=08H,CX=0,DX=0 15.请用串操作指令实现将从内存单元2100H开始存放的10~99这90个数传送到3100H开始

的内存单元处。 答:MOV SI,2100H MOV DI,3100H MOV CX,90 CLD REP MOVSB 16. 读程序段,回答问题。 (1)MOV AL,[82H] 问: 1)程序段(1)的功能是什么?;将AX内容扩大10倍。 2)若从[82H]读入的数据为05H,完成程序段(A)后(AX)=?;(AX)=0032H 3)若读入的数据为A5H,完成程序段(A)后,(AX)=?;(AX)=672H。程序段(1)与程序段(2)的功能是否相同(忽略BX的变化)? 答:完成功能不完全相同,程序段(1)是无符号乘10运算,程序段(2)是实现有符号乘10运算功能。 4)用最简单的指令完成与(1)相同的功能,请写出这些程序。 答:MOV AX,0000H MOV AL,[82H] ADD AX,AX MOV BX,AX MOV CX,2 SAL BX,CL ADD AX,BX XOR AH,AH ADD AX,AX MOV BX,AX MOV CX,2 SHL BX,CL ADD AX,BX (2)MOV AL,[82H] MOV BL,0AH IMUL BL

习题四 一、选择题 1.下列4个指令中( B )是一条伪指令语句。 AX,0034H EQU SYM AND 0FEH AX,00FEH TABLE 2. 下列伪指令中用来定义字节变量的是( A )。 3.下列指令中正确的是( D )。 AX,[SI][DI] BYTE PTR[BX],1000 8 EQU DS:[BP+8] BX,OFFSET[SI] 4. 宏指令与子程序的相同之处为( A )。 A.宏指令的目标代码与子程序的目标代码都是唯一的。 B.都需要先定义,后调用。 C.执行宏指令的目标代码时与子程序时一样,都需要增加如保护、恢复现场类的额外操作。 D.宏指令的目标代码与子程序的目标代码都不是唯一的。 5.定义过程结束的伪指令符是( C )。 6.8086宏汇编源程序中,若BUFF是字变量名,则执行指令MOV BX,BUFF后, BX中的值为BUFF单元的( A )。 A.字数据值 B.变量类型值 C.段基值 D.段内偏移量 7. 以下不是8086宏汇编语言中规定的保留字的是( C )。 8. 在一段汇编程序中多次调用另一端程序代码,用宏指令比用子程序实现,其目标代 码( B )。 A.占内存空间小,但速度慢 B.占内存空间大,但速度快 C.占内存空间相同,速度快 D.占内存空间相同,速度慢 9.已知某数据段定义如下: DATA SEGMENT DAT DB 20 DUP(?) DATA ENDS 则以下指令中源操作数不是立即数的是( D )。 A. MOV AX,LENGTH DAT B. MOV AX,DATA C. MOV AX,SEG DAT D. MOV AX,DAT 二、判断题(判断对错,并改正) 1.所有8086/8088汇编语言源程序都必须有自己的代码段和数据段。(×) 所有8086/8088汇编语言源程序都必须有自己的代码段。 2.过程调用和宏调用都发生在程序运行时。(X)宏调用发生在程序运行时。(×)

宏调用发生在程序汇编运行时。 3.8086的一个宏汇编语言源程序可以只定义一个段。(√) 4.8086宏汇编语言中,宏和过程区别是:宏可以简化源程序书写,但不能精简目标代 码。(√) 5.设ABC为一标号,则其用在宏汇编伪指令前时需在后面加上冒号,而用在8086指 令前时不要冒号。(×)8086指令前时需要冒号。 6.无论复杂还是简单的程序都可由顺序、分支和循环三种基本程序结构实现。(X)还有子程序调用或者宏调用。 三、填空题 1.按照以下程序段定义,变量S1的段内偏移地址是_0100___H,变量NB的段内偏移地址是010B___H,符号COUNT的值是000B H。 DATA SEGMENT ORG 0100H S1 DB 0,1,2,3,4,5 S2 DB ‘12345’ COUNT EQU $$-S1 P DW -1 NB DB 3 DUP(2) DATA ENDS (DS)×10H=30000H (SI)= 2000H + 存储器 2. 当INT 21H中断的功能号为02H时,它的入口参数送寄存器___DL_____。 3. 808610操作码 宏汇编上机过程中,用户按编辑、汇编、链接顺序将依次产生32010H __ASM_____、__OBJ____和操作码 10EXE文件。 4. 8086宏汇编语言源程序中,调用功能号AH=09H时21H号中断完成的功能是 显示字符串____。 5. 汇编指令通常包括___操作码_____和___操作数_____两部分。 四、简答题 1.已知某数据段的定义如下。请在右图中标明各有关内存单元的段内偏移量及内容。 30000H DSEG SEGMENT AX … A1 DW ‘95’ CT EQU $$-A1 ORG 0006H 405032010H A2 DB CT DUP(1) DSEG ENDS 答:段内偏移量0000H、0001H单元内容依次为:35H、39H,段内偏移量0006H到0009H单元内

容均为:01H。 2.已知附加段中部分数据定义如下: DATA1 DW 123,-4,-1024,0FFFFH,0 DW 666,888,‘A’,-1,0ABCDH 执行下列程序段之后,AX、BX的值分别是多少?整个程序段实现了什么功能? TESTI: MOV CX,10 DEC CX LEA DI,DATA1 MOV BX,ES:[DI] MOV AX,BX CHKMIN: ADD DI,2 CMP ES:[DI],BX JAE CHKMAX MOV BX,ES:[DI] JMP SHORT NEXT CHKMAX: CMP ES:[DI],AX JBE NEXT MOV AX,ES:[DI] NEXT: LOOP CHKMIN 答: AX=0FFFFH,BX=0。 功能:找无符号数的最大数和最小数。把DATA1字变量视为无符号数,查找其中的最大、最小值,并将最大值保存在AX中、最小值保存在BX中。 3.宏和子程序都可简化源程序的书写,试比较两者对程序性能的不同影响。 答:宏:节省执行时间,浪费代码空间;子程序:节省代码空间,执行时间相对较长 4.指出下列程序段完成的功能。 DATX1 DB 30 DUP(8) DATX2 DB 10 DUP(?) …… MOV CX,10 MOV BX,20 MOV SI,0 MOV DI,0 NEXT: MOV AL,DATX1[BX][SI] MOV DATX2[DI],AL INC SI INC DI LOOP NEXT

程序段完成的功能是:在DATX2的存储空间中装入DATA1中的后10个数值 。 5.下列数据段定义和分配了一些存储单元,请画出其在内存中的实际分配图。 DATA SEGNENT DBYTE DB 10,10H DDWORD DD 12345678H ARRAY DW 5 DUP(2) DATA ENDS 答:从偏移地址为0000H开始实际分配数据依次为:0AH、10H、78H、56H、34H、12H、02H、00H、02H、00H。 6.在汇编语言程序中,变量和标号有何异同? 答:变量用于定义数据,具有5个属性,常在数据段。标号用于说明指令的位置,具有三个属性,常在指令段中。 7. 已知:(AX)=4567H,(BX)=9ABCH,执行了下面的程序段后,(AX)=__BA98H___,(BX)=__9ABCH___。 CMP AX,BX JG NEXT XCHG AX,BX NEXT: NOT AX 8.已知有某字串BUF1的首址为1000H,BUF2的首址为1020H,数据段与附加段重合。 欲从BUF1处开始将20个字数据顺序传送至BUF2处,试在下面程序段的空白处填上适当的指令或操作数以实现上述功能。 LEA SI,BUF1 ADD SI,_40___ LEA DI,BUF2 ADD DI ,40____________ STD MOV CX,_20_____ REP MOVSW 9.欲将数据段中首址为BUFFER,共50个字节段的存储区初始化为0,试在下面程序 段的空白处填上适当的指令或操作数,以实现上述功能。 LEA DI,DEST MOV CX,_50___ cld mov al,__0__ rep __STOSB___ 10.已知(AL)=56H,下列程序执行之后,(AL)=__38H__,该程序段实现的功能是_将组合BCD码转换为二进制数___。

MOV DL,AL AND DL,0FH AND AL,0F0H MOV CL,4 SHR AL,CL MOV BL,10 MUL BL ADD AL,DL 11.已知以X为首址的字单元中的数据依次为1234H,5678H;以Y为首址的字单元中 的数据依次为8765H、4321H。下面的程序执行后,(DX)=_DDDDH___,(AX)=__1___。 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: …… 12.什么是无条件传送方式?什么是有条件传送方式? 答:无条件传输方式是指传输数据过程中,发送/接收数据一方不查询判断对方的状态,直接用输入/输出(IN/OUT)指令进行无条件的数据传输。条件传输方式,也称为查询传输方式,使用这种方式,CPU不断读取并测试外设的状态,如果外设处于“准备好”状态(输入设备)或“空闲”状态(输出设备),则CPU执行输入指令或输出指令与外设交换信息。 五、编程 1.编写一个内存自检程序,其要求是将数据55H写入要检测的内存区98000H到9FFFFH的每一个单元。然后,再逐个单元读出与55H比较。若全对,则屏幕显示“Memory OK”;只要任何一个单元出错,则显示“Memory ERROR”。试编程序实现上述内存自检功能。 答:实现方法之一 DATA SEGMENT AT 9800H BUF DB 8000H DUP(?) CNT EQU $$-BUF BUFD EQU 55H DIS1 DB ‘Memory OK’ OAH,ODH,$$ DIS2 DB ‘Memory ERROR’,OAH,ODH,$$ 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,BUFD 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 CODEENDS END START 2.在BUFFER开始的单元中有100个带符号的字节数据,编写一个程序,将其中的正数、负数、零的个数分别统计出来,并分别存放在PLUS,MINUS,ZERO的单元中。 答: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,100

LEA SI,BUFFER LEA DI,PLUS LEA BX,MINUS LEA BP,ZERO CLD L: LODSB TEST AL,80H JS M CMP AL,O 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 ENDS START 3.AX寄存器中有4个压缩BCD码,试编写程序将这4个数字分开,并分别存入BH、BL、CH和CL寄存器中。 code segment assume cs:code start:MOV AX,9876H MOV BL,AH;BL=98H AND BL,OFH ;BL=08H SHR AH,1 SHR AH,1 SHR AH,1 SHR AH,1 ;右移四次,AH=09H MOV BH,AH ;BH=09H MOV CL,AL ;CL=76H AND CL,OFH ;CL=06H SHR AL,1

SHR AL,1 SHR AL,1 SHR AL,1;右移四次,AL=07H MOV CH,AL ;CH=07H mov ah,4ch int 21h code ends end start 4.编写程序,统计寄存器BX中二进制位“1”的个数,结果存在AL中。 code segment assume cs:code start:mov BX,1234 mov bl,0;统计1的个数 mov cx,16;循环次数 loop1:test ax,8000h;不断的左移,与8000h比较获取1的个数 jnz loop2 inc bl shl ax,1 loop2:loop loop1 mov al,bl mov ah,4ch int 21h code ends end start 5. 编写程序实现接收一个字符的输入,并在屏幕上用二进制形式(0/1)显示出它的ASCII 码值。 code segment assume cs:code,ds:data start:mov ah,07h int 21h mov cx,8 again:rol al,1 mov bl,al and al,1h add al,30h mov dl,al

mov ah,02h int 21h mov al,bl loop again mov ah,4ch int 21h code ends end start 习题五 一、选择题 1.容量为4K*1bit的SRAM芯片若采用双译码结构,内部应有(C )条地址译码输出线。 A.3 2 B.64 C.128 D.256 2.动态RAM的特点是(C )。 A.速度高于静态RAM B.不需要刷新电路 C.集成度高于静态RAM D.一般用作高速缓存Cache 3.静态RAM的特点之一是( B ) A.需要刷新电路 B.存取速度高于动态RAM C.能永久保存存入的信息 D.集成度高于动态RAM 4.若用6264SRMA(8k*8bit)组成128KB的RAM,需要( B )片6264芯片。 A.8 B.16 C.12 D.24 5.用512×4位规格的存储芯片构成4KB的存储器,需要使用这种芯片的数量是(C )。 A.4片 B.8片 C.16片 D.20片 6.CPU的总线与若干2114(1K×4位)存储芯片连接,若CPU的地址线中A0~A15 中只有A13、A14、A15接至一个3—8译码器产生2114的片选信号,则每个存储芯片占用的重叠地址为( D )个。 A. 0 B. 8 C. 1K D. 8K 7.CPU与存储芯片的连接方式将影响芯片的( C )。 A.功耗 B.存取速度 C.地址分配 D.存储容量 8.CPU对存储器访问时,地址线和数据线的有效时间关系为( B )。 A.同时有效 B.地址线先有效 C.数据线先有效 D.同时无效 9.高速缓存Cache存取速度( C )。 A.比主存慢、比外存快 B.比主存慢、比内部寄存器快 C.比主存快、比内部寄存器慢 D.比主存慢、比内部寄存器慢 二、判断题 1.DRAM的集成度高于SRAM,但速度低于SRAM。√ 2.存储器和I/O接口的地址译码,目的是保证CPU能对所有存储单元和所有I/O端口正确寻址。√ 3.高速缓冲存储器(CACHE)是介于CPU和内存之间的缓冲器,一般由PROM组成。× 三、填空题 1.芯片的片选信号形成方法有 法、 法和 法。如果要使对应的地址没有重叠,必须采用 法。

①线选法 ②部分译码 ③全译码 ④全译码 2.已知某种SRAM芯片的容量为2K*1bit,若要用它形成16KB的系统存储器,共需 片这样的芯片,连接成 个芯片组。 ①64 ②8 3.设某系统的地址总线宽16bit,数据总线为8bit。若采用容量为8K*4bit的SRAM芯片构成最大容量的存储系统,共需 片这样的SRAM,这些芯片应分为 组,每组 片。16;8;2 4.若有一片SRAM芯片为64K*4位,其片内地址信号线有 条,对外数据线有 条,若用其组成256K字节的内存,需要 此种芯片。 16,4,8 N5.若CPU的地址总线宽度为N,则可寻址______个存储器单元。2个存储器单元 四、简答题 1.什么是存储器的部分译码、全译码方式? 答:全译码:使用全部系统地址总线进行译码。特点是地址唯一,一个存储单元只对应 一个存储器地址(反之亦然),组成的存储系统其地址空间连续。部分译码:只使用部分系统地址总线进行译码。其特点:有一个没有被使用的地址信号就有两种编码,这两个编码指向同一个存储单元,出现地址重复。 2.存储器的片选控制方式有哪几种?各有什么缺点? 答:全译码、部分译码和线选译码,全译码电路复杂;部分译码的部分存储器空间重叠, 线选译码的重叠度最大。 3.简述半导体存储器的主要技术指标。 答:1)存储容量。存储器可以存储的二进制信息总量称为存储容量。存储容量有两种 表示方法。 (1)用字数×位数来表示容量,以位为单位。 (2)用字节数来表示容量,以字节为单位。 2)存取时间。存取时间是指从启动一次存储器操作到完成该操作所经历的时间,就是指存数的写操作和取数的读操作所进行的时间,单位通常为ns。手册中一般是给出典型存取时间或最大存取时间。很显然,存取时间越小,存取速度越快。 3)存储周期。连续启动两次独立的存储器操作(如连续两次写操作)所需要的最短时间称为存储周期。它是衡量主存储器工作速度的重要指标。一般情况下,存储周期稍大于存储时间。 4)功耗。功耗一般指每个存储单元的功耗,单位为μW/单元,也有给出每块芯片总功耗的,单位为mW/芯片。 5)集成度。集成度是指在一块存储芯片内能集成多少个基本存储电路,每个基本存储电路存放一位二进制信息,所以集成度常用位/片来表示。 6)可靠性和工作寿命。可靠性一般指存储器对外界电磁场、温度、湿度等变化的抗干扰能力。存储器的可靠性用平均故障间隔时间MTBF(Mean Time Between Failures)来衡量。MTBF越长,

可靠性越高,存储器工作越稳定。 4、半导体存储器从功能上分为哪几类?每类各有何特点? 按其功能可分为:随机存取存储器(简称RAM)和只读存储器(只读ROM) ROM 只读存储存储器 (系统固化的一部分的空间,不受关机与重启的影响)RAM 随机存储存储器 (一般指系统内存,如遇断电与重启,信息会丢失)。 6.指出ROM、PROM、EPROM和E2PROM的特点,适用场合。 答:EEPROM (Electrically Erasable Programmable Read-Only Memory),电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片。 EEPROM 可以在电脑上或专用设备上擦除已有信息,重新编程。一般用在即插即用 EPROM(Erasable Programmable ROM,可擦除可编程ROM)芯片可重复擦除和写入,解决了PROM芯片只能写入一次的弊端。EPROM芯片有一个很明显的特征,在其正面的陶瓷封装上,开有一个玻璃窗口,透过该窗口,可以看到其内部的集成电路,紫外线透过该孔照射内部芯片就可以擦除其内的数据,完成芯片擦除的操作要用到EPROM擦除器。EPROM内资料的写入要用专用的编程器,并且往芯片中写内容时必须要加一定的编程电压(VPP=12—24V,随不同的芯片型号而定)。EPROM的型号是以27开头的,如27C020(8*256K)是一片2M Bits容量的EPROM芯片。EPROM芯片在写入资料后,还要以不透光的贴纸或胶布把窗口封住,以免受到周围的紫外线照射而使资料受损。 7.用下列芯片构成存储系统,各需要多少个RAM芯片?需要多少位地址作为片外地址译码?设系统为20位地址线,采用全译码方式。 1)512×4位RAM构成16KB的存储系统;需要64片,需要5位地址译码。 2)1024×1位RAM构成128KB的存储系统;需要1024片,需要7位地址译码。 3)2K×4位RAM构成64KB的存储系统;64片,需要5位地址。 4)64K×1位RAM构成256KB的存储系统。需要32片,需要2位地址译码。 8.如何连接存储器的地址线会产生地址重叠的问题?应该如何避免? 答:采用部分译码的方式会产生重叠的问题,采用全译码的方式会避免这个问题 9.某一RAM芯片,其容量为1024×8位,地址线和数据分别为多少根? 答:地址线是10根,数据线是8根 10.已知某RAM芯片的引脚中有11根地址线,8位数据线,该存储器芯片的容量为多大?若该芯片所在存储空间的起始地址为3000H,则其结束地址为多少? 答:2K容量;37FFH 五、应用题。 1.设某系统的数据线宽度为8bit,地址线宽度为16bit,现有容量为2K*4bit的SRAM芯片若干。如果需要扩充共8KB的RAM子系统,并且要求该RAM子系统占用的地址范围从C800H起连续且唯一。请:①画出SRAM芯片与系统总线的连线(所需要的译码器及各类门电路可任选);②标明各芯片(组)的地址范围。 ①答:共需8片,分成4组,每组2片。(图略) ②答:第一组:0C800-0CFFFH 第二组:0D000-0D7FFH 第三组: 0D800-0DFFFH 第四组:

0E000-0E7FFH。 2.如图5-19所示SRAM芯片,利用芯片构成8086的从E8000H~EFFFFH的内存, (1)该芯片的存储容量是什么?共需要几个存储器芯片才能满足上述要求? b)试画出片选信号CS的产生电路。 c)从地址E8000H开始,顺序将00H、01H、02H……直到FFH重复写到满上面构成的 内存,编写一个程序段实现该功能。 图5-19 应用题2图 答:(1)芯片存储容量为16K*8位,需要2片。 (2)(图略)。 (3) DATA SEGMENT AT OE800H …… MOV CX,8000H CLD MOV DI,O MOV AL,CL REP STOSB 3.存储系统分析与设计 已知RAM芯片和地址译码器的引脚如题图5-20所示,试回答如下问题: (1)若要求构成一个8K×8的RAM阵列,需几片这样的芯片?设RAM阵列组占用起始地址为EI000H的连续地址空间,试写出每块RAM芯片的地址空间。(2)若采用全地址译码方式译码,试画出存储器系统电路连接图。(3)试编程:将55H写满每个芯片,而后再逐个单元读出做比较,若有错则CL= FFH,正确则CL=77H。 图5-20 应用题3图 答:(1)题五图中所示RAM芯片有12根地址线和4根数据线,因此一片这样的RAM芯片其存储容量12为2*4bit=4K*4bit,若需构成8K*8的RAM阵列,共需(8K*8)/(4K*4)=4片。这4片RAM芯片应返程2个芯片组,每个芯片组中RAM芯片的地址线A11~A0、读写控制线和片选控制线都连在

一起,因此每组中的RAM芯片占用的指间完全一样,只是分别提高4位和低4位的数据,这两个芯片组的地址空间分别为:①组E1000H~E1FFFH②组E2000H~E2FFFH (2)全译码系统的电路连接(图略)。 (3)一种可能得填写内存的程序代码如下: MOV AX,0E100H MOV DS,AX 给数据段、附加数据段寄存器赋初值 MOV ES,AX MOV DI,0 CLD MOV CX,2000H ;设置循环计数器赋初值 MOV AL,55H REP STOSB 向DI所指的内存单元中填写“55H” MOV DI,0 MOV CX,2000H REPZ SCASB ;扫描不等于55H的单元,转到NEXT处理 JNZ NEXT MOV CL,77H ;正确 JMP EXIT NEXT:MOV CL,0FFH ;出错 EXIT: HLT 4.CPU与存储器的连接如图5-21所示,已知8KB RAM的地址范围是8000H~9FFFFH;8KB ROM的地址范围是2000H~3FFFH,完成译码器74LS138输出/Y0~/Y7与存储器片选端/CE的连线。(注:74LS138的G1=H、/G2B=L,存储器的读写控制线未画) 图5-21 应用题4图 答:74LS138的/Y1输出端接ROM的片选端/CE,/Y4输出端接RAM的片选端/CE。 5.某一存储器系统如题图5-22所示,问它们的存储容量各是多少?RAM和EPROM存储器地址分配范围各是多少?

图5-22 应用题5图 答:RAM的容量是2K ,EPROM是4K容量;RAM地址范围是81000H-817FFH;或者是:81800H-81FFFH;EPROM地址范围是:85000H-85FFFH 6.微机系统的存储器由5片RAM芯片组成,如题图5-23所示,其中U1有12 条地址线,8条数据线,U2~U5各有10条地址线,4条数据线,试计算芯片U1和U2,U3的地址范围,以及该存储器的总容量。 题图5-23 应用题6图 答:U1的地址范围为09000H-09FFFH;09800H-09FFFH; U2U3地址范围:0A000H-0A3FFFH;0A400H-0A7FFH; U4U5地址范围为:0A200H-0A7FFH。 7.已知某一微机系统有16根地址线,根据下面三种情况分别设计出存储器片选的译码电路及其与存储器芯片的连接电路。 1)用1K×1位存储器芯片,组成4K×8位的存储器系统。 2)用8K×4位存储器芯片,组成32K×8位的存储器系统。 3)用8K×8位存储器芯片,组成64K×8位的存储器系统。 答:参见图5-18设计。 8.已知某RAM芯片的引脚中有11根地址线,8位数据线,该存储器芯片的容量为多大?若该芯片所在存储空间的起始地址为3000H,则其结束地址为多少? 答:容量为2KB;37FFH。 习题六 一、选择题 1.在进入DMA工作方式之前,DMA控制器被当做一个(C)。 A.主处理器 B.I/O设备 C.I/O接口 D.内存单元 2.中断控制方式的优点是(A)。

A.提高CPU的利用率 B.硬件连接简单 C.不能在线进行故障处理 D.无需CPU干预 3.若8086系统的I/O端口采用直接端口寻址方式访问,则(A )。 A.端口地址变化范围为00H~FFH B.端口地址变化范围为0000H~FFFFH C.只能输入字节操作数 D.只能输入输出字操作数 4.DAM数据传送常用于( D )之间的信息交换。 A.CPU与外存 B.CPU与外设 C.主存与外存 D.主存与外设 5.在I/O同步控制方式中,程序查询方式相比于中断控制方式,具有(D )。 A.硬件电路简单,数据传输可靠 B.硬件电路简单,CPU使用效率高 C.硬件传送可靠,CPU使用效率高 D.硬件电路复杂,CPU使用效率低 6.程序查询I/O时总是按___B_____的次序完成一个字符的传输。 A.写数据端口,读写控制端口 B.读状态端口,读写数据端口 C.写控制端口,读写状态端口 D.读控制端口,读写数据端口 7.计算机中数据总线驱动电路使用的基本逻辑单元是(B )。 A.非门 B.三态门 C.触发器 D.译码器 8.8086/8088CPU响应中断NMI和INTR时,相同的条件是(B)。 A.允许中断 B.当前指令执行结束 C.CPU工作在最大组态下 D.CPU工作在最小组态下 9.在8086中断优先级顺序中,最低优先级的中断源是(A) A.单步自陷 B.INTR C.被零除 D.断点 10.在微机系统中若用4片8259构成主从两级中断控制逻辑,则CPU最多可接收(A )级外部中断 A.32 B.29 C.28 D. 24 11.在PC系统微机中,从00000~003FFH的内存区域为(D )。 A.ROBIOS区 数据区 C.I/O缓冲区 D.中断向量表 12.某中断的类型码为21H,则它的中断服务程序的入口地址存放在内存(B )地址开始的单元中。 A.00042H B 0084H C 00108H D 0002H 13.在X86等PC系列微机中,采用2个8259A级联,其可屏蔽中断可扩展为(A )。 A.15级 B.16级 C.32级 D.64级 14.PC系列微机中,确定外部硬中断的服务程序入口地址的是(D )。 A.主程序中的调用指令 B.主程序中的条件转移指令 C.中断控制中的中断服务寄存器 D.中断控制器发出的中断向量名 二、判断题 1.在通过总线结构组成的微机系统中,为确保信息传输可靠,地址信息需要缓冲,数据信息则需要锁存。 (× ) 由于在地址/数据复用线上,地址总是先于数据出现,因而地址需要锁存、数据需要缓冲。 2.在外设与主机的数据传输控制方式中,DMA方式是CPU效率最高的。 (× )

中断方式效率最高。DMA方式下的CPU不具备总线权,无法执行与总线相关的操作,效率很低。 3.8086CPU提供了两种I/O端口寻址方式,即直接寻址和DX寄存器间接寻址。前者寻址范围为0~255,后者寻址范围为0~64K。 ( √ ) 4.所谓I/O操作具体是指对I/O设备的操作。 (× ) 5.I/O端口与存储器单元独立编址的主要优点是I/O端口不占用存储器单元。(√ ) 6.在一个微机系统中,若I/O设备为一组开关,则可采用无条件传送方式进行输入/输出操作。 ( √ ) 7.8086CPU响应NMI或INTR中断时,相同的条件是IF=1。 (× ) 8.中断控制I/O传输方式的基本特点是I/O主动,CPU被动。 (× ) 9.任何一种可编程I/O接口芯片,工作前都必须先向它的控制寄存器写入控制字,以选择所需工作方式和功能。 ( √ ) 三、填空题 1.微机系统的主机与外设进行信息传递方式有( )方式,( )方式,( )方式和( )方式。答:①无条件(同步) ②条件(查询) ③中断 ④DMA(直接存取) 2.CPU与外设之间交换的信息包括数据信息、( 控制信息 )和(状态信息 )三类。 3.微机与外设的几种输入/输出方式中,便于CPU处理随机事件和提高工作效率的I/O方式是(中断方式 ),传输速率最快的方式是( DMA方式 )。 4.PC/XT机共有( 256 )个中断类型码,所有中断向量统一存放在地址范围为( 00000H到003FFH )的内存中。若已知RAM单元中从002CH处开始,依次存放着23H、0FFH、00H、0F0H四个字节,则该中断向量的逻辑地址是( F000H:FF23H ),对应的中断类型码是( 11 )。 5.8086系统响应中断时,自动压入堆栈保护的寄存器依次为( FLAGS )、( CS )和( IP )。 6.8259A工作在8086模式,中断向量字节ICW2=70H,若在IR3处有一中断请求信号,这时它的中断向量号为( 73H ),该中断的服务程序入口地址保存在内存地址为( )H至( )H的( )个单元中。 7.8086的INTR端输入一个( 高 )电平时,可屏蔽中断获得了中断请求。 8.响应可屏蔽中断INTR的条件是控制标志IF=( 1 )。 9.若8086的外部中断INTR、NMI同时又中断请求,应先响应(NMI )。 10.PC系统中,在可屏蔽中断的第( 2 )个 INTA响应周期传送中断类型码。

四、简答题 1.简述存储器映像I/O和独立编址I/O的主要区别。 答:独立编址和统一编址:独立编址(专用的I/O端口编址)----存储器和I/O端口在两个独立的地址空间中。(1)优点:I/O端口的地址码较短,译码电路简单,存储器同I/O端口的操作指令不同,程序比较清晰;存储器和I/O端口的控制结构相互独立,可以分别设计。(2)缺点:需要有专用的I/O指令,程序设计的灵活性较差。.统一编址(存储器映像编址)----存储器和I/O端口共用统一的地址空间,当一个地址空间分配给I/O端口以后,存储器就不能再占有这一部分的地址空间。(1)优点:不需要专用的I/O指令,任何对存储器数据进行操作的指令都可用于I/O端口的数据操作,程序设计比较灵活;由于I/O端口的地址空间是内存空间的一部分,这样,I/O端口的地址空间可大可小,从而使外设的数量几乎不受限制。(2)缺点:I/O端口占用了内存空间的一部分,影响了系统的内存容量;访问I/O端口也要同访问内存一样,由于内存地址较长,导致执行时间增加。 2.CPU与外设交换数据常用的控制方式有哪几种?试比较它们各自优缺点及应用场合。 答:1)程序方式 程序方式是指微机系统与外设之间的数据传输过程在程序的控制下进行。其特点是以CPU为中心,通过执行预先编制的输入/输出程序实现数据传输。程序方式可分为无条件传输和条件传输两种方式。包括(1)无条件传输方式和条件传输方式。无条件传输方式是指传输数据过程中,发送/接收数据一方不查询判断对方的状态,直接用输入/输出(IN/OUT)指令进行无条件的数据传输。无条件传输方式的接口电路和程序设计最为简单,一般用于能够确信外设已经准备就绪的场合。如读取开关的状态,LED的显示等。条件传输方式也称为查询传输方式,使用这种方式,CPU不断读取并测试外设的状态,如果外设处于“准备好”状态(输入设备)或“空闲”状态(输出设备),则CPU执行输入指令或输出指令与外设交换信息。2)中断方式 CPU与外设之间通过程序查询方式实现数据传送,很好地解决了CPU与外设之间工作速度的协调问题。但是,程序查询方式的数据传送还存在一些不足之处,主要有以下两点。 (1)CPU的效率低 CPU需要不断地查询外设接口中的状态,占用CPU大量的工作时间,大大降低了CPU的使用效率,对一些慢速外设来说,这个问题尤为突出。 (2)实时性差 在中断传输方式下,当输入设备将数据准备好或输出设备可以接收数据时,便可向CPU发出中断请求,使CPU暂时停止执行当前程序,而去执行一个数据输入/输出的中断服务程序,与外设进行数据传输操作,中断服务程序执行完后,CPU又返回继续执行原来的程序。这样在一定程度上实

现了主机与外设的并行工作。同时,若某一时刻有几个外设发出中断请求,CPU可根据预先安排的优先顺序,按轻重缓急处理几个外设的请求,这样在一定程度上也可实现几个外设的并行工作。 利用中断方式进行数据传输,CPU不必花费大量时间在两次输入或输出过程间对接口进行状态测试和等待,从而大大提高了CPU的效率。 3)直接存储器存取(DMA )方式 在程序控制的传送方式中,所有传送均通过CPU执行指令来完成,而CPU指令系统只支持CPU和内存或外设间的数据传输。如果外设要和内存进行数据交换,即使使用效率较高的中断传送,也免不了要走外设→ CPU→内存这条路线或相反的路线,这样限制了传输的速度。若I/O设备的数据传输速率较高(如硬盘驱动器),那么CPU和这样的外设进行数据传输时,即使尽量压缩程序查询方式或中断方式中的非数据传输时间,也仍然不能满足要求。为此,提出了在外设和内存之间直接进行数据传输的方式,即DMA方式。 3.为什么要在CPU与外设之间设置接口?I/O接口电路一般具有哪些基本功能? 答:在CPU与外设之间设置接口主要有4个原因。(1) CPU与外设二者的信号不兼容,包括信号线的功能定义、逻辑定义和时序关系。(2) CPU与外设的速度不匹配,CPU的速度快,外设的速度慢。(3) 若不通过接口,而由CPU直接对外设的操作实施控制,会使CPU处于穷于应付与外设打交道之中,大大降低CPU的效率。(4) 若外设直接由CPU控制,会使外设的硬件结构依赖于CPU,对外设本身的发展不利。 功能:1)设置数据缓冲以解决两者速度差异带来的不协调问题。2)实现信号电平的转换。3)实现信号格式的变换。4)实现CPU对I/O端口进行寻址。5)提供联络信号,实现CPU与外设之间同步工作。 4.在微机系统中,缓冲器和锁存器各起什么作用? 答:锁存器广泛用于计算机与数字系统的输入缓冲电路,其作用是将输入信号暂时寄存,等待处理,这一方面因为计算机或数字系统的操作都是有序进行的,通常不可能信号一到即刻处理,另一方面,也可防止输入信号的各个位到达时间不一致造成竞争与险象。 锁存器就是把当前的状态锁存起来,使CPU送出的数据在接口电路的输出端保持一段时间锁存后状态不再发生变化,直到解除锁定。还有些芯片具有锁存器,比如芯片74LS244就具有锁存的功能,它可以通过把一个引脚置高后,输出就会保持现有的状态,直到把该引脚清0后才能继续变化。 缓冲寄存器又称缓冲器,它分输入缓冲器和输出缓冲器两种。前者的作用是将外设送来的数据暂时存放,以便处理器将它取走;后者的作用是用来暂时存放处理器送往外设的数据。有了数控缓冲器,就可以使高速工作的CPU与慢速工作的外设起协调和缓冲作用,实现数据传送的同步。由于

缓冲器接在数据总线上,故必须具有三态输出功能。 5.简述在微机系统中,DMA控制器从外设提出请求道外设直接将数据传送到存储器的工作过程。 答:在采用DMA方式进行数据传输时,当然也要利用系统的数据总线、地址总线和控制总线。系统总线原来是由CPU控制管理的。在用DMA方式进行数据传输时,DMAC向CPU发出申请使用系统总线的请求,当CPU同意并让出系统总线控制权后,DMAC接管系统总线,实现外设与内存之间的数据传输,传输完毕,将总线控制权交还给CPU。DMAC是一个专用接口电路。 6.请根据自己的理解,说明为什么中断方式下CPU的工作效率比查询方式高? 答:查询方式下,CPU通过数据总线不断读取外设状态,直至外设准备好才能进行下一步工作。如果外设较慢,CPU将耗费大量的时间在查询操作上。在中断方式下,CPU通过INTR等特殊引脚来随时接收外设状态。如果外设未就绪,CPU将执行其他操作,而并不等待外设就绪,因而效率高。 7.简述PC/XT机中对INTR实现屏蔽的两种方法。 答:对中断屏蔽方式,CPU在任何时候都可以安排一条清除中断标志指令(CLI),将中断标志位清“0”,从此以后,CPU将禁止所用的由INTR端引入的可屏蔽中断请求。这是由CPU自己完成的中断屏蔽功能,它只能对所有的可屏蔽中断一起进行屏蔽,而无法有选择地对某一级或某几级中断进行屏蔽。这种屏蔽操作可由8259A通过中断屏蔽寄存器来实现。 8.简要说明PC系统中中断类型码、中断向量、中断向量表的特点及关系。 答:8086系统有256个中断类型码,定义为00H-FFH;每个中断类型码对应的中断向量为4字节,即中断服务程序入口地址CS的段值(2字节)IP(2字节),256个中断类型需要1024个存储单元存放它的中断向量;8086系统定义在存储器地址空间00000H-003FFH存放256个中断类型码的中断向量且规定中断向量IP存放在低地址单元,中断向量CS放在高地址单元。 9.简述NMI和INTR中断的异、同点。 答:NMI不能被IF禁止,其中断矢量号由系统固定分配;INTR能被IF 禁止; 外部中断一般可分为非屏蔽中断和可屏蔽中断。对于非屏蔽中断,cpu直接在对应的中断向量表中取得中断入口地址,执行中断处理程序。而对于可屏蔽中断,一般是用8259A等中断管理器来管理。cpu从中断管理器中得到一个中断请求时,会去检查一下中断允许标志IF,若IF为1则取出中断类型码,从中断向量表中取得中断入口地址,执行中断处理程序。若IF为0,cpu将不响应外部提出的中断请求。 10.一般来说中断的处理过程有哪几步? 答:(1)中断请求;(2) 中断响应;(3)断点保护;(4)中断源识别;(5)中断服务;(6)断

点恢复;(7)中断返回。 11.在中断服务程序中,为什么要保护现场和恢复现场? 答:为了使子程序调用之后顺利返回主程序继续运行,调用子程序也是响应中断的一个目的,假如不保护现场,在调用完子程序之后可能无法返回主程序继续运行,轻则运行结果出错,重则程序瘫痪,保护现场一般都是使用堆栈进行保护工作,对应的命令有push 和pop ,两个命令一定要对应。 12.简述可编程中断控制器8259A的主要功能。 答:可编程中断控制器8259A具有自动提供中断类型码和屏蔽各外设中断请求的能力。(1)1片8259A 能管理8级中断,通过级联用9片8259A可构成64 级主从式中断系统。(2)每一级中断均可以屏蔽。(3)在中断响应周期,8259A 可提供相应的中断向量。(4)可编程使8259A 工作在多种不同的方式。 13.某系统中有3 片8259 A 级联使用,1 片为8259 A 主片,2 片为8259A 从片,从片接入8259A主片的IR2和IR5端,并且当前8259A 主片的IR3 及两片8259 A 从片的IR4 各接有一个外部中断源。中断类型基号分别为80H、90H、0A0H,中断入口段基址在2000 H,偏移地址分别为1800H、2800H、3800H,主片8259A 的端口地址为0CCF8H、0CCFAH。第一片8259A 从片的端口地址为0FEE8H、0FEEAH,第二片8259A从片为0FEECH 、0FE EEH。中断采用电平触发,完全嵌套工作方式,普通EOI 结束。 (1)画出硬件连接图。 (2)编写初始化程序。(此题答略) 习题七 一、选择题 1.用8255的PA口接一个矩阵键盘,最多可识别( C )个按键。 A.4 B.8 C.16 D.32 2.由(D )引脚的连接方式可以确定8255的端口地址。 ,CS B.WR、A0 C.A0、A1 D.A0、A1、CS A.RD3.若8255A接口芯片的A口工作在方式2时,则B口可以工作在(D )。 A.方式0 B.位控方式 C.方式2 D.方式0或方式1 4.8255A的B端口设置为方式1输出,其ACKB收到一个负脉冲说明( C )。 A.CPU已将一个数据写到B端口 B.请求CPU送下一个数据

C.外设已将数据由B端口取走 D.INTRB上的中断请求已被CPU响应 5.可编程定时/计数芯片8253的共有(C)种工作方式。 A.4 B.5 C.6 D.7 6.8253定时/计数器可实现定时,若输入时钟周期为Ti,计算器预置值为N,则定时时间的计算公式为(A )。 A. N×Ti /N C.1/(Ti×N) D. N/Ti 7.在8253的以下4种工作方式中,GATE保持高电平,处于(B )的8253在写入初值以后也不开始定时或计数。 A.方式0 (计数结束中断) B.方式3(方波发生器) C.方式2(频率发生器) D.方式1(可编程单脉冲) 8.采用异步串行方式发送具有8个数据位的字符,使用1个奇偶校验位和2个停止位。若每秒发送100个字符,则其波特率为(A )Band。 A.1200 B.1100 C.1000 D.800 9.同步串行通信传输信息时,其特点是(B )。 A.通讯双方必须同步 B.每个字符的发送不是独立的 C.字符之间的传输时间长度可不同 D.字符发送速率由数据传送率确定 10在数据传输率相同的情况下,又可以说同步字符传输速度要高于异步字符传输,其原因是(B )。 A.发生错误的概率少 B.附加位信息总量少 C.双方通讯同步 D.字符之间无间隔 11 一个8位D/A转换器,采用双极性电压输出电路,当VREF = +5V时,输出电压为-5V~+5V,当输出为0V时,对应输入的8位数据( C )。 A.00H B.0FFmV C.80H D.0C0H 12一个4位的D/A转换器,满量程电压为10V,其线性误差为±1/2LSB。当输入为0CH时,其输出为( C )。 A.+10V B.-10V C.8.00V D.7.00V 13设被测温度的变化范围为0~100摄氏度,要求测量误差不超过0.1摄氏度,则应选用的A/D转换器的分辨率至少应该为(C )位。 A.4 B.8 C.10 D.12 14 已知一个8位A/D转换电路的量程是0~6.4V,当输入电压为5V时A/D转换值为( D )。 A.00H B.64H C.7DH D.0C7H 15一个10位A/D转换器,若基准电压为10V,该A/D转换器能分辨的最小电压变化是

( C )。 A.2.4mV B.4.9mV C.9.8mV D.10mV 二、判断题 1.通过对8255A进行初始化编程,可使其三个端口都工作在双向I/O方式下。(×) 2.8255A工作于方式2时,A口、B口均做为双向数据传送端口,C口各位作为它们的 应答控制线。(×) 3.8255A有两类控制字。一类是方式选择控制字,一类是置位/复位控制字。√ 4.8255A的C口是双向输入/输出口并具有三种工作方式。分别为方式0、方式1和方 式2。(×) 5.一片8253定时/计数芯片中有3个互相独立的16位加法计数器。(×) 6.微机系统主要有两种方法来实现定时功能,一种是软件定时,一种是可编程的硬件定时。8253就是完成硬件定时功能的可编程芯片。√ 7.8253有六种不同的工作方式,其中工作方式2为比率发生器,工作方式3为方波产生器,这两种工作方式是应用最为广泛的。(√) 8.异步串行通讯的基本特征是:以字符为单位,传输是字符间异步,字符内同步。(√) 9.串行接口中串行的含义是指接口与外设之间数据是串行的,而接口与CPU之间的数据交换是并行的。(√) 10.数据的串行I/O方式是以字节为单位进行传送。(×) 11.逐次逼近式A/D转换器对不同的模拟量输入需要不用的转换时间。( √ ) 12.在满量程相同的情况下,A/D转换芯片的位数愈高则转换分辨率愈高。( √ ) 13.ADC0809可对8路模拟信号同时进行A/D转换。(× ) 14.ADC0809只能通过转换结束信号EOC,利用中断或查询方式实现对模拟量的采集。(× ) 15.D/A转换器在输入一个数字量后可以立即得到相应的模拟量。(× ) 16.DAC0832工作于单缓冲方式时部分控制线可控。(√ ) 三、填空 1.从8255PC口读出数据至总线上时,8255的引脚CS,A1,A0,RD,WR的电平高 低依次是 , , , , 。 ①低 ②高 ③低 ④低 ⑤高 2.INTEL 8255A的端口C的按位置位/复位功能的控制字写入 控制字 端口。 3.INTEL 8255A工作在方式0时,端口A、B、C的输入/输出可以有 16 种组合。

4.若8253的某计算器输入参考时钟周期为Ti,计算机初期为N,则能够实现的定时长度(Tx)计算式为____;如果要实现周期性定时,8253必须工作在方式____。 ①Tx=Ti*N ②2或3 5.若使8253输出方波的周期最大,所送的初值为_65535 。 6.设8253计数器的时钟输入频率为1MHZ,为产生200HZ的方波输出信号,应向计数器装入的计数初始值为 5000_。 7.串行通信协议分为串行异步通信协议和__串行同步通信协议___。 8.在串行异步通信时,传送端和接收端的波特率设置应_相同(或一致)____。 9.串行通信根据其连接方式的不同可分为单工、_半双工串行通信_和全双工串行通信 等三种。 10.由于DAC0832内部有两个可独立控制的数据寄存器,因而可根据需要连接成( ①直通 )方式,( ② 单缓冲 )方式和双缓冲方式。 11一个计算机控制的温度检测系统,设温度变化范围为0°C~100°C,检测精度为0.05°C,应选用( 12 )位A/D转换器。 12某控制系统要求模拟控制信号的分辨率必须达到1‰,则D/A转换器的位数至少是( 10 )位。 四、简单题 1. 什么是并行接口,它有什么作用? 并行接口——是在多根数据线上,数据以字节或字为单位与输入/输出设备或控制对象传送信息的。实际应用中,凡是在CPU与外设之间同时需要两位以上信息传送时,主要采用并行接口,并行接口适用于近距离、高速度的场合。 2. 简述8255A的作用和特性。 答:8255A芯片内部包含三个8位端口,可以选择作为输入或输出,其中:端口A包含 一个8位数据输出锁存/缓冲器和一个8位数据输入锁存器;端口B包含一个8位数据输入/输出、锁存/缓冲器和一个8位数据输入锁存器;端口C包含一个输出锁存/缓冲器和一个输入缓冲器。必要时可以将端口C的高4位和低4位分开使用,分别作为输入或输出。当端口A和端口B作为选通输入或输出的数据端口时,端口C的指定位与端口A和端口B配合使用,用做控制信号或状态信号。 特性:(1) 8255A是一个具有两个8位(A和B口)和两个4位(C口高/低四位),最多可达24位的并行输入输出端口的接口芯片,它为Intel系列CPU与外部设备之间提供TTL电平兼容的接口,如打印机、A/D、D/A转换器、键盘、步进电机以及需要同时两位以上信息传送的一切形式的并行接口。并且它的PC口还具有按位置位/复位功能,为PC口作为联络信号时的按位控制提供了强有力的支持。 (2) 8255A能适应CPU与I/O接口之间的多种数据传送方式的要求。如无条件传送,应答方式(查询)传送,中断方式传送,与此相应,8255A设置了方式0、方式1以及方式2(双向传

送)。 (3) 8255A可执行功能很强,内容丰富的两条命令(方式字和控制字)为用户如何根据外界条件(I/O设备需要哪些信号线以及它能提供哪些状态线)来使用8255A构成多种接口电路,为组建微机应用系统提供了灵活方便的编程环境。它不仅作为并行接口用于Intel公司的CPU 系列,还可用于其他几乎所有CPU以及单片机。是一种名付其实的通用并行接口芯片。8255A执行命令过程中和执行命令完毕之后,所产生的状态,保留在状态字中,以供查询。 (4) 8255A PC口的使用比较特殊,除作数据口外,当工作在1方式和2方式时,它的部分信号线被分配作专用联络信号;PC 口可以进行按位控制;在CPU取8255A状态时,PC口又作1,2方式的状态口用等等。这是使用8255的难点所在,学习时要特别予以注意。 (5) 8255A芯片内部主要由控制寄存器、状态寄存器和数据寄存器组成,因此,以后的编程主要也是对这三类寄存器进行访问。 3.简述8255A工作在方式1时,A组端口和B组端口工作在不同状态(输入或输出) 时,C端口各位的作用。 ① 方式1下A口、B口均为输出 为了使A口或B口工作于方式1下,必须利用C口的6条线作为控制和状态信号线。控制字格式和连线图如教材所示,在方式1下用A口或B口输出时,所用到的C口线是固定不变的,A口使用PC3、PC6和PC7,而B口使用PC0、PC1和PC2。 ②方式1下A口、B口均为输入 与方式1下A、B两口均为输出类似,为实现选通输入,同样要利用C口的信号线。其控制字格式和连线图如教材所示。 ③混合输入与输出 在实际应用中,8255A端口A和端口B也可能出现一个端口工作于方式1输入,另一个工作于方式1输出的情况,例如如下两种情况: 端口A为输入,端口B为输出时,其控制字格式和连线图如教材所示。 4.假设8255A的端口地址为60H~63H,试编写下列情况下的初始化程序: (1)将A口、B口设置成方式0,A口和C口为输入口,B口为输出口。 MOV MOV OUT AL,10011001B ;控制字送AL DX,0063H ;8255A控制字寄存器地址送DX DX,AL ;控制字送8255A的控制寄存器 (2)将A口设置成方式1输入,PC6、PC7输出;B口设置成方式1输入。 MOV AL,10110110B MOV OUT ;控制字送AL DX,0063H ;8255A控制字寄存器地址送DX DX,AL ;控制字送8255A的控制寄存器

5.可编程定时/计数器8253有3个独立的计数通道。 (1)若输入时钟周期为T,则一片8253可实现的最大定时时间是多少?(216×216×216 T)。 (2)8253用作定时器和用作计数器是有何不同? 8253作为定时器时CLK端输入固定频率的标准时钟;用作计数器时输入未知频率的任意脉冲。 6.以PC机的定时/计数器8253为例,简单说明8253的定时原理(提示:计数初值N与时钟CLK的关系)。 答:8253具有3个独立的计数通道,采用减1计数方式。在门控信号有效时,每输入1个计数脉冲,通道作1次计数操作。当计数脉冲是已知周期的时钟信号时,计数就成为定时。定时时间=计数初值N×时钟CLK的周期T。 7.比较串行通信与并行通信的优缺点。 答:并行传输特点:(1)传输速度快:一位(比特)时间内可传输一个字符;(2)通信成本高:每位传输要求一个单独的信道支持;因此如果一个字符包含8个二进制位,则并行传输要求8个独立的信道的支持;(3)不支持长距离传输:由于信道之间的电容感应,远距离传输时,可靠性较低。 串行传输特点:(1)传输速度较低,一次一位;(2)通信成本也较低,只需一个信道。 (3)支持长距离传输,目前计算机网络中所用的传输方式均为串行传输。 串行数据传输时,数据是一位一位地在通信线上传输的,先由具有几位总线的计算机内的发送设备,将几位并行数据经并--串转换硬件转换成串行方式,再逐位经传输线到达接收站的设备中,并在接收端将数据从串行方式重新转换成并行方式,以供接收方使用。串行数据传输的速度要比并行传输慢得多,但对于覆盖面极其广阔的公用电话系统来说具有更大的现实意义。并行通信传输中有多个数据位,同时在两个设备之间传输。发送设备将这些数据位通过对应的数据线传送给接收设备,还可附加一位数据校验位。接收设备可同时接收到这些数据,不需要做任何变换就可直接使用。并行方式主要用于近距离通信。计算机内的总线结构就是并行通信的例子。这种方法的优点是传输速度快,处理简单。 8.什么叫同步工作方式?什么叫异步工作方式?那种工作方式的效率更高?为什么? 答:异步方式:不发送数据时,数据信号线总是呈现高电平,称为 MARK 状态,也称空闲状

态。当有数据要发送时,数据信号线变成低电平,并持续一位的时间,用于表示字符的开始,称为起始位。起始位后,在信号线上依次出现待发送的每一位字符数据,最低有效位D0 最先送出,根据不同编码,有效数据位可由 5 位、6 位、7 位或 8 位构成,数据位后面有一个奇偶校验位,校验位后至少有一位高电平表示停止位,用于指示字符的结束。由此可见,异步方式发送一个 7 位的 ASCII 码时,实际需发送 10 位、10.5 位或 11 位信息,故影响传输效率。 同步方式:没有数据传送时,传输线处于 MARK 状态,为了表示数据传输的开始,发 送方式发送一个或两个特殊字符,称为同步字符。当发送法和接收方达到同步后,就可以一个字符接一个字符发送一大块数据,不再需要用起始位和停止位了,这样就可以明显的提高数据的传输速率。同步方式传送数据时,在发送过程中,收发双发还必须用同一个时钟进行协调,用于确定串行传输中每一位的位置。接收数据时,接受方可利用同步字符将内部时钟与发送方保持同步,然后将同步字符后面的数据逐位移入,并转换成并行格式,供 CPU 读取,直至收到结束符为止。 异步通信要求每个字符都有附加起始位和停止位来使通信双方同步,使得附加控制信息较多,所以异步通信效率较低。因此异步通信适合于信息量不太大,要求传输速度不太高的场合。同步通信的传送速度高于异步通信。但它要求收发双方的时钟必须保持完全的同步,因此对硬件要求较高,必须配备专用的硬件电路获得同步时钟。同步通信一般用于传送信息量大、速度要求高的场合。 9.用图表示异步串行通信数据的位格式,标出起始位、停止位和奇偶校验位,在数字位上标出数字各位发送的顺序。 答:略(参见教材P266)。 10.若8251A的端口地址为FF0H、FF2H,要求8251A工作于异步工作发送,波特率因子为16,有7个数据位,1个奇校验位,1个停止位,试对8251A进行初始化编程。 D0: REVTIME MACRO MOV CX,02 LOOP D0 ENDM MOV DX,FF2H ;控制口地址 MOV AL,00H OUT DX,AL ;向控制口写入“0” REVTIME ;延时,等待写操作完成 OUT DX,AL ;向控制口写入第二个“0” REVTIME ;延时 OUT DX,AL ;向控制口写入第三个“0” REVTIME ;延时 MOV AL,40H ;复位字 OUT DX,AL ;写入复位字

REVTIME MOV AL,01011010B 验; ;延时 ;方式字:波特率系数为16,7个数据位,1个停止位,奇校OUT DX,AL ;写入方式字 REVTIME ;延时 MOV AL,00010101B ;命令字:允许接受发送数据,清楚错误标志 OUT DX,AL ;写入命令字 11.什么是D/A转换器?有什么作用?举例说明。 答:一种将二进制数字量形式的离散信号转换成以标准量(或参考量)为基准的模拟量的转换器,简称 DAC,或者DA转换器; 最常见的数模转换器是将并行二进制的数字量转换为直流电压或直流电流,它常用作过程控制计算机系统的输出通道,与执行器相连,实现对生产过程的自动控制。数模转换器电路还用在利用反馈技术的模数转换器设计中。 12. 一个8位A/D转换器的分辨率是多少?若基准电压为5V,该A/D转换器能分辨的最小电压变化是多少?10位和12位呢? 1/(28-1);19.6078mv;1/(210-1);4.88mv;1/(212-1);1.22mv。 13. A/D转换器与CPU之间采用查询方式和采用中断方式下,接口电路有什么不同? 答:查询方式下,是将ADC接口到CPU总线,并采用查询法检测转换结束标志。 中断方式下,是用转换结束的EOC输出去请求CPU中断,由中断服务程序读取数据,这样更能充分的利用CPU的时间。 五、应用编程 1、8255与系统总线、模数转换器(ADC0809)的连续示意如题图所示。请编写相关的程序段,实现若下功能:通过8255控制外部模拟数据采集,共采集100次,并将这些数据依次存入数据段内以DATA为首址的单元中。

答:8255与系统总线、模数转换器(ADC0809)的连线示意如图2所示。请编写相关的程序段,实现以下功能:通过8255控制外部模拟数据采集,共采集100次并将这些数据依次存入数据段内以DATA为首址的单元中。 DATA DB 100 DUP(?) 数据段内的字节变量 .... MOV AL,1XXX1010B 8255方式控制字(8AH),B口方式0、输入,C口 上半部分输入、下半部分输出 OUT 73H,AL MOV CX,100 LEA DI,DATA MOV AL,0 ;PC2~0=0 OUT 73H,AL AGN:MOV AL,XXXXX110B ;PC1、PC2=1,启动ADC OUT 73H,AL NOP MOV AL,0 ;恢复PC1、PC2,准备下一次循环 OUT 73H,AL POLL: IN AL,72H ;查询:读C口(PC7=EOC) SHL AL,1 JNC POLL MOV AL,1 PC0=1,输出使能 OUT 73H,AL IN AL,71H ;读B口 MOV [DI],AL MOV AL,0 ;PC0=0,准备下次循环 OUT 73H,AL INC DI LOOP AGN 2、如图所示,8255的PA口与8个发光二极管相连接,PB口与8个DIP开关相连接。请编写初始化程序段,并编程序段以查询方式实现以下功能:当8个DIP开关中某个按键闭合,则PA口对应号码的发光二极管被点亮。(不考虑抖动)

答:设8255的A口、B口、C口及控制口地址分别为PortA、PortB、PortC、PortCon。 MOV AL,1000X01XB 初始化8255,A口方式0输出,B口方式0输入 OUT PortCon,AL IN AL,PortB ;读入按键状态 OUT PortA, AL ;设置LED状态 3、某微机系统用串行方式接收外设送来的数据,再把数据送到CRT去显示,若波特率位1200,波特率因子为16,用8253产生收发时钟,系统时钟频率为5MHZ,收发数据个数为COUNT,数据存放在以BUFFER为首地址的内存单元中。8253和8251A的基地址分别为300H和304H。 (1)画出系统硬件连线图 (2)编写8253和8251A初始化程序 (3)编写接收数据和发送数据的程序。(答略) 4、由8253定时/计数器,DAC0832D/A转换器构成微机接口电路,设D/A转换器占用端口地址为27CH,8253端口地址为278H~27BH,要求微机在执行另一主程序的同时,领用上述接口电路形成波形发生器,每10毫秒从内存BUFFER依次取一字节,送D/A输出,直至送出1000字节。要求: (1)用门电路和74LS138译码器设计出图中的地址译码器。 (2)在下列程序中给有分号的语句后加注释。 STACK SEGMENT PARA STACK “STACK” DB 256 DUP(?) STACK ENDS DATA SEGMENT BUFFER DB 00,0AH,0DBH,……..,01H BUFSIZE EQU $$-BUFFER

COUNT DW 0 DATA ENDS CODE SEGMENT PUBLIC“CODE” START PROC FAR ASSUME CS:CODE,DS:DATA,SS:STACK PUSH DS XOR AX,AX PUSH AX MOV AX,DATA MOV DS,AX CLI MOV AX,0 MOV ES,AX MOV DI,24H MOV AX,OFFSET TIMEINT CLD STOSW MOV AX,SEG TIMEINT STOSW IN AL,21H AND AL,0111 1111B OUT 21H,AL ;……..要求编写的8253初始化的程序段 STI …;要执行的其他主程序, RET START ENDP TIMEINT PROC FAR …;要求编制的中断服务程序 TIMEINT ENDP CODE ENDS END START (3)编写8253的初始化程序段。 (4)编写中断服务程序。(请加必要的注释说明) 答:(1)用门电路和74LS138译码器设计出图中的地址译码器。(答略)(2)在下列程序中有分号的语句后加注释。 BUFFER DB 00,0AH,0DBH,……,01H 波形幅度值 MOV AX,0 MOV ES,AX ;设置中断向量表的段基址 MOV DI,24H ;设置中断向量表中的偏移地址 MOV AX,OFFSET TIMEINT ;将定时中断向量中的偏移地址放入向量表 CLD STOSW MOV AX,SEG TIMEINT ;取定时中断向量中的段基址放入向量表 STOSW

大连微网站开发