10.中断向量表的功能是什么?如何利用中断向量表获得中断服务程序的入口地址?
答:中断向量表的功能是存放各中断处理子程序的入口地址,供CPU处理中断时查询使用。CPU利用中断向量表获得中断服务程序的入口地址的方法是:将中断类型号乘以4,得到中断向量存放首址。将该地址开始的四个字节内容依次作为IP的低位字节、IP的高位字节,CS的低位字节、CS的高位字节,从而得到中断服务子程序的入口地址。
*11.自定义一个类型码为79H的软中断完成ASCII码到BCD数的转换。编写程序将键入的一串十进制数放到以BCDMM为首地址的存储区中。 答:
第十二章习题与参考答案
1.何为可编程接口芯片? IBM PC/XT机中使用的可编程接口芯片有哪些? 答:大多数接口芯片都设计成可用编程的方法对接口功能进行选择和设定,这样的芯片称为可编程接口芯片。IBM PC/XT机中使用的可编程接口芯片有:可编程序中断控制器8259A、可编程序计数器/定时器 8253-5、可编程序并行通信接口芯片8255A-5、可编程序串行异步通信接口芯片8250、可编程序直接内存访问控制器8237A-5。
2.一片8259最多可以处理几个中断源的中断请求? 两片级联在一起呢? 答:一片8259最多可以处理8个中断源的中断请求,两片级联在一起最多可以处理15个中断源的中断请求。 3.如何屏蔽来自某一台设备的中断? 如何屏蔽与8259从片相联的所有设备的中断请求? 如何屏蔽所有可屏蔽中断请求?
答:将中断控制器8259的中断屏蔽寄存器IMR中对应某设备的中断屏蔽位置1,可屏蔽来自该设备的中断;将主8259的中断屏蔽寄存器IMR中对应从8259中断请求的中断屏蔽位置1,可屏蔽与8259从片相联的所有设备的中断请求;将CPU中标志寄存器中的IF位置0即可屏蔽所有可屏蔽中断。
4.8259主片内中断屏蔽寄存器的端口地址是多少? 8259从片内中断屏蔽寄存器的端口地址是多少?
答:4. 8259主片内中断屏蔽寄存器的端口地址是21H,8259从片内中断屏蔽寄存器的端口地址是A1H。
5.计数器/定时器8253有几种工作方式,试述方式3的工作过程。 答:计数器/定时器8253有6种工作方式,其方式3的工作过程如下:
首先写入控制字,输出端OUT2变为高电平作为初始状态。写入计数初始值后,计数执行部件开始减1计数。当计数到一半时,输出OUT2变为低电平。计数到终值时,输出端OUT2又变为高电平。之后,马上自动重装计数初值到计数执行部件,开始下一个周期。
6.要让8253的输出OUT2恒为1,计数器2不能工作。为此,输入端GATE2应提供高电平还是低电平?
答:输入端GATE2应提供低电平,使计数器2不工作。 7.已知 8253 的时钟为 1.19M(HZ),要用定时器2 控制扬声器发出 119HZ 的声音,问8253中定时器2的计数初值应为多少?
6
答:8253 中计数器 2 的计数初值应为 : 1.19*10 /119=10000. 8.8255的61H端口的第0位连接到哪? 第1位连接到哪? 在发声程序中这两位应如何设置? 答:8255的61H端口的第0位连接到8253的GATE端,第1位连接到扬声器驱动器前“与门”的一端,若采用软件延时发声(8253定时器2不工作),在发声程序中将61H端口的第0位置0,然后让第1位0/1交替变化。若采用硬件(8253定时器2)控制发声,在发声程序中将61H端口的第0位和第1位都置1。详见下图:
9.已有一个实现延时1秒的过程,名为DELAY,又知8253的CLK为1.19M。试编写一个程序,利用8253并调用过程 DELAY 实现按 300(HZ)赫兹的频率发声5秒。(8253的控制端口地址为43H,应使用的控制字为B6H,计数器 2 的地址为42H) 答:所求程序如下: code SEGMENT
ASSUME CS:code
start: MOV AL,0b6h ;写8253的控制字寄存器,使用计数器2,按方式3工作
OUT 43h,AL
MOV DX,12h ;将1.19M(CLK的频率)送DX、AX
MOV AX,2870h MOV BX,300
DIV BX ;300为发声频率,求计数初始值 OUT 42h,AL ;16位计数初值分两次送计数器2 MOV AL,AH OUT 42h,AL IN AL,61h MOV AH,AL
OR AL,3 ;最低两位置1,其它位不变 OUT 61h,AL
MOV CX,5 ;循环5次,控制发声5秒钟 lop0:CALL DELAY
LOOP lop0
MOV AL,AH OUT 61h,AL MOV AH,4ch INT 21h code ends
end start
第十三章习题与参考答案
1.何为多级存储系统? 为什么在计算机中要使用多级存储系统? 答:多级存储系统是指由 CACHE, 主存及虚拟存储器构成的存储系统。在计算机中使用多级
存储系统, 利用 CACHE 实现了高速存取,解决了与 CPU 不同步的问题,同时利用虚拟存储器满足了计算机对存储器的海量存储要求,而使系统的价格控制在用户可接受的程度内。 2.动态 RAM 工作时有何特点? 和静态 RAM 比较, 有什么优点和不足? 动态RAM和静态 RAM 分别用在何处? 答:动态 RAM 工作时要不断进行刷新, 和静态 RAM 比较, 它的集成度高, 价格便宜, 但速度慢,因此一般用于作大容量内存。而静态 RAM 集成度低, 价格高, 但速度快, 故一般用于做 Cache。 3.要使一个 64K 的存储体占用从 128K 开始的连续 64K 内存空间, 问20根地址线 A19~A0 应如何取值? 写出 16 进制的地址值。 答:A. A19~A0 的取值应为:
A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 0 0 1 0 X X X X X X X X X X X X X X X X B.16 进制表示的地址值为: 2YYYYH, 其中各Y的取值范围为0~F,具体取何值由存储单元的地址决定.
4.设CPU有20位地址A0~A19, 8位数据D0~D7, 另有M/IO#, RD#, WR# 等信号输出. 试用16K*8 的静态存储器芯片组织一个64K的存储器, 使其占用从128K开始的连续64K内存空间, 画出逻辑连接图. 答:略