《汇编语言程序设计 教学课件 ppt 作者 董少明 第7章 系统功能调用与程序设计》由会员分享,可在线阅读,更多相关《汇编语言程序设计 教学课件 ppt 作者 董少明 第7章 系统功能调用与程序设计(83页珍藏版)》请在金锄头文库上搜索。
1、汇编语言程序设计 第7章 系统功能调用与程序设计,第7章 系统功能调用与程序设计,7.1 常用BIOS中断功能调用 7.2 常用DOS系统功能调用 7.3 BIOS、DOS调用程序设计 小 结,提示: 计算机系统的层次结构中最底层是计算机硬件系统,这是实现计算机系统应用的基础。在此基础之上,相应构建了ROM BIOS层、DOS操作系统的基本I/O系统层、DOS操作系统内核层以及应用层,这几层构成了计算机的软件系统。 ROM BIOS是特殊的系统软件,是固化在计算机主机中的系统软件;DOS操作系统的基本输入输出系统层,是在DOS操作系统启动运行之后形成的一套面向硬件的设备驱动程序;本章我们将研究
2、和讨论微机中基本的系统调用与程序设计方式。,7.1 常用BIOS中断功能调用 7.1.1 BIOS中断调用基本概述 1.BIOS的含义 BIOS (Basic Input/Output System)指的是微机系统的基本I/O系统,主要由一系列系统例程和底层设备驱动程序构成的,常称为系统BIOS,又称为微型计算机固件系统。 2.BIOS的组成 系统BIOS通常由加电自检程序POST、系统引导程序BOOT、底层硬件设备驱动程序和CMOS RAM数据区的设置程序4部分组成。,(1)加电自检程序POST:在计算机系统启动时系统BIOS首先要进行POST(Power On Self Test,加电自检
3、),检测并初始化所有系统部件。包括中断控制器、DMA控制器、时钟控制器、内存、键盘、显示设备、存储设备等系统部件及输入输出设备,以保证今后系统的正常运行。 (2)系统引导程序BOOT:按照CMOS RAM中的设置引导安装操作系统。 (3)底层硬件设备驱动程序:组织成子程序结构,采用中断方式供操作系统及用户程序进行调用。 (4)CMOS RAM数据区的设置程序:由用户在系统启动时激活该程序进行系统设备配置。,3BIOS使用的系统资源 BIOS使用的系统资源包括BIOS RAM数据区、中断向量表和CMOS数据区。 (1)BIOS RAM数据区。 BIOS RAM数据区指的是主存00400H004F
4、FH的存储区域。 (2)中断向量表。 在POST期间,BIOS初始化用于BIOS的各个中断向量表项,每个表项指向1个BIOS中断服务程序。操作系统和用户程序正是通过调用这些中断服务程序来驱动底层设备的。,(3)CMOS数据区。 从IBM AT计算机开始,主机板上就增加了一个CMOS工艺的存储芯片,我们常把它称做CMOS RAM。其中存储了计算机系统中重要的实时时钟信息、系统配置信息和系统侦测诊断信息。在POST期间,BIOS会向该RAM中写入一些硬件初始化信息并按该数据区中的硬件配置信息初始化硬件。在系统引导过程,BIOS会按照该数据区中设置的引导顺序寻找引导设备进行操作系统引导。,4使用BI
5、OS中断的条件 (1)有些功能DOS并没有提供,但BIOS提供了,如一些硬件的特殊操作,DOS操作系统为保证系统的可靠性没有提供,这时就需要调用BIOS中断。 (2)有些场合无法使用DOS功能调用:如中断服务程序中无法使用DOS功能调用,要实现对某些硬件的控制操作,就需要使用BIOS中断。 (3)系统实时性应用要求较高的场合 。 (4)需要直接控制硬件操作的场合。 5. BIOS调用的基本操作步骤 (1)设置功能号。 (2)置入口参数。 (3)执行中断指令INT N。 (4)分析出口参数。,7.1.2 BIOS中断调用类别 BIOS中断调用包括多种服务类别,主要由10H至1FH中断服务类别组成
6、,每个主要服务类别还往往包含很多个子功能。 主要包括以下几种: 1)BIOS显示服务(VIDEO SERVICE)INT 10H 2)直接磁盘服务(DIRECT DISK SERVICE)INT 13H 3)串行口服务(SERIAL PORT SERVICE)INT 14H 4)键盘服务(KEYBOARD SERVICE)INT 16H 5)并行口服务(PARALLEL PORT SERVICE)INT 17H 6)时钟服务(CLOCK SERVICE)INT 1AH 7)杂项系统服务(MISCELLANEOUS SYSTEM SERVICE) INT15H 8)直接系统服务(DIRECT S
7、YSTEM SERVICE) (INT 00HINT 1FH见第6章相应内容),7.1.3 主要BIOS中断调用 1显示服务功能调用INT 10H (1)00H号功能 功能:设置显示模式 入口参数:AH=00H AL=显示模式,见表7-1。 出口参数:无,表7-1 标准显示模式,对于SVGA显示卡,我们可用AX=4F02H的扩展显示BIOS中断调用来设置其显示模式。这时入口参数还要使用到BX寄存器,BX的值决定扩展显示模式,见表7-2。,表7-2 SVGA扩展显示模式,说明: 1)设置显示模式后屏幕清屏,若设置的显示模式为文本方式,则将光标位置置于(0,0);若设置显示方式为图形方式则不显示光
8、标。 2)设置显示方式后调色板复位。 3)系统加电后的缺省显示模式为02H。 4)若不希望复位调色板,应选用06H或07H号功能进行清屏。 例7-1 设置当前显示方式为黑白文本方式,屏幕可显示25行文本,每行可显80个字符。 MOV AH,0 ;选择功能0号 MOV AL,2 ;方式2=8025黑白文本方式 INT 10H ;调用显示服务功能实现设置,(2)06H和07H号功能 功能:滚屏操作 入口参数:AH=06H或07H; AL=滚屏行数(0清屏或清除屏幕窗口); BH=滚屏区域的属性; (CH、CL)=窗口的左上角行列位置(Y坐标,X坐标); (DH、DL)=窗口的右下角行列位置(Y坐标
9、,X坐标)。 出口参数:无 说明: 1)06H号功能为向上滚屏操作,07H号功能为向下滚屏操作。 2)AL指定滚屏行数,当AL=0时本功能为清屏或清除屏幕窗口区域。,3)CX及DX寄存器指定要滚屏的窗口位置。屏幕左上角为0H,右下角为184FH,即24行79列。 4)滚屏功能可用于文本及图形显示方式。 5)BH中的属性值用于设置滚屏后产生的空白区域的显示属性。对于文本方式,属性为前景及背景颜色;对于图形方式则属性用于设置图形象素颜色。,例7-2 设当前显示方式为例1所设置,要求对屏幕窗口(19,6)至(59,19)内容向上滚动一行,并设新行属性为正常显示属性,以便显示新的显示内容。 MOV A
10、H,6 ;选择功能6号向上滚动行 MOV AL,1 ;滚动1行 MOV BH,7 ;新行属性为7(黑底白字) MOV CH,6 ;窗口左上角行坐标 MOV CL,19 ;窗口左上角列坐标 MOV DH,19 ;窗口右下角行坐标 MOV DL,59 ;窗口右下角列坐标 INT 10H ;调用显示服务功能实现设置,(3)0AH号功能 功能:在当前光标处按原有属性显示字符 入口参数:AH=0AH AL=字符 BH=显示页; CX=重复输出字符的次数。 出口参数:无 说明: 1)0AH号功能仅支持文本方式下的字符显示操作。 2)所显示字符的属性为原光标位置的显示属性。 3)本功能执行后不影响光标位置,
11、若希望显示完1字符后继续在后续位置显示其他字符,必须用2号功能移动光标位置。,例7-3 设置光标到0页(10,20)(行号20,列号10)位置,显示字符“W”。 MOV AH,2 ;选择功能2号设置光标位置 MOV BH,0 ;页号为0 MOV DH,20 ;第21行 MOV DL,10 ;第11列 INT 10H ;调用显示服务功能设置光标 MOV AH,0AH ;选择功能0AH号显示字符 MOV AL,W ;要显示的字符 MOV BH,0 ;在当前页显示 INT 10H ;调用显示服务功能实现设置,(4)0FH号功能 功能:返回当前显示模式 入口参数:AH=0FH 出口参数:AH=屏幕字符
12、的列数; AL=当前显示模式(参见功能00H中的说明); BH=页码。 说明: 1)0FH号功能用于返回当前的显示方式信息。 2)返回信息包括显示方式,以字符为单位的屏幕宽度以及显示页号。 3)此功能可以在应用程序初始化时确定当前显示系统的设置情况,当应用程序终止返 回时可据此重新设定为原显示模式。 4)可在清屏前用此功能确定当前显示方式下的屏幕宽度。,2直接磁盘服务功能调用INT 13H (1)00H号功能 功能:磁盘系统复位 入口参数:AH=00H DL=驱动器号,(00H01H:软盘;80H83H:硬盘) 出口参数:CF=0表示磁盘系统复位成功,AH=00H; CF=1表示磁盘系统复位失
13、败,AH=状态代码 说明: 1)本功能使软盘和硬盘控制器复位,并重新初始化软盘和硬盘驱动器参数。 2)DL寄存器中为指定的驱动器号,0为A驱动器,1为B驱动器,80H为第1台物理硬盘,81H为第二台物理硬盘,以此类推。 3)无论DL寄存器中指定哪种磁盘设备,均要对软盘系统复位。,(2)02H号功能 功能:读扇区 入口参数:AH=02H AL=扇区数 CH=柱面号 CL=扇区号,DH=磁头号; DL=驱动器号 (00H01H:软盘;80H83H:硬盘;) ES:BX=数据缓冲区的起始地址 出口参数:CF=0表示磁盘扇区读操作成功 AH=00H,AL=读出的扇区数; CF=1为磁盘扇区读操作失败,
14、AH=状态代码,说明: 1)本功能用于实现单个扇区或连续扇区的读取操作,扇区内容将被读至ES:BX指定的缓冲区中。 2)采用CHS(CYLINDERS,HEADERS,SECTORS)参数形式标识被操作扇区,驱动器号均指物理设备。 3)CH寄存器中为柱面号的低8bit,CL寄存器中的第50bit为扇区号,第76bit为柱面号的高2位。,例7-4 将硬盘主引导扇区(0头,0柱面,1扇区)内容读到缓冲区EXAMBUF。 EXAMBUF DB 512 DUP(?) MOV AX,SEG EXAMBUFF ;取缓冲区段首地址 MOV ES,AX ;送入ES段寄存器 LEA BX,EXAMBUFF ;取
15、缓冲区有效地址 MOV AH,2 ;功能号2为读扇区 MOV AL,1 ;读1个扇 MOV CH,0 ;0柱面 MOV CL,1 ;1扇区 MOV DH,0 ;0磁头 MOV DL,80 ;第一台硬盘 INT 13H ;调用磁盘服务功能读取扇区内容 JC ERROR ;读盘失败转错误处理程序 ERROR: ,(3)03H号功能 功能:写扇区 入口参数:AH=03H AL=扇区数 CH=柱面号,CL=扇区号 DH=磁头号;DL=驱动器号 00H01H:软盘;80H83H:硬盘 ES:BX=数据缓冲区的起始地址 出口参数:CF=0表示磁盘扇区写操作成功 AH=00H,AL=写入的扇区数 CF=1表
16、示磁盘扇区写操作失败 AH=状态代码,说明: 1)本功能用于实现单个扇区或连续扇区的写操作,ES:BX指定的缓冲区内容将被写至指定的扇区中。 2)采用CHS参数形式标识被操作扇区,驱动器号均指物理设备。 3)CH寄存器中为柱面号的低8位,CL寄存器中的第50位为扇区号,第76位为柱面号的高2位。 例7-5 将缓冲区EXAMBUFF中已准备好的1024个字节数据写入1.44M软盘最后2个扇区。 分析:1.44M软盘最后两个扇区的CHS参数为1磁头,79磁道,17扇及18扇,EXAMBUF DB 1024 DUP(?) ;准备磁盘扇区数据 MOV AX,SEG EXAMBUF ;取缓冲区段首地址 MOV ES,AX ;送入ES段寄存器 LEA BX,EXA