CPU除了运算能力外还具备I/O能力,比如说你敲击键盘,CPU就会马上反应,屏幕上就会显示字符。
外设和CPU之间的通信是通过端口实现的,而不是直接通信的。
CPU是通过从端口发过来的中断来响应外设请求的,这种中断就是外中断。
外中断源有两类——可屏蔽中断和不可屏蔽中断。
可屏蔽中断:对于它,CPU检查IF(Interrupt Flag,中断允许标志位),如果IF等于0,CPU不响应中断。如果IF等于1,CPU响应中断。
它的中断处理过程与内中断的处理过程近似,只不过中断类型码是通过数据总线从端口传进CPU的。它的中断处理过程见P273。
IF=0意味着屏蔽可屏蔽中断。
STI(Set
Interupt):置IF为1。
CLI(Clear
Interrupt):置IF为0。
不可屏蔽中断:在8086中它的中断类型码固定为2,所以它的处理过程无需取中断类型码,它的中断处理过程见P274。
外设传进来的中断一般都是可屏蔽中断,不可屏蔽中断是由系统发出的。
没啥好说的,直接看P274~P275。
按下一个键时产生的扫描码是通码,松开时产生的扫描码是断码,断码=通码+80H。
这个挺有用的,P285~P286。