【本章小结】

 
1. 程序直接控制I/O的方式:
  这是一种使用I/O指令直接在端口级上进行数据传送的编程方式,这种方式有时需要查询外设的状态,如果外设处于准备好或空闲状态,则CPU通过接口中的数据寄存器进行输入或输出,如果外设没有准备好或是忙状态,CPU就查询等待,不再作有效的工作。

  2. 中断程序的设计方法:
  对于要求以中断方式工作的I/O设备,它们的中断类型已由硬件连线确定(如图8.3)。主程序为中断所做的准备工作如下:
  (1) 保存原中断向量(INT 21H的35H功能),设置新的中断向量(INT 21H的25H功能);
  (2) 设置设备的中断屏蔽位(仅对可屏蔽中断);
  (3) 设置CPU的中断允许位(开中断);
  (4) 在主程序结束前,恢复原中断向量。

  主程序完成了上述准备工作后,I/O设备即以完全随机的方式产生中断。当CPU响应了中断请求,中断系统将自动完成以下工作:
  (1) CPU接收外设的中断类型号;
  (2) 当前的FLAGS、CS、IP的内容入栈保存;
  (3) 清除IF、TF;
  (4) 根据中断类型号取出中断向量送CS和IP;
  (5) 转中断处理子程序。

  中断处理子程序的编写方法:
  (1)保存工作寄存器内容;
  (2)如允许中断嵌套,则开中断(STI);
  (3)处理中断任务;
  (4)关中断 (CLI);
  (5)送中断结束命令(EOI)给中断命令寄存器(仅对硬件中断);
  (6)恢复工作寄存器内容;
  (7)返回被中断的程序(IRET)。