8.1 8088/8086中断向量表的作用是什么?
【答】中断向量是中断服务程序的入口地址。将所有中断向量集中放在一起,形成中断向量表。8086系统有256个类型的中断源。每个类型对应一个中断向量,一个中断向量由四个字节组成:2个高地址字节:存放中断服务程序的代码段的段值;2个低地址字节:存放中断服务程序的偏移地址。中断向量表放在内存的地段地址0单元开始的单元:00000H~03FFFH。
8.2 什么叫中断向量?它放在哪里?对应于1CH的中断向量在哪里?如1CH中断程序从5110H:2030H开始,则中断向量应怎样存放?
【答】中断向量是中断处理子程序的入口地址,它放在中断向量表中,由1ch*4=70h知中断向量存放在0000:0070处。由于中断处理入口地址为5110:2030所以0070H,0071H,0072H,0073H这四个单元的值分别为30H,20H,10H,51H。
8.4 叙述可屏蔽中断的响应过程,一个可屏蔽中断或者非屏蔽中断响应后,堆栈顶部四个单元中是什么内容?
【答】当CPU在INTR引脚上接受一个高电平的中断请求信号并且当前的中断允许标志为1,CPU就会在当前指令执行完后开始响应外部的中断请求,具体如下:
1、 从数据总线上读取外设送来的中断类型码,将其存入内部暂存器中;
2、 将标志寄存器的值推入堆栈;
3、 将标志寄存器中IF和TF清零;
4、 将断点保护到堆栈中;
5、 根据中断类型获取中断向量转入中断处理子程序;
6、 处理完后恢复现场。
响应后堆栈的顶部4个单元是IP,CS。
8.5 从8086/8088的中断向量表中可以看到,如果一个用户想定义某个中断,应该选择在什么范围?
【答】从8086/8088的中断向量表中可以看出,由于系统占用了部分中断类型码,主要包括:
(1) 专用中断:0~4,占中断向量表000~013H。
(2) 系统备用中断:5~31H
(3) 用户使用中断:32H~0FFH
如果一个用户想定义一个中断,可以选择中断类型码32H-FFH,其中断向量在中断向量表的0C8H-01BFH。