同济大学1微机原理期终试题A B卷含答案.docx

上传人:b****5 文档编号:3578054 上传时间:2022-11-24 格式:DOCX 页数:17 大小:295.29KB
下载 相关 举报
同济大学1微机原理期终试题A B卷含答案.docx_第1页
第1页 / 共17页
同济大学1微机原理期终试题A B卷含答案.docx_第2页
第2页 / 共17页
同济大学1微机原理期终试题A B卷含答案.docx_第3页
第3页 / 共17页
同济大学1微机原理期终试题A B卷含答案.docx_第4页
第4页 / 共17页
同济大学1微机原理期终试题A B卷含答案.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

同济大学1微机原理期终试题A B卷含答案.docx

《同济大学1微机原理期终试题A B卷含答案.docx》由会员分享,可在线阅读,更多相关《同济大学1微机原理期终试题A B卷含答案.docx(17页珍藏版)》请在冰豆网上搜索。

同济大学1微机原理期终试题A B卷含答案.docx

同济大学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(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)根据中断向量号查询中断向量表,获取中断服务程序的段地址和偏移地址,分别装入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,因此有如下地址范围。

芯片

A19

A18

A17

A16

A15

A14

A13

A12

A11

A10

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

RAM1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

RAM2

0

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

RAM3

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

RAM4

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

显然,A0-A14直接接到62256芯片,而A15-A19用于地址译码,地址译码图如下:

而ROM芯片为连续配置,可以采用1片74LS138译码器。

而2732的地址范围为4K,因此其地址线位A0-A11。

又RAM的总地址范围为60000H-62FFFH,因此有如下地址范围。

芯片

A19

A18

A17

A16

A15

A14

A13

A12

A11

A10

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

ROM1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

ROM2

0

1

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

ROM3

0

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

1

0

1

1

1

1

1

1

1

1

1

1

1

1

显然,A0-A11直接接到2732芯片,而A12-A19用于地址译码,地址译码图如下:

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的各个端口地址分配如下。

8255

A7

A6

A5

A4

A3

A2

A1

A0

A

40H

0

1

0

0

0

0

0

0

B

41H

0

1

0

0

0

0

0

1

C

42H

0

1

0

0

0

0

1

0

控制寄存器

43H

0

1

0

0

0

0

1

1

地址译码图如下:

(2)对于8255而言,A口作为输出,B口作为输入。

且都是基本的I/O方式,故A口和B口都选用方式,因此8255的控制字如下:

A组方式(方式0)

A口(输出)

C口高4位

B组方式(方式0)

B口(输入)

C口低4位

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

0

0

0

1

0

因此,程序代码如下

;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分)

解:

(1)16550的端口地址范围为68H-6FH,因此其线路控制寄存器为6BH,用于波特率处理的寄存器分别为68H和69H。

根据16550的控制字格式和初始化流程,可以确定其控制字有两个:

其一:

进行波特率设置,有

启动分频

发送间隔

附加位

偶校验

启动校验

1位停止位

7位数据

D7

D6

D5

D4

D3

D2

D1

D0

1

0

0

1

1

0

1

0

因为采用18.432MHz,若要波特率为4800,这分频系数N为

其二,进行正常的通信,有

正常通信

发送间隔

附加位

偶校验

启动校验

1位停止位

7位数据

D7

D6

D5

D4

D3

D2

D1

D0

0

0

0

1

1

0

1

0

因此,16550的初始化代码如下:

;初始化16550

MOVAL,9AH

OUT6BH,AL

;设置波特率

MOVAL,240

OUT68H,AL;波特率分频系数低8位

MOVAL,0

OUT69H,AL;波特率分频系数高8位

;启动16550通信过程

MOVAL,1AH

OUT6BH,AL

(2)作为一款串行芯片,在进行数据传输时是从最低位开始传输的,因此有:

对于ASCII字符’B’,可以查得其ASCII编码为42H,即01000010B。

在上述传输过程中,因为采用7位数据格式,因此D7位被舍弃。

因此最终传输的二进制序列为0100001B。

对于偶校验,易知传输序列中有2个’1’,因此校验位为’0’。

故波形如下:

10.Programcounter2ofthe8254sothatitgeneratesacontinuousseriesofpulsethathaveahightimeof4usandalowtimeof1us.MakesuretoindicatetheCLKfrequencyrequiredforthistask.(15分)

