当前位置:文档之家› 输入输出程序设计

输入输出程序设计


汇编语言 程序设计
9.4
BIOS中断调用
BIOS 是 Basic Input/Output System 的缩写,是固化在 PC 机 ROM 中的基本输入输出系统,它提供系统加电自检、引导装入、 主要 I/O 设备的处理程序以及接口控制等功能模块,一般以中断 处理程序的形式存在。BIOS可以处理所有的系统中断,如键盘、 显示器、磁盘、打印、日期与时间等。BIOS是模块化的结构形式, 每个功能模块的入口地址都在中断矢量表中。在1k中断矢量表中, 共有 256 个中断调用的入口地址。对这些中断调用是通过软中断 指令INT来实现的,软中断指令的操作数就是中断类型码。 使用BIOS功能调用,给程序员编程带来很大的方便,程序员 不必了解硬件I/O接口的特性,可直接用指令设置参数,然后中 断调用BIOS中的程序,所以利用BIOS功能编写的程序可读性好, 易于移植。有时为了提高处理效率,应用程序也可以通过输入输 出指令直接操纵外设接口控制外设,但这种情况下程序员要熟悉 相关的硬件特性,而且应用程序的设计比较复杂,这是BIOS不方 便之处。
汇编语言 程序设计
9.3.2
中断源、中断类型码和中断优先级
1.中断源 引起中断的原因或来源称为中断源(Interrupt source)。 (1) 外部中断 不是因为 CPU 内部原因产生的中断,称为外部中断。而外部中 断又分为非屏蔽中断NMI和可屏蔽中断INTR两种。 (2) 内部中断 由CPU内部产生的中断,称为内部中断。按引发情况可分为3 类。例如除法运算出错、执行软中断指令、单步中断等。 2.中断类型码 PC机为每一个中断源分配一个号码,称为中断类型码。这些 中断类型码在PC机中是唯一的,有的是系统统一规定的,有的是 由用户指定中断类型码。
02H
AH=01H
读键盘状态并检查键盘是否有字符输入
02H
AH=02H
读键盘标志字
在AL中各状态位意义如下
D7 D6 D5 D4 D3 D2 D1 D0
Insert
CapsLock
NurnLock
ScrollLock
Alt键
Ctrl键
Left-Shift
Right-Shift
激活为1
激活为1
激活为1
汇编语言 程序设计
3.中断优先级 在某时如只有一个中断源提出中断请求, 若它是非屏蔽中断源,那么CPU就会立即响应 它的请求;若它是可屏蔽中断源,只要IF=1, CPU也会立即响应它的请求。但是,如果在同 一时刻有几个中断源同时提出中断请求,CPU 只能先响应1个中断源,如果CPU响应了一个中 断源的中断请求后,在执行中断处理程序的时 候,又有一个中断源提出中断请求,CPU能否 响应这个新的中断请求,这就引出了中断优先 级问题。
激活为1
按下为1
按下为1
按下为1
按下为1
汇编语言 程序设计
9.4.2
显示器输出控制中断调用
显示器输出控制中断调用的中断类型号为10H,总共有00H-1CH 的子调用,通过这些子功能子程序的调用,可以在屏幕指定位置上 以字符方式或图形方式显示。 在子程序的调用中00H、02H、03H、05H、06H、07H、08H、09H、 0AH、0CH、0DH和0CH是基本的调用。 1.视频模式 00H号子调用是指定视频模式,PC机显卡有文本和图形两种显 示模式。 文本显示方式,是指以字符为单位显示的方式,字符通常是指 字母、数字、普通符号和一些特殊符号(如矩形块等)。在这种显 示方式下,显示缓冲存储区中存放的是字符的 ASCII码和对应的显 示属性,每个字符占用两个字节的空间。文本模式可以显示 256种 不同字符,如在 3号文本显示模式下,显示器的屏幕被划分成 80列 25行,因此一屏最多可以显示80x25(2000)个字符。 图形显示方式中,显示缓冲存储区中存放的是“像素”点的信 息,每个像素对应屏幕上的一点位置,它的值为“0”或者“1”, 为“0”就不在屏幕上打点,为“1”则在屏幕上打点。
汇编语言 程序设计
9.1.2
输入/输出指令
1.输入指令 格式: IN OPERAND1,OPERAND2 其中:操作数OPERAND1是AL或AX,操作数OPERAND2是输入端口地址。 输入指令IN是把端口的一个字节或字传送给AL或AX。 2.输出指令 格式: OUT OPERAND1,OPERAND2 其中: OPERAND1 是输出端口地址, OPERAND2 是 AL 或 AX,输出指令 OUT 把AL或AX中的内容输出到端口。 3. 端口地址的寻址方式 用上两条指令时,有直接和间接两种寻址方式来确定端口地址。 (1) 直接端口寻址 输入/输出指令的端口地址可以是直接给出,此时指令为双字节, 第二字节即为一个具体的8位二进制数,可对0-255个8位端口寻。 (2) 间接端口寻址 间接端口寻址是采用寄存器 DX 的内容来指定端口地址,此寻址方 式的指令是单字节指令。因为 DX 是 16 位寄存器,所以这种寻址方式可 对0-65535 个16位端口进行寻址。当端口号大于255 时,就应采用间接 端口寻址。
汇编语言 程序设计
第9章 输入/输出程序设计
◆ ◆ ◆

