微型计算机原理与应用习题集及答案_第1页
微型计算机原理与应用习题集及答案_第2页
微型计算机原理与应用习题集及答案_第3页
微型计算机原理与应用习题集及答案_第4页
微型计算机原理与应用习题集及答案_第5页
已阅读5页,还剩77页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

微型计算机原理与应用习题集目录TOC\o"1-5"\h\z\o"CurrentDocument"第1章概述 1\o"CurrentDocument"第2章计算机中的数制与编码 2\o"CurrentDocument"第3章微处理器及其结构 4\o"CurrentDocument"第4章8086/8088CPU指令系统 9\o"CurrentDocument"第5章汇编语言程序设计 16\o"CurrentDocument"第6章存储器系统 27\o"CurrentDocument"第7章中断技术 30\o"CurrentDocument"第8章输入/输出接口技术 36\o"CurrentDocument"第9章串行通信技术及其接口芯片 41模拟试题(一) 错误!未定义书签。参考答案 错误!未定义书签。模拟试题(二) 错误!未定义书签。参考答案 错误!未定义书签。模拟试题(三) 错误!未定义书签。参考答案 错误!未定义书签。河南理工大学2006-2007学年第1学期 错误!未定义书签。参考答案 错误!未定义书签。近年来某高校硕士研究生入学试题 错误!未定义书签。参考答案 错误!未定义书签。近年某高校研究生入学考试试题 错误!未定义书签。参考答案 错误!未定义书签。近年某高校攻读硕士学位研究生试题 错误!未定义书签。参考答案 错误!未定义书签。第1章概述一、填空题.电子计算机主要由上型巡、控制器、存储器、输入设备和输出设备等五部分组成。.运算器和控制器集成在一块芯片上,被称作CPU。.总线按其功能可分数据总线、地址总线和控制总线三种不同类型的总线。.计算机系统与外部设备之间相互连接的总线称为系统总线(或通信总线);用于连接微型机系统内各插件板的总线称为系统内总线(板级总线):CPU内部连接各寄存器及运算部件之间的总线称为内部总线。.迄今为止电子计算机所共同遵循的工作原理是程序存储和程序控制的工作原理。这种原理又称为冯•诺依曼型原理。二、简答题.简述微处理器、微计算机及微计算机系统三个术语的内涵。答:微处理器是微计算机系统的核心硬件部件,它本身具有运算能力和控制功能,对系统的性能起决定性的影响。微处理器一般也称为CPU:微计算机是由微处理器、存储器、I/O接口电路及系统总线组成的裸机系统。微计算机系统是在微计算机的基础上配上相应的外部设备和各种软件,形成一个完整的、独立的信息处理系统。三者之间是有很大不同的,微处理器是微型计算机的组成部分,而微型计算机又是微型计算机系统的组成部分。.什么叫总线?为什么各种微型计算机系统中普遍采用总线结构?答:总线是模块与模块之间传送信息的一组公用信号线。总线标准的建立使得各种符合标准的模块可以很方便地挂在总线上,使系统扩展和升级变得高效、简单、易行。因此微型计算机系统中普遍采用总线结构。.微型计算机系统总线从功能上分为哪三类?它们各自的功能是什么?答:微型计算机系统总线从功能上分为地址总线、数据总线和控制总线三类。地址总线用于指出数据的来源或去向,单向:数据总线提供了模块间数据传输的路径,双向;控制总线用来传送各种控制信号或状态信息以便更好协调各功能部件的工作。第2章计算机中的数制与编码一、填空题.写出下列原码机器数的真值;若分别作为反码和补码时,其表示的真值又分别是多少?⑴(01101110)二进制原的=(+1101110)二进制真值=(+110)卜进制真值(01101110)进制反码=(+1101110):进制其值=(+110)I进制真值(01101110)进制补码=(+1101110):进制我值=(+110)卜进制真值⑵(10110101)进制原码=(-0110101).进制衣值=(-53)卜进制式值(10110101)进制反码=(11001010)进制在值=(-74)十选制真值(10110101)进制补。产(—1001011)进制出值=(-75)上进制出值.写出下列二进制数的原码、反码和补码(设字长为8位)。)(+1010110)X值=(01010110)»«=(01010110)反用=(01010110加)(-1010110)18*1^=(11010110)到1=(10101001)反网=(10101010),网[X]*=78H,贝|J[-X]朴=(88)Ho下面各二进制数分别代表原码、反码和补码时,其等效的十进制数值为多少?(11111111):进制版西=(—127)样制真值(11111111)进制反码=(-0)t•进制衣值(11111111) :进制*n=(-1)J3》1女位(10000000):进制kip产(+0)laMrttn(10000000)进制反p产(—127)।aitijftffi(10000000):进制,例=(-128)laMftffl知Xl=+0010100,Yl=+0100001,X2=-0010100,Y2=-0100001,试计算下列各式(设字长为8位)。(1)[Xi+YiN=[Xi]»+[¥|]»=00010100+00100001=00110101[X|-Y2]tt=[X|]»+[-Y2]«.=00010100+00100001=00110101[X2-Y2]tt=PC2]»+[-Y2]»=11101100+00100001=00001101[X2+Y2]tt=[X2]»+[Y2]#=11101100+11011111=11001011.将下列十六进制数分别转换成二进制、八进制、十进制和BCD数。(5D.BA)|6=(0101,1101.1011,1010)2=(135.564)8=(93.7265625)=(1001,0011.0111,0010,0110,0101,0110,0010,0101)BCD(1001.0101,1)2=(9.34375)i0=(11.26)8=(9.58)16=(1001.0011,0100,0011,0111,0101)BCD.写出下列字符的ASCH码。⑴9=(39H)ascii码(2)'C'=(43H)asciiw(3)=(24H)ascii码(4)‘空格'=(20H)ascu用(5)b=(62H)ascii码(6),回车,=(ODH)asciiH⑺‘换行'=(0AH)ascii(8)'报警符'=(07H)ASCII四二、选择题.下列无符号数中最小的数是(A)。A.(01A5)hB.(1,1011,0101)bC.(2590)DD.(3764)O.下列有符号数中最大的数是(D)。A.1002HB.1001001100101100BC.25700D.9614D.在机器数(A)中,零的表示形式是唯一的。A.补码B.原码C.补码和反码 D.原码和反码.8位二进制数补码的数值表示范围为(A)。A.-128~+127 B.-127~+127C.-129〜+128D.-128〜~F128

.若下列字符码(ASCII)中有奇偶校验位,但没有数据错误,采用偶校验的字符码是(D)。C.11000001D.11001001B.带符号数C.11000001D.11001001B.带符号数一71的补码D.带符号数一57的原码.B9H可以看成(ABD)。A.无符号数185C.卜进制数99的组合BCD码第3章微处理器及其结构一、填空题8086/8088CPU执行指令中所需操作数地址由.EU计算出16位偏移量部分送BIU,由@1最后形成一个工位的内存单元物理地址。8086/8088CPU在总线周期的Ti时刻,用A19/S6〜AWS3输出20位地址信息的最高工位,而在其他时钟周期,则输出信息。8086/8088CPU复位后,从0FFFF0H单元开始读取指令字节,一般这个单元在ROM区中,在其中设置一条跳转指令,使CPU对系统进行初始化。8086系统的存储体系结构中,1MB存储体分_2_个库,每个库的容量都是512K字节,其中和数据总线D”〜Da相连的库全部由奇地址单元组成,称为高位字节库,并用©巫作为此库的选通信号。8086/8088系统中,可以有64K个段起始地址,任意相邻的两个段起始地址相距16个存储单元。用段基值及偏移量来指明内存单元地址的方式称为逻辑地址。通常8086/8088CPU中当EU执行一条占用很多时钟周期的指令时,或者在多处理器系统中在交换总线控制时会出现eiL状态。8086CPU使用」或根地址线访问I/O端口,最多可访问64K个字节端口,使用20根地址线访问存储单元,最多可访问1M个字节单元。CPU取一条指令并执行该指令的时间称为指令周期,它通常包含若干个上线_周期,而后者又包含有若干个时钟周期。二、单项选择题.某微机最大可寻址的内存空间为16MB,其CPU的地址总线至少应有(E)条。A.26B.28C.20D.22E.248086/8088CPU的RESET引脚至少应维持(A)个时钟周期的正脉冲宽度才能有效复位。A.4B.5C.2D.33.当RESET信号进入高电平状态时,将使8086/8088CPU的(D)寄存器初始化为OFFFFH。A.SSB.DSC.ESD.CS8086/8088CPU与慢速存储器或I/O接口之间进行数据传输,为了使传送速度匹配,有时需要在(C)状态之间插入若干等待周期TW。A.T1和T2B.T2和T3C.T3和T4D.随机8086/8088CPU中标志寄存器的主要作用是(D)。A.检查当前指令的错误 B.纠正当前指令执行的结果与错误C.决定是否停机 D.产生影响或控制某些后续指令所需的标志8086最小模式下的存储器读周期中地址锁存发生在总线周期的(A)时刻。A.T1B.T2C.T3D.T4指令指针IP的作用是(A)。A.保存将要执行的下一条指令的地址B.保存CPU要访问的内存单元地址C.保存运算器运算结果内容 D.保存正在执行的一条指令8086CPU有两种工作模式,最小模式的特点是(A)。A.CPU提供全部控制信号B.由编程进行模式设定C.不需要8282收发器 D.需要总线控制器8288三、简答题8086/8088CPU分为哪两个部分?如何协调工作?答:EU是执行部件,主要的功能是执行指令和形成有效地址。BIU是总线接口部件,与片外存储器及I/O接口电路传输数据,主要功能是形成实际地址、预取指令和存取操作数。EU经过BIU进行片外操作数的访问,BIU为EU提供将要执行的指令。EU与BIU可分别独立工作,当EU不需BIU提供服务时,BIU可进行填充指令队列的操作。8086/8088CPU的地址总线有多少位?其寻址范围是多少?答:8086/8088CPU的地址总线共20位,最大可寻址1MB空间。8086/8088CPU使用的存储器为什么要分段?怎么分段?答:8086/8088为16位CPU,其内部的ALU、相关的地址寄存器(如SP、IP以及BX、BP、SLDI)等都是16位的,因而对存储器地址的处理也只能是16位操作,即8086/8088的直接寻址能力在64KB范围内。而实际上8086/8088有20条地址线,它的最大寻址空间为1MB。这就产生了一个矛盾,即如何用16位的地址寄存器去表示一个20位的存储器物理地址?实际使用的解决办法是:将1MB大小的存储空间分为若干“段”,每段不超过64KB。这样,一个20位的物理地址就可以用“16位段基址:16位偏移量”的形式(称为逻辑地址)来表示了,其中段地址存放在8086/8088的段寄存器中。8086/8088CPU中有几个通用寄存器?有几个变址寄存器?有几个指针寄存器?通常哪几个寄存器亦可作为地址寄存器使用?答:8086/8088CPU中共有:8个16位的通用寄存器AX、BX、CX、DX、BP、SP、SkDI:2个变址寄存器SI、DI;2个指针寄存器BP、SP;其中BX、BP、SLDI亦可作地址寄存器。Intel8086与8088有何区别?答:8086与8088的区别主要表现在以下几个方面:第一、8086的指令队列可以容纳6个字节,每个总线周期在存储器中取出2个字节指令代码填入队列。而8088只能容纳4个字节,且每个总线周期只能取出1个字节指令代码。第二、8086外部数据总线宽度为16位,8088外部数据总线宽度只有8位。注意:8086和8088外部数据总线的宽度不同将导致扩展主存储器及输入/输出接口时系统地址线和数据线连接方式的不同。第三、其他不同的引脚定义:(1)ADis〜ADo,在8086中为地址/数据复用,而在8088中ADis〜ADk改为A15〜As只作地址线用:(2)34、28号引脚定义不同。8086/8088CPU工作在最小模式时:当CPU访问存储器时,要利用哪些信号?当CPU访问外设接口时,要利用哪些信号?答:8086/8088CPU工作在最小模式时,若访问存储器,需用到以下信号:M/7d、ALE、DT/R.DEN、READY、BHE.WR,RD.ADo〜AD15、A19/S6〜A16/S3。若访问外设,需用到以下信号:M/而、ALE、DT/R.DEN、READY、祢、而、ADo〜AD15。试指出下列运算后的各个状态标志,并说明进位标志和溢出标志的区别:(1)1278H+3469H答:CF=OAF=1ZF=OSF=OOF=0PF=154E3H-27A0H答:CF=OAF=OZF=OSF=OOF=0PF=O3881H+3597H答:CF=OAF=OZF=OSF=OOF=0PF=1O1E3H-O1E3H答:CF=OAF=OZF=1SF=OOF=0PF=1其中,进位标志CF用于判别无符号数运算是否超出数的表示范围,而溢出标志OF用于判别带符号数运算是否超出数的表示范围。奇偶标志PF只能判断结果低8位中力”的个数为奇数还是偶数。.什么是逻辑地址?什么是物理地址?它们之间有什么联系?各用在何处?答:逻辑地址由两个16位的部分即段基址和偏移量组成,一般在程序中出现的地址都表示为逻辑地址形式;物理地址是一个20位的地址,它是唯一-能代表存储空间每个字节单元的地址,一般只出现在地址总线上。由于8086/8088CPU中的寄存器只有16位长,所以程序不能直接存放20位的物理地址,而必须借助逻辑地址,即用两个16位的寄存器来表示物理地址。他们之间的关系是:物理地址=段基址*16+偏移量;另外,一个物理地址可对应多个逻辑地址。.设现行数据段位于存储器0B0000H〜0BFFFFH单元,DS段寄存器内容为多少?答:DS段寄存器内容为0B000H。.在8086中,逻辑地址、偏移地址、物理地址分别指的是什么?答:逻辑地址是在程序中对存储器地址的一种表示方法,由段基址和段内偏移地址两部分组成,都是16位的二进制代码,如1234H:0088Ho偏移地址是指段内某个存储单元相对该段首地址的差值。物理地址是8086芯片引线送出的20位地址码,物理地址=段基址*16+偏移地址,用来指出一个特定的存储单元。.给定一个存放数据的内存单元的偏移地址是20C0H,(DS)-0C0E0H,求出该内存单元的物理地址。答:物理地址:0C2EC0H».8086/8088为什么采用地址/数据引线复用技术?答:考虑到芯片成本和体积,8086/8088采用40条引线的封装结构。40条引线引出8086/8088的所有信号是不够用的,采用地址/数据线复用引线方法可以解决这一矛盾,从逻辑角度,地址与数据信号不会同时出现,二者可以分时复用同一组引线。.怎样确定8086的最大或最小工作模式?

答:引线MN/加的逻辑状态决定8086的工作模式,MN/加引线接高电平,8086被设定为最小模式,MN/应引线接低电平,8086被设定为最大模式。.8086基本总线周期是如何组成的?答:基本总线周期由4个时钟(CLK)周期组成,按时间顺序定义为Tl、T2、T3、T4。.在基于80口微计算机系统中,存储器是如何组织的?存储器是如何与处理器总线连接的?丽信号起什么作用?答:8086为16位微处理器,可访问1M字节的存储器空间;1M字节的存储器分为两个512K字节的存储体,分别命名为偶存储体和奇存储体;偶体的数据线连接D7~D0,“体选”信号接地址线A0;奇体的数据线连接D15〜D8,“体选”信号接丽信号:A0信号有效时允许访问偶体中的低字节存储单元,丽信号有效时允许访问奇体中的高字节存储单元,实现8086的低字节访问、高字节访问及字访问。.有一个由20个字组成的数据区,其起始地址为610AH1CE7H。试写出该数据区首末单元的实际地址PAo首单元地址:610A0H+1CE7H=62D87H末单元地址:62D87H+27H=62DAEH.有两个16位的字31DAH、5E7FH,它们在8086系统存储器中的地址为00130H和OO135H,试画出它们的存储器示意图。内容地址

00130H

00131H

00I32H

00133H

00134H

00I35H

