第10幸中断和输入/输出程设计 2.状态信息 在输入时,有表示输入装置是否已准备好的信息( READY 在输出时,有表示输出装置是否忙的信息(BUSY)等。 3.控制信息 控制信息有控制输入/输出装置的启停信号,工作方式、 工作规约及格式选择信息等。 值得指出的是,控制信息和状态信息与数据是不同性质的, 必须要分别传送。但它们都通过N和OUT指令在数据总线上进 行传送,所以通常采用分配不同端口的方法将它们加以区别
第10章 中断和输入/输出程序设计 2.状态信息 在输入时,有表示输入装置是否已准备好的信息(READY); 在输出时,有表示输出装置是否忙的信息(BUSY)等。 3.控制信息 控制信息有控制输入/输出装置的启停信号,工作方式、 工作规约及格式选择信息等。 值得指出的是,控制信息和状态信息与数据是不同性质的, 必须要分别传送。但它们都通过IN和OUT指令在数据总线上进 行传送,所以通常采用分配不同端口的方法将它们加以区别
第10幸中断和输入/输出程设计 102中断处理程序设计 10.21中断处理程序的编写 中断是指执行当前程序的过程中,由于某种随机出现的外 设请求,使CPU暂停(即中断)正在执行的程序而转去执行为外设 服务的程序;当服务完毕后,CPU再退回到暂停处(即断点)继续 执行原来的程序。现在,中断的概念除了传统的外部事件(硬件) 引起的中断外,又产生了内部软件中断的概念。在80386/80486 中则把许多执行指令过程中产生错误的情况也纳入了中断处理 的范围,并将它们和通常意义上的内部软件中断一起统称为异 常中断,简称异常( Exceptions),而将通常意义上的外部中断简 称为中断
第10章 中断和输入/输出程序设计 10.2 中断处理程序设计 10.2.1 中断处理程序的编写 中断是指执行当前程序的过程中,由于某种随机出现的外 设请求,使CPU暂停(即中断)正在执行的程序而转去执行为外设 服务的程序;当服务完毕后,CPU再退回到暂停处(即断点)继续 执行原来的程序。现在,中断的概念除了传统的外部事件(硬件) 引起的中断外,又产生了内部软件中断的概念。在80386/80486 中则把许多执行指令过程中产生错误的情况也纳入了中断处理 的范围,并将它们和通常意义上的内部软件中断一起统称为异 常中断,简称异常(Exceptions),而将通常意义上的外部中断简 称为中断
第10幸中断和输入/输出程设计 中断和异常之间的区别在于,中断用来处理CPU外部的异 步事件,而异常是用来处理在执行指令期间由CPU本身对检测 出的某些条件作出响应的同步事件。用产生异常的程序和数据 再次执行时,该异常总是可再现的,而中断通常与现行执行程 序无关。但中断和异常在使处理器暂停执行其现行程序,以执 行更高优先级程序方面是一样的
第10章 中断和输入/输出程序设计 中断和异常之间的区别在于,中断用来处理CPU外部的异 步事件,而异常是用来处理在执行指令期间由CPU本身对检测 出的某些条件作出响应的同步事件。用产生异常的程序和数据 再次执行时,该异常总是可再现的,而中断通常与现行执行程 序无关。但中断和异常在使处理器暂停执行其现行程序,以执 行更高优先级程序方面是一样的
第10幸中断和输入/输出程设计 引起中断的原因或发出中断请求的来源,称为中断源。可 以根据重要性的不同为各中断源安排不同的优先级,CPU首先 响应优先权高的中断。8086具备一个简单而灵活的中断系统, 它能处理256种类型的中断,中断类型由类型号0~255指定, 中断源的情况可见图10-1。80286以后使用两片8259A级连结构, 管理15级中断
第10章 中断和输入/输出程序设计 引起中断的原因或发出中断请求的来源,称为中断源。可 以根据重要性的不同为各中断源安排不同的优先级,CPU首先 响应优先权高的中断。8086具备一个简单而灵活的中断系统, 它能处理256种类型的中断,中断类型由类型号0~255指定, 中断源的情况可见图10-1。80286以后使用两片8259A级连结构, 管理15级中断
第10幸中断和输入/输出程设计 非屏蔽中断请求 NMI IOROO 8259A 中断逻辑 I INTR ORQ1可屏蔽 可编程 中断 中断 请求 控制器IORQ7 INTr INTO 除法 单步 指令 错误 (TF 8086 CPU 图10-18086的中断源
第10章 中断和输入/输出程序设计 图10-1 8086的中断源 INTn 指 令 INTO 指 令 除 法 错 误 单 步 (TF=1) 中 断 逻 辑 8086 CPU 非屏蔽中断请求 INTR 8259A 可编程 中 断 控制器 IORQ0 IORQ1 … IORQ7 可屏蔽 中 断 请 求 NMI