同济大学2009-2010(1)微机原理期终试题(A B卷)含答案

更新时间:2024-06-08 08:40:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

同济大学课程考核试卷(A卷) - 答案

2009—2010学年第一学期

课号:100202 课名:微机原理及接口技术(双语) 考试考查:考试 此卷选为:期中考试( )、期终考试( ■ )、重考( )试卷

年级 专业 学号 姓名 得分

一、简答题(30分,每题5分)

1. Choose five different instructions to accomplish AL=0.

解:答案不唯一,参考答案如下 MOV AL, 0 AND AL, 0 SUB AL, AL XOR AL, AL SHL AL, 8

2. Compare the difference between AND and TEST instruction.

解:

AND指令会影响目的寄存器内容,而TEST不影响目的寄存器的内容。

3. 已知AX=3024H, BX=0A010H,执行以下CMP AX, BX指令后,试分析标志位S,C,O,Z的

值,并指出AX的值。 解:

CMP指令运行后,AX内容不受影响,仍为3024H。正数减去负数后其结果为负数(9014H),因此O=1。高位有借位,因此C=1。显然,S=1,Z=0。 4. What condition does a logic 1 (high level) on the 8086 ALE pin indicate.

解:

ALE为1(高电位)时表明总线上地址数据有效,即AD0-AD15地址数据复用线上是有效的地址数据,而A16-A19状态地址复用线上是有效的地址数据。该信号用于通知外部锁存器进行地址数据分离。

5. 当INT 22H指令运行时,请给出中断向量表中该中断对应的物理位置。(假设采用

8086 CPU系统) 解:

已知中断向量号为22H,故在中断向量表中所处的位置为22H×4=88H。因为8086系统的中端向量表位于内存的最低端,故该中断向量在地址范围为00088H-0008BH。 6. 简要说明中断处理的流程。

解:流程如下:

(1) 将标志寄存器内容压栈;

(2) 将标志寄存器的TF和IF标志清零; (3) 将CS寄存器内容压栈; (4) 将IP寄存器内容压栈;

(5) 根据中断向量号查询中断向量表,获取中断服务程序的段地址和偏移地址,分

别装入CS和IP;

第 1 页 共 7 页