输入/输出指令 输入/输出控制方式 中断 BIOS中断调用
汇编语言 程序设计
9.1 输入/输出指令
9.1.1 I/O端口寻址
当设备通过接口与主机相连时,CPU可以通过接口地址 来访问 I/O 设备。通常将 I/O 设备码视为地址码,对 I/O 地址 码的编址可采用存储器编址和I/O端口编址两种方式。 1.存储器编址方法 存储器编址也叫统一编址,就是将I/O地址看作是存储 器地址的一部分。 2.I/O端口编址方法 I /O端口编址也称为不统一编址,就是指I/O地址和存 储器地址是分开的,所有对I/O的访问必须有专用的I/O指令。
汇编语言 程序设计
9.3.3
中断矢量表
不同的中断来自不同的中断源,因此有着不同的处理任务, PC 机 有256个不同的中断,对每一个中断源都要设计一个中断处理程序,而 且每一个中断程序都有自己的入口地址,将256个中断程序的入口地址 放到一起,就形成了一个表,称之为中断矢量表。 PC 机的中断矢量表 是在在内存最小地址的1k字节(绝对地址为:00000H~003FFH)空间建 立的,由此表确定了中断类型码与该中断源所对应的中断处理程序之 间的一一对应联系。图9.12给出中断矢量表的安排,表内存放有256个 中断处理程序入口地址。每个入口地址由4个字节组成,两个低字节存 放入口地址的偏移量,两个高字节存放它的段基值。中断响应以后, 表中对应的4个字节的内容分别被送人IP和CS,完成程序转移。表中中 断类型0、类型1、类型2等表示这个入口地址对应的中断类型码。如果 已知现在响应中断的中断类型码,就可以从中断矢量表中找到该中断 源的处理程序入口地址。设中断类型码为N,则有:
中断矢量地址=中断类型号*N 也就是(4*N,4*N十1)→IP;(4*N+2,4*N十3) →CS
这样就把中断处理程序的入口地址的偏移量和段基值分别送人IP 和CS,然后到此地址执行该中断的服务子程序。
汇编语言 程序设计
9.3.4
中断过程
一个完整的中断过程,要先后经历中断请求、中断响应、中断 处理及中断返回等4步骤。 1.中断请求 这是引起中断的第1步。中断源产生中断请求的条件,对不同的 中断源是不一样的。 2.中断响应 CPU在每执行一条指令的后期,都要查询是否有中断请求。若有, 就按照优先顺序给予响应或不响应。查询中断请求按优先级从高到 低的顺序进行。如果CPU响应,就识别并读出得到响应的中断源的类 型码。 3.中断处理 由于每个中断处理的任务不同,因此具体中断处理不可能一样, 但是也存在一些共性。,简单的说中断处理一般可由四个部分组成, 即:现场保护、具体中断处理、现场恢复以及中断返回指令。 4.中断返回 每一个中断处理子程序的最后要使用中断返回指令IRET以退出 中断,返回原断点处。该指令是无操作数指令,其功能是:首先从 堆栈中弹出中断断点地址,分别送人IP和CS,然后恢复标志寄存器 内容。
汇编语言 程序设计
9.3.5 软中断及有关的中断指令
软中断属于内部中断,软中断(Soft Interruptions)指令的格 式为: INT n 其中n为中断类型号。 PC机的软中断分为BIOS中断、DOS中断和自由中断三部分。 1.BIOS 中断(10H-1FH) 固化在ROM中,称为ROM BIOS,常用中断有: INT 10H-屏幕显示 INT 13H-磁盘读写 INT 16H -键盘输入 2.DOS中断(20H-3FH) 其中22H、23H、24H号是 DOS专用中断,21H、20H、25H、26H、 27H、2FH 为用户可调用中断。 3. 自由中断(40H-FFH) 自由中断主要供系统和用户应用程序扩充使用。 返回
汇编语言 程序设计
9.2.2 中断控制方式
程序控制方式的立即传送方法,不能根据设备实时状 况操作,而程序查询方式使这种问题得以解决,但工作时 CPU 与外设相当串联工作,占用 CPU 大量时间,因此工作效 率不可恭维。如果在外设已准备好的情况下,通知CPU,这 时CPU才停下原来的工作与外设实施数据交换,此次信息交 换完成后CPU在继续自己的原有工作,按此想法就产生了中 断工作方式。 CPU 启动外设后仍继续执行原程序,在第 K 条指令执行结 束后,CPU响应了外设的请求,中断了现行程序,转至中断 服务程序,等处理完后又返回到原程序断点处,继续从第 K+1条指令往下执行。这种方式中断了原程序的运行,所以 称为程序中断方式。
返回
汇编语言 程序设计
9.3
9.3.1
中断
中断概念
1.中断概念
计算机在执行程序的过程中,在出现异常情况或特殊请求时,计 算机停止现行运行程序,转向对这些异常情况或特殊请求的处理, 处理结束后再返回到现行程序的间断处,称之为计算机上的“中 断”。 2.中断的应用场合 (1) 及时处理计算机中的紧急事件 突发故障在用户程序中是无法反映的,但它的出现可导致运行结果 出错,甚至出现意想不到的后果,为了及时处理这些故障,应该采 用中断方式。 (2) 协调主机与外设工作速度 大部分外设的工作速度均低于CPU,采用程序查询方式,会占用 了CPU的宝贵时间。采用中断控制方式,可以很好的解决这一问题。 (3) 实时控制
相关主题