资源描述
,单击此处编辑母版标题样式,*,*,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,第9章 系统中断调用和I/O程序设计,主讲:,第9章 系统中断调用和I/O程序设计 主讲:,1,9.1中断概述,所谓中断就是CPU暂停当前程序的执行,转而执行处理紧急事务的程序,并在该事务处理完后能自动恢复执行原先程序的过程。在此,称引起紧急事务的事件为中断源,称处理紧急事务的程序为中断服务程序或中断处理程序。计算机系统还根据紧急事务的紧急程度,把中断分为不同的优先级,并规定:高优先级的中断能暂停低优先级的中断服务程序的执行。,9.1中断概述 所谓中断就是CPU暂停当前程序的执行,转而执,2,计算机系统有上百种可以发出中断请求的中断源,但最常见的中断源是:外设的输入输出请求,如:键盘输入引起的中断,通信端口接受信息引起的中断等;还有一些计算机内部的异常事件,如:0作除数、奇偶校验错等。,CPU在执行程序时,是否响应中断要取决于以下三个条件能否同时满足:,1、有中断请求;,2、允许CPU接受中断请求;,3、一条指令执行完,下一条指令还没有开始执行。,计算机系统有上百种可以发出中断请求的中断源,但,3,条件1是响应中断的主体。除用指令INT所引起的软件中断之外,其它中断请求信号是随机产生的,程序员是无法预见的。,我们可用程序部分地控制条件(2)是否满足,即可用指令STI和CLI来允许或不允许CPU响应可屏蔽的外部中断。而对于不可屏蔽中断和内部中断,CPU一定会响应它们的,程序员是无控制权的。CPU一定会执行这些中断的中断服务程序。,条件1是响应中断的主体。除用指令INT所引起的软件中断之外,,4,9.2 BIOS中断调用,若按中断源来划分,则系统中的中断又可分为:硬件中断和软件中断。对于硬件中断,程序员不能控制它,它们基本上是随机产生的,而对于软件中断,汇编语言程序员可通过指令INT和INTO来有目的安排它们的。,9.2 BIOS中断调用 若按中断源来划分,则系统中,5,在存储器系统中,从地址0FE000H开始的8KB ROM(只读存储器)中装有BIOS(Basic Iuput/output System)例行程序。驻留在ROM中的BIOS给PC系列的不同微处理器提供了兼容的系统加电自检,引导装入,主要I/O设备的处理程序以及接口控制等功能模块来处理所有的系统中断。使用BIOS功能调用,给程序员编程带来很大方便,程序员不必了解硬件操作的具体细节,直接用指令设置参数,然后中断调用BIOS中的子功能,所以利用BIOS功能编写的程序简洁,可读性好,而且易于移植。由于BIOS介于DOS和具体硬件之间,所以,调用BIOS的功能是一个很好的折中方案。,在存储器系统中,从地址0FE000H开始的8KB RO,6,程序员可在以下三种情况下考虑使用BIOS的功能:,1、BIOS提供的功能,而DOS没有提供该功能的情况;,2、不能利用DOS功能调用的情况(可能因为某些具体应用的限制);,3、基于处理速度的考虑,需要绕过DOS层的情况,程序员可在以下三种情况下考虑使用BIOS的功能:,7,可以归纳出如下结论:使用中断的层次越高,它与硬件设备相关程度就越低,处理速度也就越低,但用户程序的适用范围较广。反之亦然。,有了上面的结论,程序员可根据应用程序的要求、对硬件环境的熟悉程度等因素来选用不同层次的中断。,可以归纳出如下结论:使用中断的层次越高,它与硬件设备相关,8,9.2.1 BIOS中断调用方法,系统中断由三部分组成:功能、入口参数和出口参数。这里的功能为子功能,如打印机输出中断INT 17H,有0(字符打印)、1(初始化)、3(读打印机状态)三个子功能。入口参数是子程序调用前必须预置的参数,如BIOS磁盘输入/输出中断(类型号13h)的读指定盲区操作,在实际调用前,要做好以下准备:,AH,子功能号02H AL,扇区数,CH;CL,磁道号CL,扇区号,DH,-磁头号DL,驱动器号,ES:BX,-数据缓冲区地址,至于出口参数,一般是系统子程序执行后返回的状态或参数。,9.2.1 BIOS中断调用方法,9,9.2.2常用BIOS中断,BIOS中断可分为下面四类:,1 内中断:中断类型号为00H07H,包括被零除中断、单步中断、不可屏蔽中断、断点中断、溢出中断、屏幕拷贝中断等。,2 外中断:中断类型号08H0FH,主要处理计时器、键盘、通信商品、硬盘、软件等。,3 设备驱动:中断类型号10H17H,服务对象包括显示器、内存检查、通信I/O、键盘I/O、打印机I/O等。,4 特殊中断:中断类型号18H1FH,包括ROM BASIC、DOS自举、日期调用、键盘中断、计时器控制、显示器参数等。,9.2.2常用BIOS中断,10,9.3 DOS功能调用,DOS(Disk Operating System)是PC机上最重要的操作系统,它是由软盘或硬盘提供的。它的两个DOS模块IBMBIO.COM和IBMDOS.COM使BIOS用起来更方便,因为DOS模块提供了更多更必要的测试,使DOS操作比使用相应功能的BIOS操作更简易,而且DOS对硬件的依赖性更少些。,9.3 DOS功能调用DOS(Disk Operating,11,IBMBIO.COM是一个输入/输出设备处理程序,它提供了DOS到ROM BIOS的低级接口,它完成将数据从外设读入内存,或把数据从内存写到外设去的工作。,IBMDOS.COM包括一个文件管理程序和一些处理程序,在DOS下运行的程序可以调用这些处理程序。为了完成DOS功能调用,IBMDOS.COM把信息传给IBMBIO.COM,形成一个或多个BIOS调用。,IBMBIO.COM是一个输入/输出设备处理程序,它提供了D,12,9.3.1 DOS中断调用方法,DOS中断调用是指使用INT 21H软件中断时所完成的各种功能操作。DOS功能是通过服务子程序来实现的。DOS对系统功能的服务子程序进行了编号,简称为功能号。在源程序中进行输入/输出DOS功能调用的一般步骤为:,1、为服务子程序设置入口参数。入口参数的设置 一般借助通用寄存器。少数服务子程序无需入口参数,当然就不需要这一步骤。,2、将功能号送AH。,3、使用软件中断指令,该指令的功能是根据AH中的功能号转向对应的服务子程序的入口地址。有些服务子程序执行后还会通过通用寄存器带回出口参数。,9.3.1 DOS中断调用方法,13,9.3.2常用 DOS中断,在DOS的功能调用中有90多个子功能,这些子功能可粗略地分为5组。,1、字符输入/输出:子功能号从01H0CH,内容包括键盘输入、显示器与打印机输入和通信口收发。,2、文件管理:子功能号为0DH24H,27H29H,3947H,56H,57H,5AH,5BH。包括对文件的建立、打开、读写、关闭、删除等操作。,9.3.2常用 DOS中断,14,3、内存管理:包括分配内存空间、释放内存空间、修改已分配的内存空间等。子功能号为48H4AH。,4、作业管理:主要是装入程序、查找匹配文件、终止当前进程和返回调用进程等。子功能号为4BH、4FH。,5、其他资源管理:读取和设置中断向量(35H、25H),取日期和时间(2AH2DH),取国别信息(38H)及置/取Break检查状态(33H)等。,3、内存管理:包括分配内存空间、释放内存空间、修改已分配的内,15,9.4 I/O程序设计,在广泛使用的微型机系统中,外部设备是以实现人机交互和机间通讯为目的的一些机电设备。计算机系统通过硬件接口以及I/O控制程序对外部设备进行控制,使其协调地、有效地完成输入输出工作。,9.4 I/O程序设计 在广泛使用的微型机系统中,16,9.4.1键盘输入中断,键盘输入是绝大多数程序的主要输入方式,学习和掌握有关键盘输入中断的使用方法对编写交互式程序是非常重要的,也能更进一步理解计算机是如何接受键盘输入的。,9.4.1键盘输入中断,17,1、键盘缓冲区,键盘缓冲区是一个先进先出的环形队列,其所占内存区域如下:,KBHead DW?;其内存地址为0040:001AH,缓冲区头指针,KBTail DW?;其内存地址为0040:001CH,缓冲区尾指针,KBBuff DW16 DUP(?);其内存地址为0040:001EH,该缓冲区的缺省长度为16个字,1、键盘缓冲区,18,2、键盘状态字,在计算机键盘上除了可输入各种字符(字母、数字和符号等)的按键之外,还有一些功能键(如:F1、F2、等)、控制键(如:Ctrl、Alt、Shift等)、双态键(如:Num Lock、Caps Lock等)和特殊请求键(如:Print Screen、Scroll Lock等)。,键盘中的控制键和双态键是非打印按键,它们是起控制或转换作用的。当使用者按下控制键或双态键时,系统要记住其所按下的按键。为此,在计算机系统中,特意安排的一个字来标志这些按键的状态,我们称该字为键盘状态字。,2、键盘状态字,19,9.4.2键盘中断处理过程,当用户按键时,键盘接口会得到一个代表该按键的键盘扫描码,同时产生一个中断请求。键盘中断服务程序先从键盘接口取得按键的扫描码,然后根据其扫描码判断用户所按的键并作相应的处理,最后通知中断控制器本次中断结束并实现中断返回。,9.4.2键盘中断处理过程,20,9.4.4 屏幕中断功能,显示器是一个重要的输出设备,它通过显示卡与计算机系统相连。常用的显示卡类型为VGA、SVGA、EVGA和TVGA等,显示卡上也都带有大量的显示存储器,能快速显示精美的图像。,1、显示模式,计算机系统中的显示器都有两种显示方式:文本显示方式和图形显示方式。在DOS操作系统环境下,其默认的显示方式为文本显示方式,而在Windows操作系统环境下,其显示方式是图形显示方式,其绝大多数操作界面是以图形界面的窗口形式出现的。,9.4.4 屏幕中断功能,21,(1)文本显示方式,文本显示方式是指以字符为最小单位的显示方式,每个字符都是以矩形块形式显示的。在BIOS ROM中存有多种不同大小的字符集,主要的显示字符集大小为:88(标准)、814和816等。,在常用的文本显示模式下,屏幕被划分成25行,每行可显示80个字符,所以,每屏最多可显示2000(8025)个字符。为了便于标识屏幕上的每个显示位置,我们就用其所在行和列来表示之,并规定:屏幕的左上角坐标为(0,0),右下角坐标为(24,79)。满屏可显示2000个字符,也就需要4000个字节来存储一屏的显示信息。,(1)文本显示方式,22,(2)图形显示方式,图形显示是目前最常用的一种显示方式,也是Windows操作系统的默认显示方式。在该显示方式下,我们可以看到优美的图像、VCD、浏览丰富多彩的网页等。,图形显示的最小单位是像素,对每个像素可用不同的颜色来显示。所以,在显示缓冲区内记录的信息是屏幕各像素的显示颜色。,(2)图形显示方式,23,2、显示缓冲区,显示缓冲区是用来记录屏幕显示信息的。在文本显示方式下,这些显示信息包括:每个显示字符的ASCII码及其显示属性。在图形显示方式下,显示缓冲区内存储每个像素的显示颜色。在常用的VGA显示方式下,计算机系统规定:,(1)文本显示方式下,单色显示器的显示缓冲区段地址为0B000H;,(2)文本显示方式下,彩色显示器显示缓冲区段地址为0B800H;,(3)图形显示方式下,其显示缓冲区段地址为0A000H。,2、显示缓冲区,24,谢谢!,谢谢!,25,
展开阅读全文