(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 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM2 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM3 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM4 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用于地址译码,地址译码图如下: 第 2 页 共 7 页

A0-A14A0-A14D0-D762256RDWROEWECS系统总线74LS138A15A16A17ABCY0Y1Y2Y3A18A19M/IOY4G1G2AG2BY5Y6Y740000H-47FFFH48000H-4FFFFH50000H-57FFFH58000H-5FFFFHCSCSCSD0-D7 而ROM芯片为连续配置,可以采用1片74LS138译码器。而2732的地址范围为4K,因此其地址线位A0-A11。又RAM的总地址范围为60000H-62FFFH,因此有如下地址范围。 芯片 ROM1 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 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 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ROM2 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ROM3 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用于地址译码,地址译码图如下: 第 3 页 共 7 页

A0-A11A0-A11D0-D72732RDOECS系统总线74LS138A12A13A14A17A18A15ORCS60000H-60FFFH61000H-61FFFH62000H-62FFFHCSABCANDY0Y1Y2Y3Y4G1G2AG2BORY5Y6Y7A16A19M/IOD0-D7

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的各个端口地

址分配如下。 A7 A6 A5 A4 A3 A2 A1 A0 8255 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 1 0 0 0 0 1 1 控制寄存器 43H 0 地址译码图如下: 第 4 页 共 7 页

+5Vr0r18255A74LS138A2A3A4A6ANDr7k0k1PB0CSA1A0RDPA0WRPA1D0-D7PA7D7PB7D0D1PB1ABCY0Y1Y2Y3Y4k7M/IOA5A7G1G2AG2BR0R1Y5Y6Y7总线A1A0RDWR

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的控制字格式和初始化流程,可以确定其控制字有两个: 其一:进行波特率设置,有

第 5 页 共 7 页

ISAD8-D15R7+5VD0-D7

(2) 对于8255而言,A口作为输出,B口作为输入。且都是基本的I/O方式,故A

口和B口都选用方式,因此8255的控制字如下: D7 A组方式(方式0) A口(输出) D6 D5 D4 C口高4位 D3 B组方式(方式0) B口(输入) C口低4位 D2 D1 D0 1 0 0 0 因此,程序代码如下

;8255初始化代码 MOV AL, 82H OUT 43H, AL

;功能代码 IN AL, 41H MOV [BX], AL POP AX MOV AL, AH OUT 40H, AL

0 0 1 0 ;将控制字放入到AL寄存器

;将控制字送入到8255的控制寄存器

;从8255的B口读入开关状态数据到AL寄存器 ;将AL寄存器内容放入到DS:BX所指数据段 ;从堆栈中弹出数据到AX ;取AH内容到AL寄存器 ;将AL内容送到LED灯显示

启动分频 D7 发送间隔 D6 附加位 D5 偶校验 D4 启动校验 D3 1位停止位 D2 7位数据 D1 D0 1 0 0 1 1 0 1 因为采用18.432MHz,若要波特率为4800,这分频系数N为 0 ?18.432?10??240 N?616?4800其二,进行正常的通信,有 正常通信 D7 发送间隔 D6 附加位 D5 偶校验 D4 启动校验 D3 1位停止位 D2 7位数据 D1 D0 0 0 0 1 1 0 1 0 因此,16550的初始化代码如下:

;初始化16550 MOV AL, 9AH OUT 6BH, AL ;设置波特率 MOV AL, 240 OUT 68H, AL ;波特率分频系数低8位 MOV AL, 0 OUT 69H, AL ; 波特率分频系数高8位 ;启动16550通信过程 MOV AL, 1AH OUT 6BH, AL

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

对于ASCII字符’B’,可以查得其ASCII编码为42H,即01000010B。在上述传输过程中,因为采用7位数据格式,因此D7位被舍弃。因此最终传输的二进制序列为0100001B。

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

起始位D0D1D2D3D4D5D6校验位停止位0010000101

第 6 页 共 7 页

10. Program counter 2 of the 8254 so that it generates a continuous series of pulse that have

a high time of 4us and a low time of 1us. Make sure to indicate the CLK frequency required for this task.(15分)

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

因为要求产生高为4us,低为1us的连续波形,因此可以采用8254的方式2。显然,若选用CLK为1MHz(即周期为1us),采用计数值为5,即可满足题意要求。 因此,根据8254的控制字,有 选择计数器2 D7 D6 写计数值高低字节 D5 D4 D3 方式2 D2 D1 二进制计数 D0 1 0 1 1 0 1 0 0 假定8254的地址范围为40H-43H,即计数器2的地址为42H,控制字寄存器的地址为43H,则8254的程序代码如下:

;初始化8254 MOV AL, B4H OUT 43H, AL

;向计数器2写入计数初值 MOV AL, 5 OUT 42H, AL ;计数值低8位 MOV AL, 0 OUT 42H, AL ;计数值高8位

同济大学课程考核试卷(B卷) - 答案

2009—2010学年第一学期

课号:100202 课名:微机原理及接口技术(双语) 考试考查:考试 此卷选为:期中考试( )、期终考试( ■ )、重考( )试卷

年级 专业 学号 姓名 得分

一、简答题(35分,每题5分)

1. In the real mode of 8086, show the starting and ending address of each segment located

by the following segment register value. (1) 4500H (2) 0CE00H 解:

(1) Starting Address:45000H,Ending Address:54FFFH (2) Starting Address:0CE000H,Ending Address:0DDFFFH 2. 已知AX=14C6H, BX=80DCH,执行以下程序后,试问。

ADD AX, BX JNO PROG1

第 7 页 共 7 页

JNC PROG2 JNS PROG3 JMP PROG4

(1) 分析标志位S,C,O,Z的取值情况。 (2) 指出程序将转向哪个标号? 解:

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

3. How many address inputs and data inputs does the 32K×8bit DRAM device contain?

解:

因为32K=215,因此,Address Inputs的数目为15 而数据宽度为8bit,故Data Inputs的数目为8

4. Contrast a memory-mapped I/O system with an isolated I/O system.

解:(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. 8086 CPU复位后AX, CS, IP的值是什么?复位后CPU的启动地址又是什么?

解:

复位后AX和IP的值都是0000H,而CS中的值为0FFFFH。故复位后CPU的启动地址为0FFFF0H。

6. What condition does a logic 1 (high level) on the 8086 ALE pin indicate.

解:

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

第 8 页 共 7 页

(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 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM1 0 1 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM2 0 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM3 0 1 0 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 RAM4 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用于地址译码,地址译码图如下: 第 9 页 共 7 页

A0-A14A0-A14D0-D762256RDWROEWECS系统总线74LS138A15A16A17ABCY0Y1Y2Y3A18A19M/IOY4G1G2AG2BY5Y6Y740000H-47FFFH48000H-4FFFFH50000H-57FFFH58000H-5FFFFHCSCSCSD0-D7 而ROM芯片为连续配置,可以采用1片74LS138译码器。而2732的地址范围为4K,因此其地址线位A0-A11。又RAM的总地址范围为60000H-62FFFH,因此有如下地址范围。 芯片 ROM1 A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 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 0 1 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 ROM2 0 1 1 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 ROM3 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用于地址译码,地址译码图如下: 第 10 页 共 7 页

A0-A11A0-A11D0-D72732RDOECS系统总线74LS138A12A13A14A17A18A15ORCS60000H-60FFFH61000H-61FFFH62000H-62FFFHCSABCANDY0Y1Y2Y3Y4G1G2AG2BORY5Y6Y7A16A19M/IOD0-D7

9. 一个Intel 8254芯片和8位CPU相连接,时钟0、1、2的寄存器以及控制寄存器端

口地址分别为20H、21H、22H和23H,现有10KHz的时钟信号连入8254的CLK0端,且GATE0接高电平。8254的初始化代码如下。

MOV AL,30H OUT 23H,AL MOV AL,0E8H OUT 20H,AL MOV AL,03H OUT 20H,AL 请回答如下问题:(20分)

(1) 给出Intel 8254的工作模式及其计数初值。(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) 程序:只要求程序段,不要求完整的程序 MOV DX, 83F3H ;控制口地址

MOV AL, 10000010B ;依据8255A控制字对8255A初始化 OUT DX, AL CALL DELAY ;调用外部的延迟子程序 TEST: MOV DX, 83F1H ; B口地址 IN AL, DX ;读B口状态 XOR AL, 11111111B ;将B口状态取反 MOV DX, 83F0H ;A口地址 OUT DX, AL ;将取反后的B口状态送到A口,控制LED灯亮 CALL DELAY ;调用外部的延迟子程序

第 13 页 共 7 页

本文来源:https://www.bwwdw.com/article/6c56.html

Top