解:

答案不唯一,参考答案如下。

因为要求产生高为4us,低为1us的连续波形,因此可以采用8254的方式2。

显然,若选用CLK为1MHz(即周期为1us),采用计数值为5,即可满足题意要求。

因此,根据8254的控制字,有

选择计数器2

写计数值高低字节

方式2

二进制计数

D7

D6

D5

D4

D3

D2

D1

D0

1

0

1

1

0

1

0

0

假定8254的地址范围为40H-43H,即计数器2的地址为42H,控制字寄存器的地址为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.

(1)4500H

(2)0CE00H

解:

(1)StartingAddress:

45000H,EndingAddress:

54FFFH

(2)StartingAddress:

0CE000H,EndingAddress:

0DDFFFH

2.已知AX=14C6H,BX=80DCH,执行以下程序后,试问。

ADDAX,BX

JNOPROG1

JNCPROG2

JNSPROG3

JMPPROG4

(1)分析标志位S,C,O,Z的取值情况。

(2)指出程序将转向哪个标号?

解:

(1)S=1,C=0,O=0,Z=0。

(2)PROG1

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(highlevel)onthe8086ALEpinindicate.

解:

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,因此有如下地址范围。

芯片

A19

A18

A17

A16

A15

A14

A13

A12

A11

A10

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

RAM1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

RAM2

0

1

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

RAM3

0

1

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

RAM4

0

1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

0

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

1

显然,A0-A14直接接到62256芯片,而A15-A19用于地址译码,地址译码图如下:

而ROM芯片为连续配置,可以采用1片74LS138译码器。

而2732的地址范围为4K,因此其地址线位A0-A11。

又RAM的总地址范围为60000H-62FFFH,因此有如下地址范围。

芯片

A19

A18

A17

A16

A15

A14

A13

A12

A11

A10

A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

ROM1

0

1

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

ROM2

0

1

1

0

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

0

1

1

1

1

1

1

1

1

1

1

1

1

1

ROM3

0

1

1

0

0

0

1

0

0

0

0

0

0

0

0

0

0

0

0

0

0

1

1

0

0

0

1

0

1

1

1

1

1

1

1

1

1

1

1

1

显然,A0-A11直接接到2732芯片,而A12-A19用于地址译码,地址译码图如下:

9.一个Intel8254芯片和8位CPU相连接,时钟0、1、2的寄存器以及控制寄存器端口地址分别为20H、21H、22H和23H,现有10KHz的时钟信号连入8254的CLK0端,且GATE0接高电平。

8254的初始化代码如下。

MOVAL,30H

OUT23H,AL

MOVAL,0E8H

OUT20H,AL

MOVAL,03H

OUT20H,AL

请回答如下问题:

(20分)

(1)给出Intel8254的工作模式及其计数初值。

(10分)

(2)画出8254的OUT0的输出波形。

(10分)

解:

(1)从初始化根据题目要求,控制字为30H,表示采用0#计数器,依次写低8位和高8位计数值,采用工作方式0和二进制计数。

因此,计数值为03E8H=1000。

(2)因为计数值为03E8H=1000。

因此对于10KHz的输入,在输出OUT0在启动计数后变低,经过时间

后变高。

8254的OUT0的输出波形如下。

10.已知一个与总线接口的8255A接口电路如下图所示,其中k0-k7与8255A端口B相连,LED发光二极管D0-D7及相应的驱动电路与端口A相连,且已知8255A的端口地址为83F0H~83F3H。

要求如下。

(20分)

(1)利用门电路和74LS138译码器设计图中所示的译码片选电路,产生满足给定条件的

信号。

(6分)

(2)将8255A的A1、A0、D0-D7、

与总线的信号线进行正确连接。

(6分)

(3)若要将开关k0-k7的状态在对应的LED二极管D0-D7上随时反映出来,即:

若ki(i=0,…,7)开关闭合,则相应的LED灯Di(i=0,…,7)点亮。

编写一个8086汇编语言程序段,实现对8255A的初始化及要求的控制功能。

(8分)

解:

该题答案不唯一。

参考答案如下。

(1)可以先把所要求的地址83F0H写成二进制形式1000_0011_1111_0000B,然后选择不同的地址线连入译码器电路,查看

端能得到正确的译码即可。

(2)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 小升初

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1