2002 《机原理与应用》 B卷答案
1.(5分)已知AL=10101101B,BL=10001010B。
求执行下列指令后AL寄存器的内容以及各状态标志位的值。
(1)ADD AL,BL (2)SUB AL,BL
解:
P C S A Z O AL (1)ADD AL,BL ;0 1 0 1 0 1 37H
(2)SUB AL,BL ;0 0 0 0 0 0 13H
2.(5分)设有一起始地址标号为INT_ROUT的28H型中断例程,试编写装填中断向量表的程序段。
解:
(1)MOV AX,0
MOV ES,AX
MOV DI,28H*4
MOV AX,OFFSET I NT_ROUT
CLD
STOSW
MOV AX,SEG INT_ROUT
STOSW
或者:(2)PUSH DS
MOV AX,SEG INT_ROUT
MOV DS,AX
MOV DX,OFFSET I NT_ROUT
MOV AH,25H
MOV AL,28H
INT 21H
POP DS
3.(10分)在8088 CPU的最大方式系统中,设20位地址全部需要锁存,数据线使用总线收发器,请问该CPU与系统总线的接口逻辑中需要哪些芯片?各需多少
片?并叙述每块芯片的作用。
解:8284 一片:给CPU提供RESET、READY、CLK信号;
8282 三片:锁存20位地址
8286 一片:增强总线带负载能力,(或数据驱动)
8288 一片:从CPU接收S2S1S0信号,发出相应的控制信号
4.(5分)请问一个总线周期至少包括几个时钟周期?CPU怎么决定是否需要插入T W状态?若需要插入则应插在什么状态之后?
解:四个,CPU在T3状态检测Ready引脚,若为低电平,则在T3后插入T W状态。
T W状态重复T3状态的功能。
5.(3分)一个有16个字的数据区,它的起始地址为70A0:DDF6,那么该数据区的最后一个字的物理首地址为多少?
解:LA:70A0:DE14H ;PA:7E814H
6.(7分)PC/XT机的输入输出方式有哪几种?各有什么特点?
解:(1)无条件:需要外设处于就绪状态,硬件简单;
(2)查询:CPU需要不断地查询外设是否就绪,浪费CPU时间,硬件较简单;
(3)中断:外设准备好后,向CPU发中断请求,请求CPU完成数据传输,外设与CPU 并行;硬件又比前两者复杂。
(4)DMA:CPU对DMAC初始化后,由DMAC控制总线完成数据传送;CPU与I/O并行。
速度快,用于大量数据传输。
DMAC占用总线时,CPU不能用。
硬件更复杂。
7.(10分)写出只有一块8259A的8088系统中8259A的初始化程序,8259A的偶地
址为2130H,要求:
(a)请求电平触发;
(b )IR0请求的中断类型是28H ; (c ) S P/EN 输出一个信号,给数据总线收发器; (d )在第二个INTA 脉冲结束时,ISR 位自动清除; (e ) 清IMR 。
已知8259A 初始化命令字格式如下:
答: M OV AL ,00011011B
MOV DX ,2130H OUT DX ,AL MOV AL ,28H INC DX OUT DX ,AL MOV AL ,00001111B OUT DX ,AL
8、(15分)现要求用一个8255作为终端机的接口。
由PA 通道输出字符到终端机的显示缓冲器,PB 通道用于键盘输入字符,PC 通道为终端状态信息输入通道。
当PC 0=1表示键盘输入字符就绪, PC 7=0表示显示缓冲器已空。
要求用查询方法把从键盘输入的每个字符都送到终端机的显示缓冲器上,当输入的是回车符(ASCII 码为0DH )则操作结束。
已知控制字格式如下图所示,并假设该8255A 芯片的端口地址为60H-63H 。
请编写包括8255初始化的输入输出驱动程序。
8255方式字格式为: 解:MOV AL ,10001011B OUT 63H ,AL
AGAIN1: I N AL ,62H TEST AL ,01H JZ AGAIN1
AGAIN2: I N AL ,62H TEST A L ,80H JNZ AGAIN2 IN AL ,61H
ICW1 ICW2 主ICW3 从
ICW3 ICW4
OUT 60H,AL
CMP AL,0DH
JNZ AGAIN1
9.(10分)关于8253。
(1)8253内部有哪几个通道?简要说明CLK、OUT和GATE引脚的含义。
(2)8253-5通道2工作于方式3,输入时钟频率为1MHz,定时10ms。
已知通道0
的口地址为3F0H,试编写初始化程序段。
8253-5的控制字格式为:
解:(1)8253内部有三个通道,每个通道都可独立地用于计数和定时。
CLK:输入脉冲线。
计数器就是对这个脉冲技术。
8253规定,加在CLK引脚的输入时钟周期不能小于380ns.
GATE:门空信号输入引脚。
这是控制计数器工作的一个外部信号。
当GATE因脚为低电平(无效)时,通常都是禁止计数器工作;只有当计数器为高点平时,才允许计数器工作。
OUT:输出引脚。
当计数到“0”时,OUT引线上必然有输出,输出信号的波形取决于工作方式。
(2)解:N= 1*10=10;初始化程序为
MOV AL,10010110B MOV DX,3F3H
OUT DX,AL
MOV AL,10
MOV DX,3F2H
OUT DX,AL 或:
MOV AL,10010111B
MOV DX,3F3H
OUT DX,AL
MOV AL,10H
MOV DX,3F2H
OUT DX,AL
10、(15分)、设有数组X和Y。
X数组中有X1,…,X10;Y数组
中有Y1,…,Y10。
程序功能为:
Z1=X1+Y1Z2=X2+Y2Z3=X3-Y3Z4=X4-Y4Z5=X5-Y5
Z6=X6+Y6Z7=X7-Y7Z8=X8-Y8Z9=X9+Y9Z10=X10+Y10结果存入Z数组。
请编写完整的源程序完成上述功能。
解:
DATA SEGMENT
X DW X1,X2,X3,X4,X5,X6,X7,X8,X9,X10 Y DW Y1,Y2,Y3,Y4,Y5,Y6,Y7,Y8,Y9,Y10 Z DW Z1,Z2,Z3,Z4,Z5,Z6,Z7,Z8,Z9,Z10 LOGIC_RULE DW 00DCH
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 100 DUP (?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE, DS:DATA, SS:STACK
START PROC FAR
BEGIN:PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV BX,0
MOV CX,10
MOV DX,LOGIC_RULE
NEXT:MOV AX,X[BX]
SHR DX,1
JC SUBTRACT
ADD AX,Y[BX]
JMP SHORT RESULT
SUBTRACT:SUB AX,Y[BX]
RESULT:MOV Z[BX],AX
LOOP NEXT
RET
START ENDP
CODE ENDS
END BEGIN
11、(15分)某微机系统的CPU为8088,且工作于最小方式,原有系统RAM存储器模块的容量为128K字节,其首地址为20000H,现用2128RAM芯片(容量2K×8位)扩展一个容量为16K字节的存储器模块,地址和原有RAM模块的地址相连接,试完成该扩展RAM模块的设计。
(注:可选用3:8译码器、与门、或门、非门等)。
解:(1)原模块 128K = 217 = 20000H
原模块首地址20000H,末地址为3FFFF H
(2)新模块从40000H 开始, 16K字节 = 214 = 4000H
首地址40000H,末地址为43FFF H;高6位为010000B
16KB/2KB=8,新模块需要8片2128 RAM 芯片。
20位地址分配: 2KB RAM 芯片,211个单元,片内寻址用11根地址线, A10 - A0
16K 模块共需8片RAM ,用3:8译码器的8个输出信号作为片选,地址线A13 A12 A11连3:8译码器的C、B、A引脚。
地址信号的高六位 A19A18A17A16A15A14连与非门,作为该模块的选择信号。
当A19A18A17A16A15A14 = 010000时选种该模块。
连接图略。