汇编语言第6章系统功能调用.ppt_第1页
汇编语言第6章系统功能调用.ppt_第2页
汇编语言第6章系统功能调用.ppt_第3页
汇编语言第6章系统功能调用.ppt_第4页
汇编语言第6章系统功能调用.ppt_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第6章 系统功能调用,6.1 系统功能调用概述 6.2 DOS系统功能调用 6.3 BIOS系统功能调用,6.1 系统功能调用概述,(1)直接访问硬件 (2)使用BIOS功能调用 (3)使用DOS功能调用,6.2 DOS系统功能调用,6.2.1常用DOS系统功能调用 6.2.2 DOS系统功能调用实例,6.2.1常用DOS系统功能调用,1、DOS功能调用概述 2、调用方法 3、DOS功能调用分类 4、常用DOS系统功能调用,1、DOS功能调用概述,为了方便程序员的使用,把这些子程序编写成相对独立的程序模块并且编上号。程序员利用汇编语言可方便地调用这些子程序。程序员调用这些子程序可减少对系硬件环

2、境的考虑和依赖,从而一方面可大大精简应用程序的编写,另一方面可使程序有良好的通用性。这 些编了号的可由程序员调用的子程序就称为DOS功能调用或系统调用。,例6-1 用 09H 号功能调用,显示输出指定的串字符串。,CODE SEGMENT ASSUME CS:CODE,DS:CODE ORG 100H ;设置偏移地址 START: PUSH CS POP DS;代码段段地址送 DS LEA DX,STRING;DX字符串的首地址 MOV AH,09H ;09H 号功能调用 INT 21H MOV AH,4CH ;执行 4CH 号功能调用,终止程序运行返回 DOS INT 21H STRING

3、DB Welcome to study HUIBIAN!,$ CODE ENDS END START,1、DOS功能调用概述,DOS功能的调用主要包括下面三个方面的子程序: 基本I/O子程序; 文件管理子程序; 其他(包括内存管理、置取时间、置取中断向量、终止程序等)。,2、调用方法,DOS系统功能调用的方法一般可分为以下几步: 根据所需的功能调用设置入口参数的,但大部分功能调用需要入口参数,在调用前应按要求准备好入口参数; 把功能调用号送AH寄存器; 发软中断指令“INT 21H”; 可根据有关功能调用的说明取得出口参数。大部分功能调用都有出口参数,部分功能调用没有出口参数。,3、DOS功能

4、调用分类,(1)字符I/O管理 (2)初级文件管理 (3)高级文件管理 (4)内存管理 (5)作业管理 (6)其他资源管理,4、常用DOS系统功能调用,1、01H键盘输入并回显 格式:MOVAH,1 INT 21H 功能:从键盘输入字符的ASCII码送入寄存器AL中,并送显示器显示,4、常用DOS系统功能调用,2、02H显示输出 格式:MOVDL,待显示字符的ASCII码 MOVAH,2 INT21H 功能:将DL寄存器中的字符送显示器显示,如果DL中为(CTRL)+(BREAK)的ASCII码,则退出。,4、常用DOS系统功能调用,3、03H异步通信输入 4、04H异步通信输出 5、05H打

5、印机输出 格式:MOVDL, 待打印字符的ASCII码 MOV AH,5 INT 21H 功能:将DL寄存器中的字符送打印机打印。,4、常用DOS系统功能调用,6、06H直接控制台输入输出字符 06H功能是从键盘输入一个字符,或输出一个字符到屏幕,有两种入口参数: DL0FFH,表示是从键盘输入字符。 ZF=0,将字符的ASCII码送入寄存器AL。 ZF=1,寄存器AL中不是键入字符ASCII码。 DL0FFH,表示输出一个字符到屏幕。此时DL寄存器中内容就是输出字符的ASCII码。此调用与01H和02H功能调用不同之处在于不检查Ctrl+Break。,4、常用DOS系统功能调用,7、07H直

6、接控制台输入无回显 07H功能是等待从标准输入设备(键盘)输入字符(ASCII码)并送入AL寄存器中,但不送屏幕显示。没有入口参数,出口参数是输入字符码,出口参数送入AL寄存器中,4、常用DOS系统功能调用,8、08H键盘输入无回显 08H功能是等待从键盘输入字符,将其ASCII码送入AL寄存器中。其没有入口参数,出口参数是输入字符码,出口参数送入AL寄存器中。08H与01H系统功能调用不同之处在于键入的字符不送屏幕显示。,4、常用DOS系统功能调用,9、09H显示字符串 格式:LEA DX,待显示字符串首偏移地址 MOV AH,9 INT 21H 功能:将当前数据区中以$结尾的字符串送显示器

7、显示。,4、常用DOS系统功能调用,10、0AH键盘输入字符串到缓冲区 格式:LEADX,缓冲区首偏移地址 MOV AH,10 INT 21H 功能:从键盘上输入一字符串到用户定义的输入缓冲区内,并送显示器显示。,4、常用DOS系统功能调用,11、0BH检查键盘状态 0BH功能是键盘有任意键按下时,则将0FFH送入AL寄存器中,并检查该键是否是Ctrl+Break,如果是则退出。无任何键按下时则将0送入AL寄存器中。,4、常用DOS系统功能调用,12、2BH设置日期 2BH的功能是设置有效日期。 入口参数: CX=年 DH=月 DL=日 出口参数存放在AL寄存器中,AL=0表示设置成功,日期有

8、效;AL=0FFH表示设置无效。,4、常用DOS系统功能调用,13、2AH取得日期 2AH的功能是将当前有效日期取到CX和DX寄存器中。其出口参数是年号、月份和日期,年号置入CX寄存器中,月份和日期置入DX寄存器中。,4、常用DOS系统功能调用,14、2DH设置时间 2DH的功能是设置有效时间。 入口参数: CH=时 CL=分 DH=秒 DL=10毫秒; 出口参数存放在AL中, AL=0表示设置时间有效;AL=0FFH表示设置无效。,4、常用DOS系统功能调用,15、2CH取得时间 2CH功能是将当前有效时间取到CX和DX寄存器中;其没有入口参数,出口参数存放在CX和DX寄存器中,时间存放格式

9、与2DH 号系统功能调用相同。,4、常用DOS系统功能调用,16、4CH返回操作系统 4CH功能是结束当前正在执行的程序,并返回操作系统,屏幕显示操作系统提示符。,DOS中断的功能、入口和出口参数,6.3 BIOS系统功能调用,6.3.1 BIOS系统功能调用概述 6.3.2 BIOS系统功能调用实例,6.3.1 BIOS系统功能调用概述,BIOS系统功能除处理系统的全部内部中断外,还提供了许多基本输入输出设备级的控制功能。这时我们变成时能够用到的基本的同输入输出之间的基本界面。 在只读存储器中提供了BIOS基本的输入输出系统,它占用系统板上8K字节的ROM区,又称ROMBIOS。在系统板的R

10、OM中存放着一套程序称为BIOS(基本输入输出系统),BIOS中主要包含以下几部分内容: (1)硬件系统的检测和初始化程序; (2)外部中断和内部中断的中断例程; (3)用于对硬件设备进行I/O操作的中断例程; (4)其他和硬件系统相关的中断例程。,BIOS中主要包含以下几部分内容: (1)硬件系统的检测和初始化程序; (2)外部中断和内部中断的中断例程; (3)用于对硬件设备进行I/O操作的中断例程; (4)其他和硬件系统相关的中断例程。,BIOS使用的中断类型号,键盘I/O中断调用(16H中断调用) 16H中断调用有三个功能,功能号为02。 (1)AH=0 功能:从键盘读字符到AL寄存器,

11、当无键按下时,处于等待状态。 入口参数:AH=0 出口参数:AL中为键盘输入的字符的ASCII码值,AH中为扫描码。,(2)AH=1 功能:读键盘缓冲区字符到AL寄存器中,并置ZF标志位,若按过任意一键(即键盘缓冲区不空),置ZF=0,否则ZF=1. 入口参数:AH=1 出口参数:若ZF=0,则AL中为输入的字符的ASCII码。 由于该功能是从键盘缓冲区读数据,当没有任何键被按下时,不等待而立即返回。一般通过检测ZF标志来控制某一程序的执行.,3)AH=2 功能:读取特殊功能键的状态。 入口参数:AH=2 出口参数:AL为各特殊功能键的状态,2、键盘09H的处理过程 (1)从键盘接口的输出缓冲

12、寄存器(60H)读取系统扫描码。 (2)判断该键是单独按下或是与组合键(shift、ctrl或alt)一起按下。若字符键单独按下,将扫描码转换为相应的ASCII码或扩展码写入键盘缓冲区。 (3)如果是换档键(如caps lock、ins等),将其状态存入BIOS数据区中的键盘标志单元。 (4)如果是组合键(如ctrl+alt+del),则直接执行,完成其相应的功能。 (5)对于中止组合键(如ctrl+C或ctrl+break),强行中止应用程序的执行,返回DOS. (6)将转换的ASCII码作为低字节,以原来的系统扫描码作为高字节存入键盘缓冲区,供系统调用。 (7)在完成上述任务后,结束中断调

