同济大学2009-2010微机原理期终试题(ab卷)含答案.doc
第0页共7页同济大学课程考核试卷(A卷)-答案2009—2010学年第一学期课号:100202课名:微机原理及接口技术(双语)考试考查:考试此卷选为:期中考试()、期终考试(■)、重考()试卷年级专业学号姓名得分一、简答题(30分,每题5分)1.ChoosefivedifferentinstructionstoaccomplishAL=0.解:答案不唯一,参考答案如下MOVAL,0ANDAL,0SUBAL,ALXORAL,ALSHLAL,82.ComparethedifferencebetweenANDandTESTinstruction.解:AND指令会影响目的寄存器内容,而TEST不影响目的寄存器的内容。3.已知AX=3024H,BX=0A010H,执行以下CMPAX,BX指令后,试分析标志位S,C,O,Z的值,并指出AX的值。解:CMP指令运行后,AX内容不受影响,仍为3024H。正数减去负数后其结果为负数(9014H),因此O=1。高位有借位,因此C=1。显然,S=1,Z=0。4.Whatconditiondoesalogic1(highlevel)onthe8086ALEpinindicate.解:ALE为1(高电位)时表明总线上地址数据有效,即AD0-AD15地址数据复用线上是有效的地址数据,而A16-A19状态地址复用线上是有效的地址数据。该信号用于通知外部锁存器进行地址数据分离。5.当INT22H指令运行时,请给出中断向量表中该中断对应的物理位置。(假设采用8086CPU系统)解:已知中断向量号为22H,故在中断向量表中所处的位置为22H×4=88H。因为8086系统的中端向量表位于内存的最低端,故该中断向量在地址范围为00088H-0008BH。6.简要说明中断处理的流程。解:流程如下:(1)将标志寄存器内容压栈;(2)将标志寄存器的TF和IF标志清零;(3)将CS寄存器内容压栈;(4)将IP寄存器内容压栈;(5)根据中断向量号查询中断向量表,获取中断服务程序的段地址和偏移地址,分第1页共7页别装入CS和IP;(6)执行中断服务程序;(7)执行到IRET/IRETD时,从堆栈中弹出IP和CS;(8)从堆栈重弹出标志数据到标志寄存器。二、分析与设计题(70分)7.某微型计算机系统,其CPU地址线为20位,数据线为8位。需扩展内存140KB,其中RAM为128KB,选用62256(32K×8);ROM为12KB,选用EPROM2732(4K×8),要求内存地址空间从40000H开始连续分配,RAM在低地址,ROM在高地址。(20分)(1)分别需要多少块ROM和RAM?给出每一块存储芯片的内存地址范围。(10分)(2)利用74LS138画出存储器地址译码图。要求与CPU三总线有相应的连接。(10分)解:(1)因为需要扩展内存140KB,其中RAM为128KB,ROM为12KB。而选用的RAM芯片62256为32KB,ROM芯片2732为4KB。因此需要62256芯片4块,2732芯片3块。而32K的地址范围大小为8000H,其范围为0000H-7FFFH;4K的地址范围大小为1000H,其范围为0000H-0FFFH。因此每块芯片的地址范围如下:RAM1:40000H-47FFFHRAM2:48000H-4FFFFHRAM3:50000H-57FFFHRAM4:58000H-5FFFFHROM1:60000H-60FFFHROM2:61000H-61FFFHROM3:62000H-62FFFH(2)答案不唯一,参考答案如下。因为RAM芯片为连续配置,可以采用1片74LS138译码器。而62256的地址范围为32K,因此其地址线位A0-A14。又RAM的总地址范围为40000H-5FFFFH,因此有如下地址范围。芯片A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A001000000000000000000RAM10100011111111111111101001000000000000000RAM20100111111111111111101010000000000000000RAM30101011111111111111101011000000000000000RAM401011111111111111111显然,A0-A14直接接到62256芯片,而A15-A19用于地址译码,地址译码图如下:第2页共7页系统总线A1562256CG1G2AG2BY774LS138ABY6Y5Y4Y3Y2Y1Y0A16A17A18A19M/IOCSA0-A14OEWED0-D7RDWRCSCSCSA0-A14D0-D740000H-47FFFH48000H-4FFFFH50000H-57FFFH58000H-5FFFFH而ROM芯片为连续配置,可以采用1片74LS138译码器。而2732的地址范围为4K,因此其地址线位A0-A11。又RAM的总地址范围为60000H-62FFFH,因此有如下地址范围。芯片A19A18A17A16A15A14A13A12A11A10A9A8A7A6A5A4A3A2A1A001100000000000000000ROM10110000011111111111101100001000000000000ROM20110000111111111111101100010000000000000ROM301100010111111111111显然,A0-A11直接接到2732芯片,而A12-A19用于地址译码,地址译码图如下:第3页共7页系统总线A122732CG1G2AG2BY774LS138ABY6Y5Y4Y3Y2Y1Y0A13A14CSA0-A11OED0-D7RDCSCSA0-A11D0-D7ANDA18A17ORORA15A16A19M/IO60000H-60FFFH61000H-61FFFH62000H-62FFFH8.现有两种外设:一组8位开关,一组8位LED灯。要求用8255作为接口芯片,将开关状态从8255的B口读入,存入DS:BX所指数据段;并从堆栈弹出数据到AX中,将AH的内容经8255的A口送出到LED灯上显示。8255的地址为40H-43H。(20分)(1)画出8255的硬件连接图(包括基于74LS138的地址译码以及开关和LED灯的连接)。(10分)(2)写出完成上述功能的主要程序代码片段(含初始化代码和功能代码,要求有注释)。(10分)解:答案不唯一,参考答案如下。(1)因为端口地址为40H-43H,采用8位地址总线译码方式,有8255的各个端口地址分配如下。8255A7A6A5A4A3A2A1A0A40H01000000B41H01000001C42H01000010控制寄存器43H01000011地址译码图如下:第4页共7页ISA总线A1A0RDWRD8-D15CSA1A0RDWRD0-D7PB0PB1PB7PA0PA1PA78255Ar0r7r1R0R7R1D0D7D1+5V+5Vk0k7k1A4A5A7CG1G2AG2BY774LS138A2A3