00136H内容.试说明8086CPU的控制引脚ALE的作用。答:8086的低位地址线与数据线复用,为保证地址线维持足够的时间,需使用ALE信号将低位地址线通过锁存器保存,以形成系统地址总线。第4章8086/8088CPU指令系统一、判断题TOC\o"1-5"\h\z.MOVAX,[BP]的源操作数物理地址为16x(DS)+(BP)» (x).OUTDX,AL指令的输出是16位操作数。 (x).不能用立即数给段寄存器赋值。 (由.所有传送指令都不影响PSW寄存器的标志位。 (x).堆栈指令的操作数均为字。.段内转移指令执行结果要改变IP,CS的值。 (x)二、单项选择题.寄存器间接寻址方式中,操作数在(C)中。A.通用寄存器B.I/O端口C.存储单元 D.段寄存器.(A)寻址方式的跨段前缀不可省略。A.DS:[BP]B.DS:[SI]C.DS:[Di]D.SS:[BP].假设(SS)=2000H,(SP)=0012H,(AX)=1234H,执行PUSHAX后,(SP)=(C)oA.0014HB.0011HC.001OH D.000FH.用BP作基址变址寻址时,操作数所在的段是当前(C)。A.数据段B.代码段C.堆栈段D.附加段.已知(IP)=1000H,CF=0,则执行指令JNCShortlabel后,下列各数中哪一个是可能的IP值?(B)(A)OFFFFH(B)OFFEH(C)10FEH(D)1100H.执行下列指令后,(AX)=(A)。MOVAX,1234HMOVCL,4ROLAX,CLDECAXMOVCX,4MULexHLTA.8D00HB.9260HC.8CA0HD.0123H.设(AL)=-68,(BL)=86,执行SUBAL,BL指令后,正确的结果是(C).A.CF=1B.SF=1C.OF=1D.ZF=1.已知(SI)=0004H,(DS)=8000H,(80004H)=02H,(80005H)=C3H。指令LEAAX,[SI]执行后(AX)=(C)«A.0002HB.0005HC.0004HD.C302H.条件转移指令JNE的条件是(C)oA.CF=OB.CF=1C.ZF=OD.ZF=1.在8086中,(BX)=0282H,且题中指令已在指令队列中,则执行INCBYTEPTR(BX)指令需要的总线周期为(C)。A.0B.1 C.2D.3三、多项选择题.下列指令中源操作数使用寄存器寻址方式的有(BF)。A.MOVBX,BUF[Si] B.ADD[SI+50],BXC.SUBAX,2D.CMPAX,DISP[DI] E.MULVAR[BX] F.PUSHCX.将累加器AX的内容清零的正确指令是(BCD)。A.CMPAX,AXB.SUBAX,AXC.ANDAX,0D.XORAX,AX3.正确将字变量WORDVARR偏移地址送寄存器AX的指令是(CD)。A.MOVAX,WORDVARRB.LESAX,WORDVARRC.LEAAX,WORDVARRD.MOVAX,OFFSETWORDVARR4.调用CALL指令可有(ABDE)。A.段内直接B.段内间接C.短距离(SHORT)D.段间直接E.段间间接8086指令的操作数可能有(ABCD)。A.0B.1C.2D.3四、填空题.与指令MOVBX,OFFSETBUF功能相同的指令是LEABX,BUF。.假设(BX)=0449H,(BP)=0200H,(SI)=0046H,(SS)=2F00H,(2F246H)=7230H则执行XCHGBX,[BP+Sl]指令后,(BX)=7230H-.执行下列指令序列后,完成的功能是将(DX,AX)的值除以16。MOVCX,4NEXT:SHRDX,1RCRAX,1LOOPNEXT.已知(AL)=01011101B,执行指令NEGALB,再执行CBW后,(AX)=OFFA3H 、.在数据传送类指令中,只有SAHF和POPF两条指令会影响标志位的侑,其中指令POPF是唯一可以改变TF标志的指令。.设有100个字节数据(补码),存放在数据段中EA=2000H的存储单元中。以下程序应该从该数据区中找出最小的一个数据,并存入EA=2100H单元中,请将下面程序补充完整。MIN:MOVBX,2000HMOVAL,[BX]MOVCX,99LOOP1:INCBXCMPAL,[BX]JLELOOP2MOVAL,[BX]LOOP2:DECCXJNZLOOP1MOV[2100H],AL7.MOVAX,ES:[BX][SI]中,源操作数的物理地址计算式是(ES)>16+(BX)+(SI)。五、综合题I.请指出以下各指令的源、目的操作数所使用的寻址方式。MOVSI,21OOHSBBD1SP[BX],7AND[DI],AXORAX,[609EH]MOV[BX+DI+30H],CXPUSHES:[BP]CALLDISP[DI]答:(1)源操作数:立即数寻址;目的操作数:寄存器寻址(2)源操作数:立即数寻址;目的操作数:(带位移量的)基址寻址(3)源操作数:寄存器寻址;目的操作数:变址寻址(4)源操作数:直接寻址; 目的操作数:寄存器寻址(5)源操作数:寄存器寻址:目的操作数:(带位移量的)基址变址寻址(6)源操作数:带段超越的基址寻址;目的操作数:隐含寻址(7)只有一个操作数,为(带位移量的)变址寻址2.请指出下列各条指令的错误,并改正。(1)MOV[100],23H(2)ADDAX,[BX+BP+6](3)PUSHDL(4)INAX,[3FH](5)OUT3FFH,AL(6)LESSS,[SI]

(7)POP[AX](8)IMUL4CH(9)SHLBX,(10)INT300(11)XCHGDX,OFFFH(12)MOVAH,BX(13)MOV[BX],ES:AX(14)MOVAX,OFFSET[SI](15)MOVCS,AX(16)MOVDS,ES(17)MOVDS,1000H答:(1)不允许直接向段寄存器送立即数,可改为:MOVAX,1000HMOVDS,AX(2)该指令在语法上是对的,即可以把一个立即数送入一个存储单元;但是如果考虑实际编译,则第一操作数前应加上BYTEPTR或WORDPTR说明,否则汇编程序会因不能确定操作数长度而指示出错。可改为:MOVBYTEPTR[100],23H(3)不能同时使用两个基址寄存器BX、BP进行间接寻址,可改为:ADDAX,[BX+DI+6](4)堆栈操作应以字为单位进行,而DL是一个字节。可改为:PUSHDX(5)在输入/输出指令中,8位端口地址应直接写在操作数处。可改为:INAX,3FH(6)端口地址3FFH已超出8位二进制表示范围,16位端口地址应存于DX。可改为:MOVDX,3FFHOUTDX,ALLES指令的目操作数应该是通用寄存器,不能是段寄存器。可改为:LESAX,[SI]AX不能用于间接寻址,间接寻址只能用BX、BP、SLD1四个寄存器之一。可改为:POP[BX](9)立即数不能做乘法指令的操作数,可改为:MOVBL,4CHIMULBL(10)当逻辑移位的次数大于1时,应该用CL指示次数。可改为:MOVCL,MOVCL,5SHLBX,CL(11)操作数300>255,已超出有效的中断类型码范围。XCHG指令不允许立即数做它的操作数。可改为:MOV CX,OFFFHXCHG DX,CX(13)源、目的字长不一致(14)在8086寻址方式中,AX不能作为基址寄存器使用,而且源、目的不能同时为存贮器寻址方式OFFSET只用于简单变量,应去掉CS不能作为目的寄存器(17)段寄存器之间不能直接传送数据.设若标志寄存器原值为0A11H,(SP)=0060H,(AL)=4。下列几条指令执行后,标志寄存器、AX、SP的值分别是多少?PUSHFLAHFXCHGAH,ALPUSHAXSAHFPOPF答:指令执行后标志寄存器的值为0411H,AX=0411H,SP=005EHo.假如在程序的括号中分别填入指令:(l)LOOPL20LOOPNEL20LOOPEL20试说明在三种情况下,当程序执行完后,AX、BX、CX、DX四个寄存器的内容分别是什么?BEGIN:MOVMOVAX,01BX,02MOVDX,03MOVCX,04L20:INCAXADDBX,AXSHRDX,1()TOC\o"1-5"\h\z答案: (1)(AX) =5 (BX) =16 (CX)=0 (DX) =0(AX) =3 (BX) =7 (CX)=2 (DX) =0(AX) =2 (BX) =4 (CX)=3 (DX) =1.变量N1和N2均为2字节的非压缩BCD数码,请写出计算N1与N2之差的指令序列。答案:MOVAX,0MOVAL,N1SUBAL,N2AASMOVDL,ALMOVAL,N1+1SBBAL,N2+1AASMOVDH,AL.在已学的指令中,可实现累加器清0的单条指令有哪些?比较它们的功能。答:(1)MOVAX,0;仅将累加器清0,不会影响任何标志位SUBAX,AX;累加器清0的同时影响所有状态标志,具体地有:ZF、PF置1,CF、AF、SF、OF均清0ANDAX,0 ;将累加器清0,ZF、PF置1,CF、OF、SF清0XORAX,AX ;将累加器清0,ZF、PF置1,CF,OF、SF清0.已知(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的值分别是多少?MOVBX,OFFSETCOUNTMOVSI,[BX]MOVAX,COUNT[SI][BX]答:执行结果为(BX)=1200H,(SI)=1000H,(AX)=3040H。.设若内存单元DATA在数据段中偏移量为24C0H处,24C0H〜24c3H单元中依次存放着55H、66H、77H、88H。下列几条指令执行后,寄存器AX、BX、CL、SLDS的值分别是多少?MOVAX,DATALEASI,DATAMOVCL,[SI]LDSBX,DATA答:执行结果为(AX)=6655H,(BX)=6655H,(CL)=55H,(SI)=24C0H,(DS)=8877Ho.若(AX)=26D3H,(CX)=7908H,CF=1,执行下列指令后,寄存器AX、CX的值分别是多少?CF=?OF=?TOC\o"1-5"\h\zSAL CH, 1RCR AX, CLROL AL, 1答:执行结果为(AX)=0A64CH,(CX)=0F208H,CF=OF=0。.已知有程序段如下:MOVAL,35HMOVDL,ALANDDL,OFHANDAL,OFOHMOVCL,4SHRAL,CLMOVBL,10MULBLADDAL,DL执行之后,AL的值等于多少?该程序段完成了什么功能?答:程序段执行后(AL)=23Ho该程序段实现了将AL中的1个组合BCD码转换为十六进制数并存回AL中的功能。.下面的程序执行后,DX、AX的值分别是多少?;以X为首址的字单元中的数据依次为1234H、5678H;以Y为首址的字单元中的数据依次为8765H、4321HLEASI,XLEADI,YMOVDX,[SI4-2]MOVAX,XADDAX,XADCDX,[SI+2]CMPDX,[DI+2]JLL2CMPAX,YJLLIJMPEXITLI:MOVAX,1JMPEXITL2:MOVAX,2EXIT: 答:执行结果为(AX)=2,(DX)=0ACF0Ho.设VAR字单元的值为x,Fl字单元的值为y,试编程按以下要求给y赋值:.2 x>30y=y0 30>x>l1—2 x<l答:一种可能的程序段实现如下:MOVAX,VAR;AX<-xCMPAX,30JGPLUS2;x>30,则转PLUS2CMPAX,1JLMIN2;x<l,则转M1N2MOVFl,0 ; 30>x>l,y=0JMPGOPLUS2:MOVFl,2 ;y=2JMPGOMIN2:MOVFl,-2;y=-2或OOFEHGO:…… ;后续处理简析:本例中并未说明VAR字节单元是带符号数还是无符号数,读者在使用判断转移指令时可任意选用。若当作带符号数,应使用JG、JL、JGE、JLE等指令,如参考程序;若当作无符号数,则应使用JA、JB、JAE、JBE等指令。第5章汇编语言程序设计一、填空题.段定义伪指令语句用SEGMENT语句我乐开始,以ENDS语句仍指结束。.ARRAYDW10DUP(5DUP(4DUP(20H,40H,60H))语句执行后共占1200字节存储单元。.汇编语句中,一个过程有NEAR和FAR两种属性。NEAR属性表示主程序和子程序在同一个代码段中,FAR属性表示主程序和子程序不在同一个代码段中。.DOS系统功能号应放在AH寄存器中。.子程序又称过程,它可以由PROC语句定义,由ENDP语句结束,属性可以是NEAR或FAR。.假设VAR为数据段中已定义的变量,则指令MOVBX,OFFSETVAR中源操作数的寻址方式是立即数寻址 。二、选择题EXE文件产生在(D)之后。A.汇编B.编辑C.用软件转换D.连接.变量定义的伪指令助记符有(ABCEF).A.DBB.DWC.DDD.DFE.DQF.DT.主程序与子程序之间传递参数可通过(ABC)进行。A.堆栈B.存储器单元C.通用寄存器D.指令队列 E.其他.计算机系统软件中的汇编程序是一种(C)。A.汇编语言程序B.编辑程序C.翻译程序D.将高级语言转换成汇编程序的程序.若主程序段中数据段名为DATA,对数据段的初始化操作应为(B)。A.MOVAX,DATAB.MOVAX,DATAMOVES,AX MOVDS,AXC.PUSHDS D.MOVDS,DATA6.8086宏汇编源程序中,若BUFF是字变量名,则执行指令MOVBX,BUFF后,BX中的值为BUFF单元的(A)oA.字数据值B.变量类型值C.段基址D.段内偏移量三、综合题列标号为什么是非法的?(l)GET.DATA1_NUMTEST-DATARETNEWITEM答案:(1)因为T只允许是标号的第一个字符(2)第一个字符不能为数字(3)不允许出现一(4)不能是保留字,如助记符(5)不能有空格.已知数据和符号定义TOC\o"1-5"\h\zAl DB ?A2 DB 8KI EQU 100判断下列指令的正误,并说明错误指令的原因。(1)MOVKI,AXMOVA2,AHCMPAl,A2MOVBX,KIMOV[BX],DXK1EQU200答:(1)错误。KI是符号,在此处相当于立即数100,故不能做目的操作数。(2)正确。(3)错误。Al、A2都是字节变量,相当于两个存储器单元,故不能同时出现在一条指令中直接进行比较。(4)正确。(5)错误。用EQU定义的符号不能重新赋值,除非已用PURGE解除了原值。.若数据段中有定义NUM1EQU23HNUM2DW 0则指令MOVNUM2,NUM1的源、目操作数的寻址方式以及指令执行后NUM2+1单元的内容分别是什么?答:指令MOVNUM2,NUM1的源操作数使用立即数寻址,目的操作数使用直接寻址。指令执行后NUM2+1单元的内容是0。4.已知某数据段从物理地址03000H处开始,定义如卜.:DSEGSEGMENTORG2000HAlDD2DUP(7,1,?)A2DB10DUP(0,4,3DUP(2),5)CNTEQU20HA3DW100DUP(?)DSEGENDS请分别用分析运算符SEG、OFFSET.LENGTH.SIZE,TYPE求出Al、A2、A3的段基址、偏移量、类型及它们的LENGTH、SIZE。

地址VARI02H0006H答:(SEGAl)=0300H,(OFFSETAl)12H0007H=2000H,(TYPEAl)=4,0008H(LENGTHAl)=2,(SIZEAl)0009HVAR29AHOOOAH=2x3x4=24;56H0O0BH(SEGA2)=0300H,(OFFSETA2)・£0O0CH=2018H,(TYPEA2)=1,B'OOODH(LENGTHA2)=10,(SIZEA2)—=10x6x1=60;(SEGA3)=0300H,(OFFSETA3)=2054H,(TYPEA3)=2,(LENGTHA3)=100,(SIZEA3)=100x2=200(LENGTHA3)=100,(SIZEA3)=100x2=200.下面两个数据段中偏移地址为10H和11H的两个存储单元中的数据一样吗?DTSEGSEGMENTORG10HDTSEGSEGMENTORG10HDATA1DB72HDB04HDTSEGENDSDTSEGSEGMENTORG10HDATA1DW7204HDTSEGENDS为什么?答案:不一样。分别是72H,04H和04H,72H。存储字时低8位存在低字节,高8位存在高字节。.已知符号定义语句如下:TOC\o"1-5"\h\zALPHA EQU 100BETA EQU 25GAMMA EQU 2分别求下列各表达式的值。ALPHA*4GTBETAALPHAMODGAMMA+BETA(BETA/3)LE5ALPHAANDBETAGAMMAXOR(BETAEQ25)答:(1)ALPHA*4GTBETA=100*4GT25=OFFFFHALPHAMODGAMMA+BETA=100MOD2+25=25(BETA/3)LE5=(25/3)LE5=0ALPHAANDBETA=100AND25=64H&19H=0GAMMAXOR(BETAEQ25)=2㊉(25EQ25)=OFFFDH.已知数据段定义如下:DSEGSEGMENTORG6VARIDB2,18ORG$+2VAR2DW569AHCONTEQUS-VAR2DB'AB'DSEGENDS用示意图说明该数据段的分配情况。答:有关存储单元的内容如下图所示。.判断以下说法是否正确,如有错,请说明原因并改正。(1)伪指令在汇编过程中不会产生二进制代码。(2)宏和过程的相同之处是都可用于简化源程序书写、精简目标代码。(3)在计算机中,高级语言通常需要转换为汇编语言后才能执行。(4)汇编语言程序上机一般包括编辑、汇编、链接和调试几个步骤。答:(1)正确。 (2)错误。宏不能精简目标代码。(3)错误。高级语言程序经编译或解释后直接转换为目标代码。(4)正确。.执行下列指令后,AX寄存器中的内容是什么?TABLEDW10,20,30,40,50ENTRYDW3MOVBX,OFFSETTABLEADDBX,ENTRYMOVAX,[BX]答:(AX)=lE00.指出下列程序中的错误:STAKSGSEGMENTDB100DUP(?)STASGENDS

DTSEGSEGMENTDATA1DB?DTSEGENDCDSEGSEGMENTMAINPROCFARSTART:MOVDS,DATSEGMOVAL,34HADDAL,4FHMOVDATA,ALSTARTENDPCDSEGENDSEND答案:改正后:STAKSGSEGMENTDB100DUP(?)STAKSGENDSDTSEGSEGMENTDATADB?DTSEGENDSCDSEGSEGMENTMAINPROCFARASSUMECS:CDSEQDS:DTSEGSS:STAKSGSTART:MOVAX、DTSEGMOVDS,AXMOVAL,34HADDAL,4FHMOVDATA1,ALMOVAH,4cHINT21HMAIN ENDPCDSEGENDSENDSTART.请写出上述两条指令执行后,BX寄存器中的内容。DATASEGMENTTABLE_ADDRDW1234HDATAENDS।IMOVBX,TABLE_ADDRLEABX,TABLE_ADDR答案:MOVBX,TABLE_ADDR ;执行后(BX)=1234H

LEABX,TABLEADDR ;执行后(BX)=OFFSETTABLE_ADDR.读下面程序,在其中的空处添上适当内容。该程序完成了什么功能?程序运行后,变量RS的值是多少?DATABUFSEGMENTDB-13,24,5,-62DB77,20,-7,145,0CNTRSDATASTACKDB$-BUFDB0ENDSSEGMENTPARASTACKDB256DUP(?)STACKCODEENDSSEGMENTASSUMECS:CODE,DS:DATA,SS:STACKSTARTPROC FARPUSH DSMOV AX, 0PUSH AXMOV AX, DATAMOV DS, AXLEA BX, BUFMOV CH, 0MOVCL, LP:MOV AL,[BX]TEST AL,80HJE CONTINC RSCONT:INC BXLOOPLPRETSTARTCODEENDPENDSEND START答:程序空处可填CNT,字节变量RS的最后结果是04H。该程序实现的功能是:统计数据段中以BUF为首址的带符号字节数据表中负数的个数,CNT为表中所有数据的个数,即表的长度。需要注意的是:十进制数据“145”在以二进制带符号字节数据形式存放时相当于“-111”。.试编写一个汇编语言程序段,要求对键盘输入的小写字母用大写字母显示出来。答案:abc:mov ah,lint 21hcmp al,'a'jb stopcmp al,'z'ja stopsub al,20hmov dl,almov ah,2int 21hjmp abcstop: ret.编写程序,比较两个字符串STRING1和STRING2所含字符是否完全相同,若相同则显示“MATCH”,若不同则显示“NOMATCH”。答案:datareasegmentstring!db'asfioa'string2db'xcviyoaFmessldb'MATCH','$'mess2db'NOMATCH',、'datareaendsprognamsegmentmainprocfarassumecs:prognam,ds:datareastart:pushdssubax,axpushax ;返回DOSmovax,datareamovds,axmoves,ax ;赋初值begin:movex,string2-string1movbx,messl-string2cmpbx,cx ;比较两字符串的长度jnzdispnolea dx,addr;若长度相同23leasi,string1leadi,string2;地址指针赋初值repecmpsb;比较jnedispnomovah,9;相同,显示MATCHleadx,messlint21hretdispno:movah,9?不同,显示NOMATCHleadx,mess2int21hretmainendpprognamendsendstart.编写一个完整的源程序,将数据35、-27、-13、6、-47、52、9、-3中的正数放入以BUFFER为首址的数据缓冲区中。答:一种可能的程序如下实现:DATASEGMENTBLOCKDB 35,-27,一13,6,-47,52,9,-3COUNTEQU $-BLOCKBUFFERDB COUNTDUP(?)DATASTACKENDSSEGMENTPARASTACK'STACK'STACKCODEDW 40DUP(?)ENDSSEGMENTASSUMECS:CODE,DS:DATA,ES:DATA,SS:STACKBEGIN:MOVAX,DATAMOV DS,AXMOV ES,AX需用STOS串操作指令MOVCX,COUNTLEA SLBLOCK源数据区指针LEA DI,BUFFER正数存放区指针AGAIN:CLDLODSBTESTAL,80H自动增量取源数据,并修改SI取符号位,不影响ALGO:JS GOSTOSBLOOPAGAIN符号位=1,是负数,不存存正数并修改DIMOVAH,4CH退出循环,返回DOSCODEINT 21HENDSEND BEGIN

.从内存单元BUF开始的缓冲区中有7个8位无符号数,依次为13H、0D8H、92H、2AH、66H、OEOH、3FH。编程找出它们的中间值并放入RES单元,且将结果以“(RES)=?”的格式显示在辨幕上。答:一种可能的程序如卜实现:DATASEGMENTBUFDB13H,0D8H,92H,2AH,66H,OEOH,3FHRESDB?;中间数的存放单元STRDB€(RES)=,STRIDB9 9y;结果字符串DATAENDSSSEGSEGMENTPARASTACK'SSEG'DB100DUP(?)SSEGENDSCODESEGMENTASSUMECS:CODE,SS:SSEG,DS:DATA,ES:DATAMAINPROCFAR;主程序PUSHDSXORAX,AXPUSHAXMOVAX,DATAMOVDS,AXMOVES,AX:有STOS指令,需用ESMOVCX,6;外循环次数,比6次AGN:MOVSI,OFFSETBUFMOVDI,SIINCDI;SkDI指向相邻2数MOVDX,6:内循环次数,比6次AGNI:MOVAL,[SI]CMPAL,[DI];两个无符号数相比较JBUNCH;小于则转,不互换EXCH:XCHGAL,[DI]:前1单元较大,则互换MOV[SI],AL;大数放在后面UNCH:INCSI;修改指针,指向下一个数INCDIDECDXJNZAGNI:未处理完,继续内循环LOOPAGN;外循环DONE:MOVAL,[SI-3]:排序完成,取中间数MOVRES,ALANDAL,0F0H:分离高半字节MOVCL,4SHRAL,CLCALLBATR:调子程序,将AL值转换为ASCH码LEADI,STRI;DI指向结果单元CLDSTOSB:存放转换结果MOVAL,RESANDAL,OFH;分离并转换低半字节CALLBATRSTOSBLEADX,STR;显示整个字符串MOVINTRETMAINENDP;子程序BATR,AH,09H21H:主程序MAIN结束实现16进制数到ASCII码的转换BATRNUM:BATRCODE简析:PROCNEARCMP AL,10 :入口参数为ALJB NUM ;是数字,则转NUMADD AL,,A,-10-,0,;字母ADD AL,'O'RETENDP ;子程序结束ENDSEND MAIN本例的基本思路是:先把7个无符号数按大小排序,排序完成之后取位于中间的一个数即为中间值。然后将该16进制数转换为两个对应的ASCH码,再与要求的格式字符一起输出送显即可。数据排序可以是从大到小、或从小到大排列,本参考程序完成从小到大排序,由一个双重循环结构实现。内循环完成一个数与其它数之间的一一比较,并使每次比较所得的小数置于低地址单元。外循环实现所有数之间的两两相较。共7个数据,故内、外循环中的比较次数均为6次。编程时需注意:无符号数比较大小应使用JA、JB、JAE、JBE指令,本例完成从小到大的排列,故用JB控制转移到UNCH;若要从大到小排列,则用JA代替JB即可。对两个循环体进行初始化时,需仔细考虑指针和循环控制寄存器的初值。在数据段的定义中,分别定义STR、STR1两个变量名字,是为了便于在STR1处存放转换结果;显示时使DX直接指向STR,以STR1末尾的“$”为结束符。中间值找出之后,应把高、低半字节相分离,并分别转换为各所对应的ASCH码。.设某测试系统中,1号端口为测试口,所得数据是0〜9之间的十进制整数;2号端口为显示口,对应于数字0〜9的LED七段共阴显示码依次为:3FH、06H、5BH、4FH、66H,6DH、3DH、07H、7FH、6FH=编写一段查表送显的程序,要求:先从测试口读入一个数据,再查表将相应的显示码从显示口送出,如此反复进行直至读入数据“OFFH”为止。答:一种可能的程序如下实现:DATASEGMENTTABDB 3FH,06H,5BH,4FH,66HDB 6DH,3DH,07H,7FH,6FH ;0-9的七段码DATAENDSSTACKSEGMENTPARASTACKSTACK'DW50DUP(?)STACKENDSCODESEGMENTASSUMECS:CODE,SS:STACK,DS:DATASTART:MOVAX,DATAMOVDS,AXLEBX,TAB ;BX指向表首址NEXT:INAL,1 :从测试口输入CMPAL,OFFHJESTOP ;是OFFH,结束XLATTAB ;不是OFFH,查表转换OUT2,AL ;向显示口输出七段码JMPNEXT ;继续测试STOP:MOVAH,4CHINT2IHCODEENDSENDSTART第6章存储器系统一、选择题.下列(B)不是半导体存储器芯片的性能指标。A.存储容量B.存储结构C.集成度D.最大存储时间.高速缓存由(B)构成。A.SRAMB.DRAMC.EPROMD.硬磁盘.由2Kxibit的芯片组成容量为4Kx8bit的存储器需要(D)个存储芯片。A.2B.8C.32D.164.安排2764芯片内第一个单元的地址是1000H,则该芯片的最末单元的地址是(D)«A.1FFFHB.17FFHC.27FFHD.2FFFH.一片容量为8KB的存储芯片,若用其组成1MB内存,需(C)片。A.120B,124C.128D.132.外存储器包括(ABEF)oA.软磁盘B.磁带C.SRAMD.BIOSE.硬磁盘F.光盘.在多级存储体系结构中,Cache-主存结构主要用于解决(D)的问题。A.主存容量不足 B.主存与辅存速度不匹配C.辅存与CPU速度不匹配 D.主存与CPU速度不匹配.动态RAM的特点之一是(BD)。A.能永久保存存入的信息 B.需要刷新电路C.不需要刷新电路 D.存取速度高于静态RAM二、填空题.在分层次的存储系统中,存取速度最快、靠CPU最近且打交道最多的是口^存储器,它是由类型的芯片构成,而主存储器则是由邱类型的芯片

构成。.将存储器与系统相连的译码片选方式有强选法、部分地址译码法和全地址译码法。.若存储空间的首地址为1000H,存储容量为1Kx8、2Kx8、4Kx8H和8K的存储器所对应的末地址分别为13FFH、17FFH、1FFFH和2FFFH。.微机系统中存储器通常被视为Cache、主存、辅存三级结构。三、综合题.某微机系统中内存的首地址为3000H,末地址为63FFH,求其内存容量。答:存储区总的单元数为:63FFH-3000H+1=3400H,故总容量13KB。计算方法:若直接用十六进制表示,则总容量=(3*163+4*162)/1024;若将地址表示成二进制,则总容量=2,3B+2,2B+2,oB;.下图为SRAM6116芯片与8088系统总线的连接图。(1)写出6116芯片的存储容量;(2)分析每片6116所占的内存地址范围。答:6116芯片的存储容量是2k*8bit(2)第一片6116的内存地址范围是F1000H~F17FFH第二片6n6的内存地址3.利用6264芯片,在8088wk WERD ~OEAn 3.利用6264芯片,在8088wk WERD ~OEAn An6答:.如图所示,IBM—PC/XT计算机扩展槽上与存储器连接的总线信号为20根地址线A19〜A0,8根数据线D7〜D0以及存储器读写信号靛靛和丽丽。使用这些信号扩展1片27256(32Kx8EPROM)和1片62256(32Kx8RAM)。要求EPROM的起始地址为C8000H,RAM紧随其后,使用74LS138(3—8译码器),采用全地址译码方式。741sl38O-O-O-O-O-A19A18AI7A16A15D-AD-D-AD-D-P-llBlH43210A1AIA1A1A1A9A8A7后A5A4A3A2A1A0O-O-O-O-O-A19A18AI7A16A15D-AD-D-AD-D-P-llBlH43210A1AIA1A1A1A9A8A7后A5A4A3A2A1A0D7幅D3D2M理H13I2AI3A12AllAr-xlRlRi76643210DaDDDDDDIICOIz607Sici已mi27256/A4A3DIA2«),'I—AOOf.TOT(1)试在图中画出计算机的存储器连接图(门电路自选)。74LS138Lp—rD—=尸Lp—rD—=尸wvlr皿徵Y5tY6t_HRlaRInD7D6D5MK1D2D1D06rRlaRInD7D6D5MK1D2D1D06rl57IC72一OF4321021—ull1987654-3210AAAAAAAAAAAAAAAAH理AI3A12AllA10M 1(0 1,1A8 I"7 D6A7 版A6 N心62256吗Al D2A3 DIA2 MAIA1-AI:A1/\1A1A9A8A7A6A5MA3A2A1AOD72D3呢就第四题图(2)写出各片存储器的地址范围。答:地址范围27512:C8000〜CFFFFH,62512:D0000H-D7FFFH.设某系统中的数据总线宽度为8bit,地址总线宽度为16bit。若采用4KX4的RAM芯片组成16KB的存储系统。问:(1)共需多少月-4KX4的RAM芯片?这些芯片应分成多少组?每组多少片?答:共需8片RAM芯片,分成4组,每组2片。(2)该存储系统至少需要多少根地址总线?其中多少根低位地址线用于片内自选(译码)?答:至少需要14根地址总线,其中12根低位地址线用于片内自选。(3)设该存储系统从0000H开始占用一段连续地址空间,试给出每组芯片占用的地址范围。答:OOOO-OFFFH1000-1FFFH2000-2FFFH3000-3FFFH第7章中断技术一、判断题.内部中断的优先权总是高于外部中断。(x).两片8259A级连后可管理16级中断。(x).8259A所管理的中断源中,优先级低的中断源不可能中断优先级高的中断服务子程序。(x).若8259A的中断屏蔽字为00H,则8259A所管理的8级中断全被屏蔽。(x).只要8259A所管理的中断源没有被屏蔽,则任何中断源的中断请求都能得到CPU的响应和服务。(V).在8259A特殊完全嵌套方式中,同级的中断可实现嵌套。(4)二、单项选择题.8086CPU工作在总线请求方式时,会让出(D).A.地址总线 B.数据总线C.地址和数据总线D.地址、数据和控制总线.CPU响应INTR引脚上来的中断请求的条件之一是(B)□A.IF=0B.IF=1C.TF=0D.TF=1.断点中断的中断类型码是(C).A.1B.2C.3 D.4.执行指令IRET后弹出堆栈的寄存器先后顺序为(B)„A.CS、IP,FlagsB.IP、CS、FlagsC.Flags,CS、IPD.Flags,IP、CS.若8259A工作在优先级自动循环方式,则IRQ4的中断请求被响应并且服务完毕后,优先权最高的中断源是(BA.IRQ3B.IRQ5C.IRQOD.IRQ4PC/XT机中若对从片8259A写入的ICW2是70H,则该8259A芯片的IRQ6的中断类型码是(B)«A.75HB.76HC.70HD.1D8HPC/XT机中若对从片8259A写入的ICW2是70H,则该8259A芯片的IRQ5的中断矢量存储的地址是(D)«A.75HB.280HC.300HD.1D4H8.当向8259A写入的操作命令字OCW2为01100100时,将结束(E)的中断服务。A.IRQOB.1RQ1 C.1RQ2 D.IRQ3E.IRQ4F.IRQ5 G.IRQ6 H.IRQ79.3片8259A级联起来,可管理(C)级中断。A.24 B.23C.22D.20E.16F.15三、多项选择题.在PC机工作过程中,8259A所管理的中断源优先级将发生变化的工作方式有(CD)。A.全嵌套工作方式 B.特殊全嵌套方式C.优先级自动循环方式 D.优先级特殊循环方式.写入8259A的ICW1为13H,则该8259A芯片的工作方式是(ADE)。A.上升沿触发中断请求B.仅高电平请求中断 C.多片主从方式D.单片方式E.初始化写入ICW4F.初始化不写入ICW4.写入8259A的ICW4为09H,则该8259A芯片的工作方式是(ABD)。A.全嵌套B.采用8086CPUC.多片主从方式D.缓冲方式 E.自动结束中断F.优先级自动循环.写入PC/XT机8259A芯片的操作命令字OCW1是36H,则被屏蔽的中断源是(BCEF)»A.IROB.IR1C.IR2D.IR3E.IR4F.IR5GIR6H.IR75.8086CPU响应硬中断NMI和INTR时,相同的条件是(BD)。A.允许中断 B.当前指令执行结束C.CPU工作在最大模式下 D.不处于DMA操作期间四、填空题.中断矢量就是中断服务子程序的入口地址,在内存中占有4个存储单元,其中低地址存储单元存放的是IP内容,高地址存储单元存放的是CS内容。.中断返回指令是IRET,该指令将堆栈中保存的断点弹出后依次装入」E寄存器和CS寄存器中,将堆栈中保存的标志装入中。CPU响应8259A中断,在引脚更旦上输出2个负脉冲,在第2个负脉冲期间读入中断类型码。8086CPU共可管理256个中断,中断矢量表放在从00000H地址单元到003FFH地址单元,总共有1K个字节。CPU响应中断后将Flags寄存器入栈保存,然后自动将IF标志和TF标志复位。若要实现中断嵌套,必须在中断服务子程序中执行一条开中断指令。以下代码完成8086系统中断向量设置的功能,其设置的中断类型为皿L,中断服务程序入口的物理地址为579B4H。DATASEGMENTORG2CHVARIDW?VAR2DW?DATAENDSCODESEGMENTASSUMECS:CODE,ES:DATAXORAX,AXMOVES,AXMOVAX,1234HMOVES:VARI,AXMOVAX,5678HMOVES:VAR2,AXCODEENDS五、综合题.试说明一般中断系统的组成和功能。答:处理器内部应有中断请求信号的检测电路,输出中断响应信号,保存断点的逻辑,转向中断处理程序的逻辑,中断返回逻辑。系统中要有一中断控制器,管理多个中断源,提供处理机所需的中断处理信息。系统中请求中断处理的I/O接口电路要有提供中断请求信号及接收中断响应信号的逻辑。.简述中断的响应过程。答:8086在中断响应时,自动将标志寄存器FR和断点(CS和IP)的值入栈保存,但不将别的其它寄存器的值入栈保存,故如果中断服务程序中用到其它寄存器时,应单独使用指令将其它寄存器的值入栈保存,等中断返回前再将其恢复。这一步骤称为保护现场和恢复现场。保护现场和恢复现场应后进先出。8086只对可屏蔽中断的响应输出2个总线周期的INTA,并在第2个INTA期间到DB的低8位读入中断类型码,而对其它类型的中断,由于中断类型码是固定的,不用到DB读取,故没有2个INTA总线周期。中断响应与调子程序过程完全不同。.简述8086系统的中断分类及优先级。答:内部(除法除以0、单步、断点、溢出、指令中断)和外部(非屏蔽、可屏蔽)两大类。每个中断源有一个自己特定的类型码,8086靠类型码来识别不同中断源,转去执行不同中断服务程序。可以使标志寄存器的IF位和TF位为0来关闭可屏蔽中断和单步中断,但除法除以0中断、溢出中断、断点中断、指令中断及非屏蔽中断是无法关闭的。可屏蔽中断有专用的指令STI(开可屏蔽中断)和CLI(关可屏蔽中断),但单步中断的开或关没有专用指令。因8086的中断类型码为8位的,中断类型码的个数为0—FFH,最多可有256个数,故8086的内部中断和外部中断加起来最多可有256个。除了可屏蔽中断的中断类型码是由8259A提供的外,其它每种中断的中断类型码都是固定的。8086各中断源的优先级从高到低依次是:除法除以0溢出中断、断点中断、指令中断非屏蔽中断可屏蔽中断单步中断注意,优先级的高低与中断类型码的大小没有关系。因INTN指令中断的优先级高于可屏蔽中断的优先级,故8086在执行指令中断期间不能响应可屏蔽中断的中断请求。.什么是中断类型码、中断向量、中断向量表?在基于8086/8088的微机系统中,中断类型码和中断向量之间有什么关系?答:处理机可处理的每种中断的编号为中断类型码。中断向量是指中断处理程序的入口地址,由处理机自动寻址。中断向量表是存放所有类型中断处理程序入口地址的一个默认的内存区域。在8086系统中,中断类型码乘4得到向量表的入口,从此处读出4字节内容即为中断向量。.写出分配给下列中断类型号在中断向量表中的物理地址。INT12H答:00048HINT8答:00020H.8259A中断控制器的功能是什么?答:8259A中断控制器可以接受8个中断请求输入并将它们寄存。时8个请求输入进行优先级判断,裁决出最高优先级进行处理,它可以支持多种优先级处理方式。8259A可以对中断请求输入进行屏蔽,阻止对其进行处理。8259A支持多种中断结束方式。8259A与微处理器连接方便,可提供中断请求信号及发送中断类型码。8259A可以进行级连以便形成多于8级输入的中断控制系统。.画出8259A的初始化流程图。答: , ,送ICWI| ♦,送ICW2TV级联方式?)送I:CW3|―匚「需要icwTT)I送ICW4| -4-I准备羲中断1.试按照如下要求对8259A设定初始化命令字:8086系统中只有一片8259A,中断请求信号使用电平触发方式,全嵌套中断优先级,数据总线无缓冲,采用中断自动结束方式。中断类型码为20H〜27H,8259A的端口地址为0B0H和0B1H。并写出8259A的初始化程序段。答:ICW1=1BH(送B0H端口),ICW2=20H(送B1H端口),ICW4=03H(送B1H端口)MOVAL,1BHOUT0B0H,ALMOVAL,20HOUT0B1H,ALMOVAL,03HOUT0B1H,AL.8259A的中断屏蔽寄存器IMR与8086中断允许标志IF有什么区别?答:IF是8086微处理器内部标志寄存器的一位,若IF=0,8086就不响应外部可屏蔽中断请求INTR引线上的请求信号。8259A有8个中断请求输入线,IMR中的某位为1,就把对应这位的中断请求IR禁止掉,无法被8259A处理,也无法向8086处理器产生INTR请求。.若8086系统采用单片8259A中断控制器控制中断,中断类型码给定为20H,中断源的请求线与8259A的IR4相连,试问:对应该中断源的中断向量表入口地址是什么?若中断服务程序入口地址为4FE0H:0024H,则对应该中断源的中断向量表内容是什么,如何定位?答:中断向量表入口地址为:0段的0090H地址。对应4FE24H中断服务程序入口,在向量表中定位情况:(0090H)=24H、(0091H)=00H、(0092H)=E0H、(0093H)=4FH..现假设某外设的中断请求信号山IR2端引入,要求编程实现CPU每次响应该中断时屏幕显示字符串“WELCOME!已知主机启动时8259A中断类型号的高5位已初始化为00001,故IR2的类型号为OAH(00001010B);8259A的中断结束方式初始化为非自动结束,即要在服务程序中发EOI命令;8259A的端口地址为20H和21H。解:程序如下:DATASEGMENTMESSDB'WELCOME! OAH,0DH,''DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,SEGINT2MOVDS,AXMOVDX,OFFSETINT2MOVAX,250AHINT21H;置中断矢量表INAL,21H;读中断屏蔽寄存器ANDAL,0FBH;开放IR2中断OUT21H,AL

STILL:JMPLI;等待中断INT2:MOVAX,DATA;中断服务程序MOVDS,AXMOVDX,OFFSETMESSMOVAH,09INT21H;显示每次中断的提示信息MOVAL,20H;OCW2,一般EOI命令OUT20H,AL:发出EOI结束中断INAL,21HORAL,04H;屏蔽1R2中断OUT21H,ALSTIMOVAH,4CHINT21HIRETCODEENDSENDSTART第8章输入/输出接口技术一、选择题8086CPU在执行INAL,DX指令时,DX寄存器的内容输出到(A)上。A.地址总线B.数据总线C.存储器D.寄存器在CPU与外设进行数据传送时,下列(C)方式可提高系统的工作效率。A.无条件传送 B,查询传送C.中断传送D.前三项均可外部设备的端口包括(ABC).A.数据端口B.状态端口C.控制端口 D.写保护口CPU在数据线上传输的信息可能是(ABC)。A.数据B.状态C.命令D.模拟量PC/XT机对I/O端口的寻址方式有(AF)«A.端口直接寻址B.寄存器寻址 C.基址寻

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论