13、用并返回。至此,一次按键输入的信息才真正送入计算机之中。,2、打印机I/O中断调(17H中断调用) 17H中断调用有三个功能,功能号为02。 (1)AH=0 本功能为把AL中指定的字符在打印机上打印出来。 (2)AH=1 本功能为对指定的打印机初始化。 (3)AH=2 本功能为读取打印机的状态信息。,3、时钟中断调用(1AH中断调用) 1AH中断调用有二个功能。功能号为0和1。 (1)AH=0 本功能为读取时钟计数器的当前值。 (2)AH=1 本功能为设置时钟计数器的当前值。,例6-9编写一个用键盘输入文件名,若输入的文件存在,则显示其内容,否则,显示文件不存在的信息的程序,若输入的字符串为空

14、,则程序运行结束。,.MODELSMALL .DATA File DB30, ?, 30 DUP(?), 0 Err DBThis file isnt found, 10, 13, $ BuffDB128 dup(?) .CODE .STARTUP start: MOV AH, 0AH ;利用0AH功能,输入文件名 LEA DX, File ; DS:DX=输入缓冲区逻辑地址 INT 21H ; MOV BL, File+1 CMP BL, 0 ;检查文件名是否为空 JZ stop ;若空则跳转到stop,XOR BH, BH MOV FileBX+2, 0 MOV DX, Offset Fi

15、le+2 MOV AH, 3DH;打开文件功能 ;DS:DX=子目录说明串首地址 MOV AL, 0H ; AL=打开方式(0为只读) INT 21H JNC found LEA DX, Err MOV AH, 9H ;显示字符串功能 INT 21H JMP start,found: MOV BX, AX ;把文件句柄赋给BX view: LEA DX, BUFF MOV AH, 3FH ;读文件内容 MOV CX, 128 INT 21H CMP AX, 0 JZ cls;读取的字符数为0 JC cls ;读错误 PUSH BX;保存文件句柄 MOV DX, offset buff MOV

16、CX, AX,MOV BX, 1;屏幕设备的句柄规定为1 MOV AH, 40H ;在屏幕上显示读出的字符 INT 21H POP BX ;恢复文件句柄 JMP view cls: MOV AH, 3EH ;关闭文件 INT 21H JMP START stop: .EXIT 0 END,例6-10 编写一个创建子目录的程序,若目录创建成功,显示成功信息,否则,显示创建失败信息,用键盘输入一个目录路径名,若输入的字符串为空,则程序运行结束;,.MODELSMALL .DATA DirDB30, ?, 30 DUP(?), 0 Vnews DBVictory, 10, 13, $ Fnews D

17、BFailure, 10, 13, $ .CODE .STARTUP start: MOV AH, 0AH ; 利用0AH功能,输入目录名 LEA DX, Dir INT 21H MOV BL, Dir+1 CMP BL, 0 JZ stop ;检查输入的字符串是否为空,XOR BH, BH MOV DirBX+2, 0 ;确保字符串以0为结束标志 MOV DX, Offset Dir+2 MOV AH, 39H ;利用39H功能,创建子目录 INT 21H .IF CARRY? LEADX, Fnews .ELSE LEADX, Vnews .ENDIF MOV AH, 9H INT 21H

18、 JMP start stop: .EXIT 0 END,6.3.2 BIOS系统功能调用实例,例6-14 试编制键入一个39间的数字,输出一个用“*”组成的三角形的源程序。例如,键入5,输出的三角形如下所示: * * * * *,例6-11 在每页的开始处打印“Hello world”字符串,并空一行才打印其它内容; 当打印机不能正常打印(非硬件故障)时,提示其原因。,.MODEL SMALL .DATA TopDB0CH, Hello World, 0DH, 0AH, 0AH CountEQU$ - Top NEWS1DBTime Out Error$” NEWS2DBIntput Or Output Error$” NEWS3DBOut of Paper$” TimeERREQU01H InOut EQU08H OutP EQU20H .CODE .STARTUP MOV AH, 1 MOV DX, 0 ;初始化连接在LPT1上的打印机 INT 17H MOV AH, 2 MOV DX, 0 ;读取LPT1打印机的状态字节 INT 17H TEST AL, TimeERR or InOut or OutP JNZ E

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论