北京交通大学考试试题(A卷)课程名称:微机原理与接口学年学期:2013—2014学年第1学期课程编号:14L128Q-03开课学院:电信出题教师:5人学生姓名:学号:任课教师:学生学院:班级:一、填空题(每题2分,共10分)1.80X86微机系统采用补码存储数据,16位补码表示的数值范围为:____________________。(-65536~+65535)2.某RAM芯片,其数据线为D0-D7,地址线为A0-A11,则此芯片的存储容量为:________。(4KB)3.伪指令XBFDW10DUP(10,10DUP(10)),系统为变量XBF分配的字节数为:________。(110)/6EH4.80X86微机系统根据中断向量表,获取中断向量,中断向量表的地址范围为:__________。(000H~3FFH)5.DMAC芯片8237A内部有_______个独立的通道,每个通道的选址范围为:_______。464KB二、选择题(单选,每题2分,共10分)1.下列哪条指令执行后对状态标志位没有影响。()AA.MOVAL,33HB.ADDAL,33HC.CMPAL,33HD.TESTAL,33H2.已知X1是定义的一个变量,下列哪条指令与LEAAX,X1结果相同。()D题号一二三四五六七总分得分阅卷人A.MOVAX,X1B.ADDAX,X1C.MOVAX,SEGX1D.MOVAX,OFFSETX13.中断控制器8259中用于存放CPU当前正在服务的中断标志的寄存器为:()BA.中断请求寄存器IRRB.中断服务寄存器ISRC.中断屏蔽寄存器IMRD.中断优先权判别器PR4.串行接口芯片8250不能处理下列哪种中断。()CA.接收数据出错B.接收缓冲器满C.发送数据出错D.发送寄存器空5.某微机系统含有3片8237A,其中一片为主片,两片为从片,试问此系统可以使用多少个DMA通道。()CA.4B.8C.10D.12三.指令改错(指出指令错误原因,并改错)(共5小题,每小题2分,共10分)(1)MOVDS,1000H(2)PUSHAH(3)CMP[BX],2000H[SI](4)INCBX,1(5)OUTAL,1234H答案:(1)立即数不能直接送到段寄存器。改为:MOVAX,1000H(MOVDS,AX)(2)不能为字节1分PUSHAX1分(3)操作数不能同时为存储器操作数1分MOVAX,[BX]CMPAX,1000H[SI]MOV[BX],AX(有多种改法)1分(4)格式错误1分INCBX1分(5)端口地址255要将端口地址先送入DX,且格式错误。1分MOVDX,1234HOUTDX,AL1分四.简答题(15分)1.什么是中断?简述CPU响应中断时的处理过程。(5分)答:是指CPU在执行程序的过程中,由于某种外部或内部事件作用,强迫CPU停止当前正在执行的程序,转去为该事件服务,待事件服务结束后,能自动地返回到被中断的程序中继续执行。(3分)中断处理过程1.中断请求2.中断响应3.中断处理4.中断返回(2分)2.DAC0832有几种工作方式?并简单说明工作方式。(4分)答:3种1.直通方式2.单缓冲方式3.双缓冲方式3.8237A引脚中A0-A3地址线为什么设置为双向地址线?(5分)答:8237A有从属和主控两种工作状态。(2分)当8237作为从设备时,A3~A0为输入,作为CPU访问8237A时内部寄存器的端口地址选择线(1分);当8237A作为主控设备控制数据传送时,A3~A0为输出,作为访问存储器低8位地址信号A7~A0中的低4位(2分)五.程序题(20分)1.编写将BUF存储器缓冲区字符串“Thisisabook”在显示器上显示出来的程序段。DatasegmentBUFDB‘Thisisabook’,OD,OAH‘$’DataendsCodesegmentStart:Movax,dataMovds,axMovah,9Movdx,offsetbufInt21hMovah,4chInt21hCodeendsEndstart2.采用8255A的C口连接8个开关,A口连接8个LED指示灯,将C口的开关状态读入,然后送到至A口控制指示灯亮、灭。8255端口地址为0FF00H~0FF03H,试编写实现功能的程序段。Moval,10001001BMovdx,0ff03hOutdx,alMovdx,0ff02hInal,dxMovdx,0ff00hOutdx,al六.存储器扩展(15分)已知:80x86系统,设CPU地址总线20条,数据总线8条,已知需扩充的ROM存储器地址分配空间为2000H—3FFFH、RAM存储器地址分配空间为5000H—5FFFH,采用4K×4RAM芯片、8K×8ROM芯片、3—8译码器和门电路。回答下列问题:(1)RAM芯片片内有几条地址线?几条数据线?扩充存储器需要的RAM芯片数?(2)ROM芯片片内有几条地址线?几条数据线?扩充存储器需要的ROM芯片数?(3)采用3—8译码器,画出扩充存储器的地址位图(4)画出存储器与CPU系统总线的连接原理图(芯片读出信号为OE,写入信号为WE)(1)12,4,2(2)13,8,1(3)芯片A15A14A13A12A11A10---A0地址范围1001000------0111------12000H-3FFFH2/301010-------011-------15000H-5FFFHCPUROMRAMRAMA19~A16M/IOA15A14A13A12A0~A11D0~D3D4~D7WRRD74LS138A0~A12D0~D3D4~D7A0~A11A0~A11A12A12D0~D3OEOEOEWEWED0~D3//44EE1E2CBAYOY7Y6Y5Y4Y3Y2Y1≥1…CECECE≥1/11七.综合题(20分)已知:某80x86系统硬件连线如下图所示,设8254的端口地址为40H~43H,CLK输入的频率为1.19MHz,8250端口地址为3F8H-3FEH,基准频率为1.8432MHZ,波特率2400,数据长度8位,1位停止位,奇校验,屏蔽全部中断。试完成编写当CPU接收到字母“S”时,让扬声器发出1KHz的频率,当接收到其它字符是让扬声器发出2KHz的频率的完整程序。根据上述要求完成:1.8250、8254芯片的初始化编程2.编写完成其功能的完整程序设计(源程序须有必要的注释,能通过MASM6.11编译、连接)译码器80X86CPU8254=A2D0-D7DOSTRCS2SIN接收数据IORGATE0IOWA1D0-D7A0A1A0A3::A15A0A1A2IORIOW8250D0-D7GATE1CLK0CLK1CLK2OUT2GATE2A0A1CSDISTR8250:3F8H-3FEHCS0CS1Y7&+5V驱动滤波+5V+5V1.19MHZA1A0A28254:40H-43HY0DLABSBRKSPBEPSPENSTBWLS1WLS0中止设定0:正常发送1:发中止符(低电平)数据位选择00:5位01:6位10:7位11:8位奇偶校验选择0:奇校验1:偶校验D7D0D1D2D3D4D5D6停止位选择0:1位1:1.5位(数据长度为5位)2位(数据长度为6、7、8位)校验选择0:无校验1:有校验访问除数寄存器允许0:禁止1:允许附加奇偶校验标志0:不附加1:附加若D4D3=01,附加位为1若D4D3=11,附加位为0线路控制寄存器的格式0TSRETHREBIFEDR0:标志位1:发送移位寄存器空1:数据发送寄存器空1:中止符检测1:接收数据就绪1:溢出错1:奇偶错1:帧格式错PEOED7D0D1D2D3D4D5D6线路状态寄存器的格式D7D0D1D2D3D4D5D6000LOOPOUT2OUT11:自检控制用户定义输出1:数据终端就绪1:请求发送RTSDTRModem控制寄存器的格式RLSDRIDSRCTS△RLSDTERI△DSR△CTS1:CTS信号改变1:DSR信号改变1:RI信号改变1:RLSD信号改变D7D0D1D2D3D4D5D61:接收线路信号检测到1:振铃指示1:数据设备就绪1:允许发送Modem状态寄存器的格式0EDSSIELSI1:接收缓冲器“满”中断允许1:发送寄存器“空”中断允许0001:接收出错中断允许ERBFIETHEI1:Modem输入状态改变中断允许D7D0D1D2D3D4D5D6中断允许寄存器的格式D7D0D1D2D3D4D5D60IP0:有中断1:无中断0000中断源识别(低)00:Modem输入状态改变01:发送寄存器“空”10:接收缓冲器“满”(高)11:接收出错优先级ID0ID1中断识别寄存器的格式8250寄存器的端口地址分配、读/写功能和复位状态A2A1A0DLAB标志读/写寄存器复位状态0000写数据发送寄存器清00000读数据接收寄存器清00001读/写除数寄存器低字节清00011读/写除数寄存器高字节清00010读/写中断允许寄存器清0010×读中断识别寄存器D0=1,其余位为0011×读/写线路控制寄存器清0100×读/写MODEM控制寄存器清0101×读/写线路状态寄存器D6=D5=1,其余位为0110×读/写MODEM状态寄存器D3~D0为0,其余取决于输入CODESEGMENTASSUMECS:CODESTART:MOVAL,10000000B;8250初始化,设DLAB=1MOVDX,3FBHOUTDX,ALMOVAX,30HMOVDX,3F8HOUTDX,AL;写入除数低字节MOVAL,AHMOVDX,3F9HOUTDX,AL;写入除数高字节MOVAL,00001011B;8位数据,1位停止,奇校验MOVDX,3FBHOUTDX,AL;写入线路控制寄存器MOVAL,00000011B;MOVDX,3FCHOUTDX,AL;写入MODEM控制寄存器MOVAL,0MOVDX,3F9HOUTDX,AL;禁止中断WAIT_FOR:MOVDX,3FDH;读线路状态寄存器INAL,DXTESTAL,00000001B;接收数据就绪否JNZRECEIVE;转接收JMPWAIT_FOR;返回等待RECEIVE:MOVDX,3F8H;读接收数据INAL,DXANDAL,01111111BCMPAL,’S’;是S?JNZCHARCallbeep1JMPWAIT_FORCHAR:nopCallbeepJMPWAIT_FOR;返回等待BEEPPROCFARMOVAL,10110110B;方式3,16位二进制计数OUT43H,ALMOVAX,1190;计数初值1.19MHz/1KHz=1190OUT42H,ALMOVAL,AHOUT42H,ALRETBEEPENDPBEEP1PROCFARMOVAL,10110000B;方式0,16位二进制计数OUT43H,ALMOVAX,1;OUT42H,ALMOVAL,AHOUT42H,ALRETBEEP1ENDPCODEENDSENDSTART