同济大学课程考核试卷(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(高电位时表明总线上地址数据有效,即 AD 0-AD 15地址数据复用线上是 有效的地址数据,而 A 16-A 19状态地址复用线上是有效的地址数据。该信号用于通知 外部锁存器进行地址数据分离。
5. 当 INT 22H 指令运行时,请给出中断向量表中该中断对应的物理位置。 (假设采用 8086 CPU系统
解:
已知中断向量号为 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 , 因此其地址线位 A 0-A 14。 又 RAM 的总地址范围为 40000H-5FFFFH , 因
0141519
而 ROM 芯片为连续配置,可以采用 1片 74LS138译码器。而 2732的地址范围 为 4K ,因此其地址线位 A 0-A 11。又 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初始化代码
MOV AL, 82H ; 将控制字放入到 AL 寄存器 OUT 43H, AL ; 将控制字送入到 8255的控制寄存器 ; 功能代码
IN AL, 41H ; 从 8255的 B 口读入开关状态数据到 AL 寄存器 MOV [BX], AL ; 将 AL 寄存器内容放入到 DS:BX所指数据段 POP AX ; 从堆栈中弹出数据到 AX MOV AL, AH ; 取 AH 内容到 AL 寄存器
OUT 40H, 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
; 初始化 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位数据格式,因此 D 7位被舍弃。因此最终传输的二进制序 列为 0100001B 。
对于偶校验,易知传输序列中有 2个 ’ 1’ ,因此校验位为 ’ 0’ 。 故波形如下: 起 始 位 D0 D1 D2 D3 D4 D5 D6 校 验 位 停 止 位
0010000101
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,即可满足题意要求。
为 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.
(14500H (20CE00H 解:
(1Starting Address:45000H , Ending Address:54FFFH (2Starting Address:0CE000H , Ending Address:0DDFFFH 2. 已知 AX=14C6H, BX=80DCH,执行以下程序后,试问。 ADD AX, BX JNO PROG1 JNC PROG2 JNS PROG3
JMP PROG4
(1分析标志位 S,C,O,Z 的取值情况。 (2指出程序将转向哪个标号 ? 解:
(1S=1,C=0,O=0,Z=0。 (2PROG1
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(高电位时表明总线上地址数据有效,即 AD 0-AD 15地址数据复用线上是 有效的地址数据,而 A 16-A 19状态地址复用线上是有效的地址数据。该信号用于通知 外部锁存器进行地址数据分离。
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 , 因此其地址线位 A 0-A 14。 又 RAM 的总地址范围为 40000H-5FFFFH , 因
0141519
而 ROM 芯片为连续配置,可以采用 1片 74LS138译码器。而 2732的地址范围 为 4K ,因此其地址线位 A 0-A 11。又 RAM 的总地址范围为 60000H-62FFFH ,因此
0111219
A0-A11 A0-A11 D0-D7 2732 RD OE CS 系 统 总 线 74LS138 A12 A13 A14 A17 A18 A15 OR CS 60000H-60FFFH 61000H-61FFFH 62000H-62FFFH CS A B C AND Y0 Y1 Y2 Y3 Y4 G1 G2A G2B OR Y5 Y6 Y7 A16 A19 M/IO D0-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 页
后变低,经过时间
后变高。8254 的 OUT0 的输出波形如下。
10KHz 写入计数 值时刻 OUT0 0 0.02 0.04 0.06 0.08 0.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 页
+5V AEN A2 A3 r0 r1 8255A 译 码 片 选 电 路 PB0 CS A1 A0 PB7 PA0 WR PB1 r7 k0 k1 k7 A15 RD PA1 D0-D7 PA7 D0 D1 R0 R1 IOR 总 线 ISA IOW MEMR MEMW ALE A1 A0 D0-D7 D7 R7 +5V 74LS138 A B C Y0 Y1 Y2 Y3 D8-D15 G1 G2A G2B Y4 Y5 Y6 Y7 解:该题答案不唯一。参考答案如下。 (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 页
同济大学2009-2010(1)微机原理期终试题(AB卷)含答案.



