微机原理试题2及答案.doc_第1页
微机原理试题2及答案.doc_第2页
微机原理试题2及答案.doc_第3页
微机原理试题2及答案.doc_第4页
微机原理试题2及答案.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

2006年 微机原理与应用 研究生复试题 答案考号: 姓名: 成绩:一、填空 (每空1分,共8分)1. 标志寄存器中的6个状态位分别是 SF、ZF、CF、AF、OF、PF 。2. 8086/8088CPU内存最大寻址范围为 1M 字节。3设某存储芯片内有1024个单元,若用单译码方式,地址译码器将有 1024 条输出线;若使用双译码器方式,用两个相同的译码器,共需要 64 条译码输出线。4某芯片采用的是地址复用技术,共有七条地址引脚。若它的首地址是0000H,则其末地址为 3FFFH 。5MOS型半导体随机存储器可分为 SRAM 和 DRAM 两种,后者在使用过程中每2mS内要刷新一次。6软中断指令 INT 20H的中断服务程序的入口地址在地址为:80H83H 四个内存单元中。二、(10分)改正下列有错误的指令 1. IN 200H, AL5. DIV AX , 5 9. MOV BYTE PTR BX, 2562. MOV ES,6000H6. SAL AL, 2 10PP DB 56,78,3. LOOP ADD 7. MOV DX,2000H MOV AX,PP 4. LEA DI,AX 8. PUSH CH 11. CMP DX,80H解:1. MOV DX, 200H; IN AL, DX; (或者:OUT DX,AL)(或者: IN 20H, AL)2. MOV AX, 6000H; MOV ES,AX3. LOOP ADD14. LEA DI,SI5. MOV BL,5; DIV BL6. MOV CL,2SAL AL,CL7. 正确8. PUSH CX9. MOV WORD PTR BX, 25610. PP DB 56,78,MOV AL,PP11. MOV BX,DXCMP BX,80H 三简答题(1)(5分)试说明80868088工作在最小方式下和最大方式下系统基本配置的差别。在最大组态下,80868088的外围电路由哪些器件组成?它们的作用是什么?解:80868088工作在最大方式下时,需要使用8288总线控制器,但是工作在最小方式下时不需要使用。80868088工作在最大方式下时,外围电路包括8284时钟发生器、8286数据发送接收器、8282地址锁存器以及8288总线控制器。8284将晶体振荡器的振荡频率分频,向80868088以及计算机系统提供符合定时要求的时钟信号、准备好信号和系统复位信号。8286数据发送接收器增加数据总线的驱动能力。8282地址锁存器用来锁存CPU地址信号,特别是地址数据线、地址状态线上出现的地址信号。8288根据CPU要执行的指令提供的状态信号建立控制时序,输出读写控制命令。(2)(7分)什么是DMA?DMA操作可以分几个主要步骤?解:(1)DMA方式:即直接内存访问方式,完全由硬件执行I/O交换的工作方式。在这种方式下,DMA控制器从CPU完全接管对总线的控制,数据交换不经过CPU,而直接在内存与设备之间进行。 (2)DMA操作可以分3个主要步骤:即传送前预处理、正式传送、传送后处理阶段。预处理阶段:由CPU执行几条输入输出指令,测试设备状态。向DMA控制器的设备地址寄存器中送入设备号,并启动设备。向内存地址计数器中送入起始地址。向字计数器中送入交换的数据字个数。正式传送阶段:外设准备好发送数据(输入)或接收数据(输出)时,发出DMA请求,由DMA控制器向CPU发出总线使用权的请求(HOLD)。CPU在本机器周期执行完毕后响应该请求并使CPU的总线驱动器处于高阻状态,然后与系统总线相脱离,DMA控制器接管数据总线和地址总线的控制,并向内存提供地址。在内存和外围设备之间进行数据交换。每交换一个字则地址计数器和字计数器加1,当记数值到0时,DMA操作结束并向CPU提出中断报告。DMA后处理工作:一旦DMA的中断请求得到响应,CPU将停止主程序的执行,转去执行中断服务程序进行DMA操作的后处理。包括校验送入内存的数据是否正确;决定使用DMA方式传送数据还是结束传送;测试传送过程中是否发生错误。四、(10分)某微机系统的CPU为8088,且工作于最小方式,原有系统RAM存储器模块的容量为128K字节,其首地址为40000H,现用2128RAM芯片(容量2K8位)扩展一个容量为16K字节的存储器模块,地址和原有RAM模块的地址相连接,试完成该扩展RAM模块的设计。(注:可选用3:8译码器、与门、或门、非门等)。解:原模块:128K=20000H;原模块地址范围:40000H5FFFFH新模块:16K=4000H;新模块地址范围:60000H63FFFH2128RAM芯片(容量2K8位)扩展一个容量为16K字节的存储器模块,需要8片。20位地址中,6位模块选择, 3位送3:8译码器用于片选, 11位片内选择。扩展RAM模块连接图如下所示。五(10分)8253-5通道1工作于方式3,输入时钟频率为1MHz,OUT引脚输出周期为20ms的方波。已知通道0的口地址为4F0H,试编写初始化程序段。的控制字格式为: SC1 SC2 RW1 RW0 M2 M1 M0 BCD 解:N=1000*20=20000MOV DX,4F3HMOV AL,01110110BOUT DX,ALMOV AX,20000MOV DX,4F1HOUT DX,ALMOV AL,AHOUT DX,AL六(10分)(一)试述中断的一般过程。(二)写出只有一块8259A的8088系统中8259A的初始化程序,8259A的偶地址为2150H,要求:(a) 请求电平触发;(b) IR0请求的中断类型是28H;(c) SP/EN输出一个信号,给数据总线收发器;(d) 在第二个INTA脉冲结束时,ISR位自动清除;(e) 清IMR。已知8259A初始化命令字格式如下: A0 D7 D0ICW101LTIMSNGLIC4 A0 D7 D0ICW21T7T6T5T4T3主ICW3 A0 D7 D01S7S6S5S4S3S2S1S0从ICW3 A0 D7 D0100000ID2ID1ID0ICW4 A0 D7 D01000SFNMBUFM/SAEOIPM解:(一)中断过程是指从中断源提出中断请求,到中断被CPU响应并被处理,最好返回到被中断的程序的全过程。经历的处理步骤包括:(1)中断请求。需要服务的中断源向CPU发出中断请求;(2)中断判优。由中断优先权判决电路识别中断请求的中断源,当同时有多个中断源提出请求时,按一定的优先级顺序选择响应中断;(3)中断响应。当满足CPU响应中断的条件时,CPU获取响应的中断信息,即中断类型码,并自动保护某些现场信息,从而转入中断服务处理程序的过程;(4)中断处理。执行中断服务程序,为发出中断请求的中断源服务;(5)中断返回。恢复现场信息,返回被中断的程序。(二) MOV AL, 00011011B MOV DX,2150H OUT DX,AL MOV AL,28H INC DX OUT DX,AL MOV AL,00001111B OUT DX,AL七、(10分)关于8255A(一)简述8255A芯片、和 RESET的功能(二)假设某8255A芯片起始端口地址为800H,请编写程序段完成下列功能:(1)设置端口A组和B组都是方式0,其中端口A输出,端口B输入,C口上半部分输入。(2)查询PC7位,若PC7=0继续查询;若PC7=1,则从A口输入字符送B口输出。并无限循环重复上述过程。已知8255A方式选择控制字格式为:8255方式字格式为:D7D6 D5D4D3D2D1D01A组方式端口AI/O C上I/O B组方式端口B I/O C下 I/O 解:(一)(1)片选信号与A0,Al一起确定其端口地址;(2)读信号,控制8255A送出数据或状态信息至CPU;(3)写信号,控制CPU输出的数据或命令到8255A;(4)RESET复位信号,清除控制寄存器和将所有端口设置成输入方式。(二)(1)MOV DX,803H MOV AL,10011000B OUT DX,AL(2) MOV DX,802H POLL: IN AL,DX TEST AL,80H JZ POLL MOV DX,800H IN AL,DX MOV DX,801H OUT DX,AL JMP POLL八(15分)、阅读下列程序,说明程序的功能,画出程序的流程图。(2)显示16进制数的ASCII码形式我们再看一个显示数字的例子。在内存中有几个16位的二进制数,编写程序将它们转换成16进制数的ASCII码,并输出到屏幕上,如对于数字1234H,须将其转换成1、2、3、4四个字符,并分别送显示器显示。编程时,我们把对每个二进制数的处理写成一个子程序SHOW_W,在这个子程序中,先将二进制数每4位分成一段,每段又调用子程序SHOW_1,转换成ASCII码并输出。程序流程图如下图所示。读取高8位前4位SHOW_1后4位SHOW_1读取低8位前4位SHOW_1后4位SHOW_1显示H,换行返回(b) SHOW_W9?DL+30HDL+7H显示字符返回(c) SHOW_1NY二进制转16进制ASCII码的程序流程图初始化SICX个数SHOW_W完成?开始结束YN(a) MAIN程序如下:DATASEGMENTNUMDW1234H, 5678H, 9ABCH, 0DEF0H;要显示的数字(字)LTH_WDW($-NUM)/2;数字的个数(每个数占2字节)AFTERDBH, 0DH, 0AH,$;每个数后面显示“H”然后回车换行DATAENDSSTACKSEGMENT PARA STACK STACKDB100 DUP(?);堆栈长度STACKENDSCODESEGMENTASSUMECS:CODE, DS:DATA, SS:STACKMAINPROCFARPUSHDSMOVAX, 0PUSHAX;保存DOS返回指令的地址MOVAX, DATAMOVDS, AX;初始化DSMOVCX, LTH_WLEASI, NUML:CALLSHOW_W;调用子程序显示一个数字INCSIINCSI;一个数字占用2字节LOOPLRETMAINENDPSHOW_WPROC;子程序,能将SI中的16位数字显示出来PUSHCX;保护CXMOVDL, SI+1;先处理高8位MOVCL, 4SHRDL, CL;前4位CALLSHOW_1;显示前4位的16进制数MOVDL, SI+1ANDDL, 0FH;后4位CALLSHOW_1;显示后4位的16进制数MOVDL, SI;再处理低8位MOVCL, 4SHRDL, CL;前4位CALLSHOW_1;显示前4位的16进制数MOVDL, SIANDDL, 0FH;后4位CALLSHOW_1;显示后4位的16进制数LEADX, AFTERMOVAH, 09HINT21H;显示数字后面的“H”,并回车、换行POPCX;恢复CXRETSHOW_WENDPSHOW_1PROCCMPDL, 9JBENEXTADDDL, 7;如果大于9,则需加37H,如A=41H=10+7+30HNEXT:ADDDL, 30H;如果不大于9,则需加30H,如1=31H=1+30HMOVAH, 02HINT21H;显示一位16进制数RETSHOW_1ENDPCODEENDSENDMAIN程序运行结果,屏幕上显示:1234H5678H9ABCHDEF0H读者可以将上面两个程序整合起来,编写一个“输入十进制数,显示其十六进制数”的完整程序。九、(15分)编写完整的源程序存储器变量STRING中存放一字符串,字符串长度放在字变量STR_LEN中,编程查找串中第一个出现关键字符A的位置。如果找到,则把该位置相对于串首的偏移量存放到存储单元RES中,否则将RES的值置为0FFFFH。例如,在串“ABAB”中查找字符“A”,由于串中第一个“A”出现在串首,所以结果RES=0。请编写完整的源程序实现上述功能。答:程序可利用串操作指令SCAS来查找关键字,并用前缀REPNE来循环查找。需要注意的是,前缀REP的操作过程是,先把CX减1判断是否为0,然后再执行串操作,因此,在初始化的时候,必须将字符串长度加1的值赋给CX。完整程序如下:DATASEGMENTSTRINGDBABCDEFG;字符串STR_LENDW$-STRING;字符串长度KEYDBA;查找的关键字RESDW?;存放结果DATAENDSCODESEGMENTASSUMECS:CODE, DS:DAT

温馨提示

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

评论

0/150

提交评论