同济大学1微机原理期终试题AB卷含答案.docx
《同济大学1微机原理期终试题AB卷含答案.docx》由会员分享,可在线阅读,更多相关《同济大学1微机原理期终试题AB卷含答案.docx(14页珍藏版)》请在冰豆网上搜索。
同济大学1微机原理期终试题AB卷含答案
同济大学课程考核试卷(A卷-答案2009—2010学年第一学期
课号:
100202课名:
微机原理及接口技术(双语考试考查:
考试
此卷选为:
期中考试(、期终考试(■、重考(试卷
年级专业学号姓名得分
一、简答题(30分,每题5分
1.ChoosefivedifferentinstructionstoaccomplishAL=0.
解:
答案不唯一,参考答案如下
MOVAL,0
ANDAL,0
SUBAL,AL
XORAL,AL
SHLAL,8
2.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(highlevelonthe8086ALEpinindicate.
解:
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根据中断向量号查询中断向量表,获取中断服务程序的段地址和偏移地址,分别装入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-47FFFH
RAM2:
48000H-4FFFFH
RAM3:
50000H-57FFFH
RAM4:
58000H-5FFFFH
ROM1:
60000H-60FFFH
ROM2:
61000H-61FFFH
ROM3:
62000H-62FFFH
(2答案不唯一,参考答案如下。
因为RAM芯片为连续配置,可以采用1片74LS138译码器。
而62256的地址范围为32K,因此其地址线位A0-A14。
又RAM的总地址范围为40000H-5FFFFH,因
0141519
而ROM芯片为连续配置,可以采用1片74LS138译码器。
而2732的地址范围为4K,因此其地址线位A0-A11。
又RAM的总地址范围为60000H-62FFFH,因此
0111219
8.现有两种外设:
一组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的各个端口地
(2对于8255而言,A口作为输出,B口作为输入。
且都是基本的I/O方式,故A;8255初始化代码
MOVAL,82H;将控制字放入到AL寄存器
OUT43H,AL;将控制字送入到8255的控制寄存器
;功能代码
INAL,41H;从8255的B口读入开关状态数据到AL寄存器
MOV[BX],AL;将AL寄存器内容放入到DS:
BX所指数据段
POPAX;从堆栈中弹出数据到AX
MOVAL,AH;取AH内容到AL寄存器
OUT40H,AL;将AL内容送到LED灯显示
9.某计算机系统有一16550接口电路,其地址为68H-6FH。
若其数据传输要求采用7个数据位,1个停止位,偶校验,波特率为4800(外部时钟为18.432MHz。
(15分
(1写出16550的初始化代码。
(10分
(2若传输ASCII字符为’B’,请画出其传输波形图。
(5分
解:
(116550的端口地址范围为68H-6FH,因此其线路控制寄存器为6BH,用于波特率处理的寄存器分别为68H和69H。
根据16550的控制字格式和初始化流程,可以确定其控制字有两个:
其一:
进行波特率设置,有
(2404800
1610432.186
=⨯⨯=
N
;初始化16550MOVAL,9AHOUT6BH,AL;设置波特率MOVAL,240OUT68H,AL;波特率分频系数低8位MOVAL,0OUT69H,AL;波特率分频系数高8位;启动16550通信过程MOVAL,1AHOUT6BH,AL
(2作为一款串行芯片,在进行数据传输时是从最低位开始传输的,因此有:
对于ASCII字符’B’,可以查得其ASCII编码为42H,即01000010B。
在上述传输过程中,因为采用7位数据格式,因此D7位被舍弃。
因此最终传输的二进制序列为0100001B。
对于偶校验,易知传输序列中有2个’1’,因此校验位为’0’。
故波形如下:
起始位
D0
D1
D2
D3
D4
D5
D6
校验位
停止位
0010000101
10.Programcounter2ofthe8254sothatitgeneratesacontinuousseriesofpulsethathaveahightimeof4usandalowtimeof1us.MakesuretoindicatetheCLKfrequencyrequiredforthistask.(15分
解:
答案不唯一,参考答案如下。
因为要求产生高为4us,低为1us的连续波形,因此可以采用8254的方式2。
显然,若选用CLK为1MHz(即周期为1us,采用计数值为5,即可满足题意要求。
为43H,则8254的程序代码如下:
;初始化8254
MOVAL,B4H
OUT43H,AL
;向计数器2写入计数初值
MOVAL,5
OUT42H,AL;计数值低8位
MOVAL,0
OUT42H,AL;计数值高8位
同济大学课程考核试卷(B卷-答案2009—2010学年第一学期
课号:
100202课名:
微机原理及接口技术(双语考试考查:
考试
此卷选为:
期中考试(、期终考试(■、重考(试卷
年级专业学号姓名得分
一、简答题(35分,每题5分
1.Intherealmodeof8086,showthestartingandendingaddressofeachsegmentlocatedbythefollowingsegmentregistervalue.
(14500H
(20CE00H
解:
(1StartingAddress:
45000H,EndingAddress:
54FFFH
(2StartingAddress:
0CE000H,EndingAddress:
0DDFFFH
2.已知AX=14C6H,BX=80DCH,执行以下程序后,试问。
ADDAX,BX
JNOPROG1
JNCPROG2
JNSPROG3
JMPPROG4
(1分析标志位S,C,O,Z的取值情况。
(2指出程序将转向哪个标号?
解:
(1S=1,C=0,O=0,Z=0。
(2PROG1
3.Howmanyaddressinputsanddatainputsdoesthe32K×8bitDRAMdevicecontain?
解:
因为32K=215,因此,AddressInputs的数目为15
而数据宽度为8bit,故DataInputs的数目为8
4.Contrastamemory-mappedI/OsystemwithanisolatedI/Osystem.
解:
(P211
(1内存映射I/O系统
a地址空间与存储器重叠;
b不使用专门的In/Out指令;
c采用相同的I/O访问和内存访问寻址方式,但对I/O访问很慢。
(2独立I/O系统
d地址空间不与存储器重叠;
e需要专门的In/Out指令,且只能通过AL,AX,EAX寄存器进行数据交换;
f内存访问寻址方式采用20位地址寻址,而I/O寻址最多16位地址。
5.8086CPU复位后AX,CS,IP的值是什么?
复位后CPU的启动地址又是什么?
解:
复位后AX和IP的值都是0000H,而CS中的值为0FFFFH。
故复位后CPU的启动地址为0FFFF0H。
6.Whatconditiondoesalogic1(highlevelonthe8086ALEpinindicate.
解:
ALE为1(高电位时表明总线上地址数据有效,即AD0-AD15地址数据复用线上是有效的地址数据,而A16-A19状态地址复用线上是有效的地址数据。
该信号用于通知外部锁存器进行地址数据分离。
7.中断服务程序结束时,用RET指令代替IRET指令能否返回主程序,这样做会有什么后果?
解:
(RET是普通子程序的返回指令
IRET是中断服务程序的返回指令
在中断服务程序中,用RET来代替IRET可以返回主程序。
因为返回前在堆栈中还保留CS和IP的值。
但是这样做会有问题。
因为中断前保留在堆栈中的标志寄存器FLAGS的值没有弹出,这样返回主程序后,可能会引发标志位错误而导致程序流程控制错误。
二、分析与设计题(65分
8.某微型计算机系统,其CPU地址线为20位,数据线为8位。
需扩展内存140KB,其中RAM为128KB,选用62256(32K×8;ROM为12KB,选用EPROM2732(4K×8,要求内存地址空间从40000H开始连续分配,RAM在低地址,ROM在高地址。
(25分
(1分别需要多少块ROM和RAM?
给出每一块存储芯片的内存地址范围。
(10分
(2利用74LS138画出存储器地址译码图。
要求与CPU三总线有相应的连接。
(15分解:
(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-47FFFH
RAM2:
48000H-4FFFFH
RAM3:
50000H-57FFFH
RAM4:
58000H-5FFFFH
ROM1:
60000H-60FFFH
ROM2:
61000H-61FFFH
ROM3:
62000H-62FFFH
(2因为RAM芯片为连续配置,可以采用1片74LS138译码器。
而62256的地址范围为32K,因此其地址线位A0-A14。
又RAM的总地址范围为40000H-5FFFFH,因
0141519
而ROM芯片为连续配置,可以采用1片74LS138译码器。
而2732的地址范围为4K,因此其地址线位A0-A11。
又RAM的总地址范围为60000H-62FFFH,因此
0111219
A0-A11A0-A11D0-D72732RDOECS系统总线74LS138A12A13A14A17A18A15ORCS60000H-60FFFH61000H-61FFFH62000H-62FFFHCSABCANDY0Y1Y2Y3Y4G1G2AG2BORY5Y6Y7A16A19M/IOD0-D79.一个Intel8254芯片和8位CPU相连接,时钟0、1、2的寄存器以及控制寄存器端口地址分别为20H、21H、22H和23H,现有10KHz的时钟信号连入8254的CLK0端,且GATE0接高电平。
8254的初始化代码如下。
MOVAL,30HOUT23H,ALMOVAL,0E8HOUT20H,ALMOVAL,03HOUT20H,AL请回答如下问题:
(20分(1给出Intel8254的工作模式及其计数初值。
(10分(2画出8254的OUT0的输出波形。
(10分解:
(1从初始化根据题目要求,控制字为30H,表示采用0#计数器,依次写低8位和高8位计数值,采用工作方式0和二进制计数。
因此,计数值为03E8H=1000。
(2因为计数值为03E8H=1000。
因此对于10KHz的输入,在输出OUT0在启动计数第11页共7页
后变低,经过时间1000=0.1s后变高。
8254的OUT0的输出波形如下。
10KHz写入计数值时刻OUT000.020.040.060.080.1时间(秒)10.已知一个与总线接口的8255A接口电路如下图所示,其中k0-k7与8255A端口B相连,LED发光二极管D0-D7及相应的驱动电路与端口A相连,且已知8255A的端口地址为83F0H~83F3H。
要求如下。
(20分(1利用门电路和74LS138译码器设计图中所示的译码片选电路,产生满足给定条件的CS信号。
(6分(2将8255A的A1、A0、D0-D7、RD、WR与总线的信号线进行正确连接。
(6分(3若要将开关k0-k7的状态在对应的LED二极管D0-D7上随时反映出来,即:
若ki(i=0,…,7)开关闭合,则相应的LED灯Di(i=0,…,7)点亮。
编写一个8086汇编语言程序段,实现对8255A的初始化及要求的控制功能。
(8分第12页共7页
+5VAENA2A3r0r18255A译码片选电路PB0CSA1A0PB7PA0WRPB1r7k0k1k7A15RDPA1D0-D7PA7D0D1R0R1IOR总线ISAIOWMEMRMEMWALEA1A0D0-D7D7R7+5V74LS138ABCY0Y1Y2Y3D8-D15G1G2AG2BY4Y5Y6Y7解:
该题答案不唯一。
参考答案如下。
(1可以先把所要求的地址83F0H写成二进制形式1000_0011_1111_0000B,然后选择不同的地址线连入译码器电路,查看CS端能得到正确的译码即可。
(2在连线时看这样几个关键连线:
ISA总线的A1,A0分别连接到8255A的A1和A0做片内译码用,IOR信号连接到8255A的RD引脚,IOW信号连接到8255A的WR引脚,D0…D7数据总线连接到8255A的D0…D7端,地址线连接到译码电路输入,译码器电路有一个输出连接到CS。
(3程序:
只要求程序段,不要求完整的程序MOVDX,83F3H;控制口地址MOVAL,10000010B;依据8255A控制字对8255A初始化OUTDX,ALCALLDELAY;调用外部的延迟子程序TEST:
MOVDX,83F1H;B口地址INAL,DX;读B口状态XORAL,11111111B;将B口状态取反MOVDX,83F0H;A口地址OUTDX,AL;将取反后的B口状态送到A口,控制LED灯亮CALLDELAY;调用外部的延迟子程序第13页共7页