第八章输入与输出程序设计 例COMM程序 基本原理 这是一个关于ⅠNS8250串行通讯口I/O的例子。它的数据寄存器的端口地址是 03F8H,状态寄存器的端口地址是03FDH。其中0位是输入数据准备位,5位是输出数据 准备位。下列是串行口输入输出程序。 读取子过程: 输出子过程: COMIN PROC FAR COM. OUT PROC FAR PUSH PUSH MOY DX, O3FDHI PUSH MOy DX. O3FDH AL.D x COM.OUTI 4 TEXT AL. 01 AL, DX JE COMINI TEST AL, 20H MOV DX, 03F8H I COM OUT IN AL, DX OP AX POP DX MOV DX, 03F8H RET OUT DX+AL COMIN ENDP POP DDX RE① COM_OUT ENDP
第八章第一章输入与输出程序设计 基础知识 例 COMM程序 基本原理 这是一个关于INS8250串行通讯口I/O的例子。它的数据寄存器的端口地址是 03F8H ,状态寄存器的端口地址是03FDH。其中0位是输入数据准备位,5位是输出数据 准备位。下列是串行口输入输出程序。 读取子过程: 输出子过程:
第八章输入与输出程序设计 以上CPU与外部设备交换信息的方式称为查询方式或等待方式 造成CPU必须查询等待的主要原因是许多外设的工作速度比较 低.如磁盘、打印机等,它们通过按键或打印头的机械动作输入 或输岀一个数据,其速度是很慢的,而OUT执行指令的速度是它 的几千倍乃至上万倍,所以则在接收或发送数据之前必须要了解 外设的状态,看外设是否已经准备好。当外没还没有准备好以前, CPU就要等待,不能做别的操作。为了提高CPU的工作效率,我 们可采用中断方式传送数据。关于中断,我们将在下一节中做详 细介绍
第八章第一章输入与输出程序设计 基础知识 以上CPU与外部设备交换信息的方式称为查询方式或等待方式。 造成CPU必须查询等待的主要原因是许多外设的工作速度比较 低.如磁盘、打印机等,它们通过按键或打印头的机械动作输入 或输出一个数据,其速度是很慢的,而OUT执行指令的速度是它 的几千倍乃至上万倍,所以则在接收或发送数据之前必须要了解 外设的状态,看外设是否已经准备好。当外没还没有准备好以前, CPU就要等待,不能做别的操作。为了提高CPU的工作效率,我 们可采用中断方式传送数据。关于中断,我们将在下一节中做详 细介绍
第八章输入与输出程序设计 第三节:中断传送方式 什么是中断:中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。 什么是中断源:引起中断的事件 中断的优点:避免因反复查询外部设备的状态而浪费时问,从而提高了CPU的效率 外中断:由外设控制器或协处理器(8087/80287)引起的中断一般称为外中断。 内中断:中断指令ⅠNT产生的中断,或由CPU的某些错误结果产生的中断称为内中断 8086/8088的中断源如下图所示: 非屏蔽中断请求 23941R0系统定时器 IR I 键盘 CPU|中断逻辑 INTR可編程IR0A彩色/图形接 R 保留(通讯 fR4 OC 串行通讯接 控制器 INTnINTO‖除法单步 ARSON 保留(ALT打印机 指令指令错误TF=1 (PIC) IR 软盘 IR 保留(打印机)
第八章第一章输入与输出程序设计 基础知识 第三节:中断传送方式 什么是中断:中断是一种使CPU中止正在执行的程序而转去处理特殊事件的操作。 什么是中断源:引起中断的事件。 中断的优点:避免因反复查询外部设备的状态而浪费时问,从而提高了CPU的效率。 外中断:由外设控制器或协处理器(8087/80287)引起的中断一般称为外中断 。 内中断:中断指令INT产生的中断,或由CPU的某些错误结果产生的中断称为内中断 8086/8088的中断源如下图所示 :
第八章输入与输出程序设计 硬件结构及原理 非屏蔽中断请求 软中断 硬中断 IRO IR1 IR2 INER 中断逻辑 8259IR3 IR4 可编程中断 挖制器 IRS 4厂0 IR6 INT N INT0除法单步 钳误中断 IRS CPU 内中断:由CPU确定 外中断由主板确定
第八章第一章输入与输出程序设计 基础知识
第八章输入与输出程序设计 非屏蔽中断:是为电源错、内存或I/O总线的奇偶错等异常事件的中断保留的。 外部设备的中断是通过 Inter8259A可编程中断控制器(PIC连到主机上。CPU通过一组I/ O端口控制8259A,而8259A则通过NTR管脚给CPU传送中断信号。这种外中断类型的分 配由硬件连线实现 中断20H到3FH用于调用DOS功能例行程序,其它中断号小于20H或大于3FH的中断, 用于调用 IBMPC ROM BIOS或一些应用软件 00000H 中断向量表 关型0中断处理 程序人地 我们给每种中断都安排一个中断 00004H 类型1中断妊 类型号。 IBMPC中断系统能处理256 种类型的中断,类型号为00FFH 程序入口地坛 000a8FE 每种类型的中断都由相应的中断处理 类2中断望 程序来处理,中断向量表就是各中断 类型的处理程序的地址表。如左图所 000d程序人口地址 示 00FC类型0PF中断处理 程序人口地址 003FFH
第八章第一章输入与输出程序设计 基础知识 非屏蔽中断:是为电源错、内存或I/O总线的奇偶错等异常事件的中断保留的。 外部设备的中断是通过Inter 8259A可编程中断控制器(PIC)连到主机上。CPU通过一组I/ O端口控制8259A,而8259A则通过INTR管脚给CPU传送中断信号。这种外中断类型的分 配由硬件连线实现. 中断20H到3FH用于调用DOS功能例行程序,其它中断号小于20H或大于3FH的中断, 用于调用IBM PC ROM BIOS或一些应用软件 一、 中断向量表 我们给每种中断都安排一个中断 类型号。IBM PC中断系统能处理256 种类型的中断,类型号为0—0FFH。 每种类型的中断都由相应的中断处理 程序来处理,中断向量表就是各中断 类型的处理程序的地址表。如左图所 示: