匯编语言程序设计举例.doc
文本预览下载声明
DOS功能调用,汇编语言程序设计举例
5.1 DOS功能调用
DOS-磁盘操作系统,象WINDOS操作系统一样是进行计算机系统管理的软件,在WINDOS以前,PC机上主要应用的是DOS操作系统,两者间的最大区别是在DOS 操作系统下,用户可以利用自己所编的程序直接对外设(硬件端口)进行操作,如对磁盘进行读写,对打印机进行控制等,而在WINDOS操作系统下,用户只能通过特有的驱动程序才能对其进行操作,因为所有外设均被WINDOS操作系统统一管理,用户无法在自己的程序中对他门进行操作。
1、DOS功能
在PC机的操作系统(DOS)的安装过程中,将一些常用的子程序安装到了内存单元中,用户可以在编写自己的用户程序时,进行调用。其中有两种:
BIOS子程序:功能 管理与计算机相连接的外部设备(显示器、键盘、磁盘驱动)程序,称为基本输入输出系统 (basic Input/output system)这部分程序是存放在ROM 区 所以通常称为:ROM BIOS
DOS功能程序:与BIOS程序一样,DOS功能程序也是计算机操作系统开发人员编写的一些常用的用于磁盘文件管理的子程序,主要用于磁盘文件的建立、打开、读写、关闭,用户同样可以在自己的程序中对他们进行调用,简化用户程序的开发。
与BIOS不同的是DOS功能程序是存放在硬盘上的,在系统上电时,由操作系统,将其安装到内存中的,称为常驻内存程序。
用户调用这两种程序一般采用中断指令进行调用:
DOS功能的调用方法:
在AH中写入功能调用号
在指定的寄存器中设置入口参数
用INT 21 指令执行调用
根据出口参数分析调用执行情况
实际上,所有的DOS 功能子程序 被组成了一个大程序存放在内存单元中,从nn1:nn2 开始的单元中,在操作系统上电进行系统初始化时,将nn1:nn2 存放到了中断向量表中,0000H:0084H开始的连续4个单元中, 当用户在用户程序中用INT 21H 调用DOS的某一个功能时,即控制程序转移到nn1:nn2 开始的程序,在这段程序中首先根据AH中的功能,可以分析出用户调用的哪一个功能从而在转到相应地方执行相应的程序段。
以下以几个DOS功能的应用介绍DOS功能使用方法:
2、常用功能调用
1、键盘输入单字符并显示
调用号:01,无入口参数。
功能:等待键入,检查是否是Ctr - Break键,是,退出。不是将键入的字符送 AL 寄存器并显示。
MOV AH ,01
INT 21H
2、输出单字符
调用号:02, 入口参数:DL
功能:将DL的内容显示(DL = 待输出字符的ASII码)
MOV DL ,‘A’
MOV AH,02
INT 21H
程序执行后,在显示器上显示字符 A
3、输出字符串
调用号:09H, 入口参数:DS:DX(缓冲区首地址)
功能:将缓冲区内以结尾的字串显示,(24H)不显示。
BUF DB ‘ABCDEF’
MOV DX , OFFSET BUF
MOV AH , 09H
INT 21H
执行结果在显示器上显示 ABCDEF
4、键盘输入字符串
调用号:0AH,
入口参数:DS:DX = 缓冲区首地址
功能:将键盘键入的以 ENTER (0DH)结尾的字符串写到DS:DX指定的内存区。
为此,应先用程序设置一内存区。
例:从键盘输入一个字符串,写到从标号BUF开始的单元中
数据段:
BUF DB 20 第一个字节设的最大长度(含0DH)
DB ? 第二个字节空出,
由DOS功能最后填实际长度(不含0DH)
DB 20 DUP (?) 第三字节开始写字符
程序段
MOV DX ,OFFSET BUF
MOV AH , 0AH
INT 21H
注:键入字符超出缓冲区范围,超出的字符丢失且响铃警告,若小于设置范围,保持原来内容
5、返回
显示全部