微型计算机原理及应用学习笔记 DOS系统功能调用
一、系统功能调用
(一)概述
DOS为程序设计者提供了许多可直接调用的功能子程序,这些功能子程序的主要功能:
(1)磁盘的读写、控制。
(2)内存管理、文件操作和目录操作。
(3)基本输入输出管理(如键盘、打印机、显示器、磁带等管理),另外还有时间、日期等子程序。
这几十个子程序给汇编语言程序员提供了极大方便,程序员不必编写这些繁杂程序,也不必搞清有关的设备、电路、接口等,只需直接调用即可。
(二)调用方法
为了使用的方便,所有子程序已按序编号—功能号从00H ~ 68H,调用时使用如下调用方法:
(1)入口参数送指定寄存器;
(2)功能号送AH;
(3)INT 21H。
有的子程序不要入口参数,但大部分需要将参数送人指定地点。
程序员只须给出这三个方面的信息,不必关心具体程序如何,在内存中的存放地址如
何,DOS根据所给的信息,自动转入相应的子程序去执行。
(三)基本功能调用
1.键盘输入 (1号调用)
功能:等待从标准输入设备输入一个字符井送入寄存器虬,
例如:MOV AH,1
INT 21H
执行上述指令,系统将扫描键盘,等待有键按下,一旦有键按下,就将键值(相应字
符的ASCII码值)读入,先检查是否是Ctrl_Break,若是,则退出命令执行;否则将键值
送人AL寄存器,同时将这个字符显示在屏幕上。
2.打印输出 (5号调用)
功能:把DL中的字符输出到打印机上。
例如: MOV DL,‘A’
MOV AH, 5
INT 21H
3.直接控制台输入输出 (6号调用)
功能:可以从标准输入设备输入字符 也可以向屏幕上输出字符。但不检查Ctrl_Break。
例如.当DL=FPH时,表示从键盘输入,
若标志ZF=0,表示AL中为键入的字符值。
若标志ZF=1,表示AL中不是键入的字符值,即尚无键按下。
当DL≠FFH时,表示向屏幕输出,DL中为输出字符的ASCII码值。
MOV DL,OFFH
MOV AH,6
INT 21H
即为从键盘输入字符。
4.输出字符串 (9号调用)
调用时,要求DS:DX必须指向内存中一个以“$”作为结束标志的字符串。字符串中
每一个字符(不包括结尾标志$)都输出显示或打印,
例如:DATA SEGMENT
BUF DB ‘ABCDEFGHIJ$’
…
DATA ENDS
CODE SEGMENT
…
MOV AX, DATA
MOV DS, AX
…
MOV DX, OFFSET BUF
MOV AH, 9
INT 21H
…
CODE ENDS
执行本程序,屏幕将显示:ABCDEFGHIJ
5.字符串输入 (OAH号调用)
从键盘接收字符串到内存输入缓冲区。要求事先定义一个输入缓冲区,缓冲区内第一
个字节指出缓冲区能容纳的字符个数,不能为零。第二个字节保留以用作填写输入的字符
个数。从第三个字节开始存放从键盘上接收的字符。若实际输入的字符数少于定义的字节
数,缓冲区内其余字节填零,若多于定义的字节数,则后来输入的字符丢掉,且响铃。
调用时,要求DS:DX指向输入缓冲区
例如:
DATA SEGMENT
BUF DB 100 ;缓冲区长度
DB ? ;保留为填入实际输入的字符个数
DB 100 DUP(?) ;定义100个字节存贮空间
…
DATA ENDS
CODE SEGMENT
…
MOV AX,DATA
MOV DS,AX
…
MOV DX,OFFSET BUF
MOV AH,10
INT 21H
CODE ENDS
6.日期设置 (2BH调用)
调用时,CX:DX中必须有一个有效的日期,CX中存放年号(1980-2099),DH中存放月号(1—12),DL中放日号。若日期有效,设置成功,AL=0;否则AL=0FFH。
例如:下列程序可把日期设置为2000年10 月1 日。
MOV CX, 2000
MOV DH, 10
MOV DL, 1
MOV AH,2BH
INT 21H
二、ROM BIOS 中断调用
ROM BIOS(Basic Input/Output System,基本输入输出系统)存放在内存较高地址区域的ROM中,它处理系统中的全部内部中断,还提供对主要I/O接口的控制功能,如键盘、
显示器、磁盘、打印、日期与时间等。BIOS采用模块化结构形式,每个功能模块的入口地址都存在中断向量表中。对这些中断调用是通过软中断指令INT n来实现的,中断指令中的操作数 n 即中断类型码。表4-2中列出了各种中断调用的类型码。
表4—2 中 断 向 量 表
中断调用的方法是:首先给出入口参数,然后写明软件中断指令。
下面以键盘I/O中断调用为例介绍中断调用方法。
键盘I/O中断调用 (16H) 有三个功能,功能号在AH中。
(1) AH=0
入口参数:AH=0
功 能:从键盘读人字符送 AL 寄存器。
出口参数:AL中为键盘输入字符的ASCII码值
(2)AH=1
入口参数:AH=1
功 能:从键盘读入字符送AL,并设置ZF标志.若按过任一健 ( 即键盘缓冲区
不空 ),置ZF=0,否则ZF=1。
出口参数:若ZF=0,则AL中为输入字符的ASCII码,
(3)AH=2
人口参数:AH=2
功 能:读取特殊功能键的状态
出口参数:AL为各特殊功能键的状态,位7是插入键(INS),位6是大小写字母键(CAPS),位5是数字键(NUM),位4是滚动键(SCROLL),位3是交替键(ALT),位2是控制键(CTL),位1是左边的SHIFT键,位0是右边的SHIFT键。
例如: MOV AH,0
INT 16H
调用结果,将键盘输入字符的ASCII码值送AL中。
(一)概述
DOS为程序设计者提供了许多可直接调用的功能子程序,这些功能子程序的主要功能:
(1)磁盘的读写、控制。
(2)内存管理、文件操作和目录操作。
(3)基本输入输出管理(如键盘、打印机、显示器、磁带等管理),另外还有时间、日期等子程序。
这几十个子程序给汇编语言程序员提供了极大方便,程序员不必编写这些繁杂程序,也不必搞清有关的设备、电路、接口等,只需直接调用即可。
(二)调用方法
为了使用的方便,所有子程序已按序编号—功能号从00H ~ 68H,调用时使用如下调用方法:
(1)入口参数送指定寄存器;
(2)功能号送AH;
(3)INT 21H。
有的子程序不要入口参数,但大部分需要将参数送人指定地点。
程序员只须给出这三个方面的信息,不必关心具体程序如何,在内存中的存放地址如
何,DOS根据所给的信息,自动转入相应的子程序去执行。
(三)基本功能调用
1.键盘输入 (1号调用)
功能:等待从标准输入设备输入一个字符井送入寄存器虬,
例如:MOV AH,1
INT 21H
执行上述指令,系统将扫描键盘,等待有键按下,一旦有键按下,就将键值(相应字
符的ASCII码值)读入,先检查是否是Ctrl_Break,若是,则退出命令执行;否则将键值
送人AL寄存器,同时将这个字符显示在屏幕上。
2.打印输出 (5号调用)
功能:把DL中的字符输出到打印机上。
例如: MOV DL,‘A’
MOV AH, 5
INT 21H
3.直接控制台输入输出 (6号调用)
功能:可以从标准输入设备输入字符 也可以向屏幕上输出字符。但不检查Ctrl_Break。
例如.当DL=FPH时,表示从键盘输入,
若标志ZF=0,表示AL中为键入的字符值。
若标志ZF=1,表示AL中不是键入的字符值,即尚无键按下。
当DL≠FFH时,表示向屏幕输出,DL中为输出字符的ASCII码值。
MOV DL,OFFH
MOV AH,6
INT 21H
即为从键盘输入字符。
4.输出字符串 (9号调用)
调用时,要求DS:DX必须指向内存中一个以“$”作为结束标志的字符串。字符串中
每一个字符(不包括结尾标志$)都输出显示或打印,
例如:DATA SEGMENT
BUF DB ‘ABCDEFGHIJ$’
…
DATA ENDS
CODE SEGMENT
…
MOV AX, DATA
MOV DS, AX
…
MOV DX, OFFSET BUF
MOV AH, 9
INT 21H
…
CODE ENDS
执行本程序,屏幕将显示:ABCDEFGHIJ
5.字符串输入 (OAH号调用)
从键盘接收字符串到内存输入缓冲区。要求事先定义一个输入缓冲区,缓冲区内第一
个字节指出缓冲区能容纳的字符个数,不能为零。第二个字节保留以用作填写输入的字符
个数。从第三个字节开始存放从键盘上接收的字符。若实际输入的字符数少于定义的字节
数,缓冲区内其余字节填零,若多于定义的字节数,则后来输入的字符丢掉,且响铃。
调用时,要求DS:DX指向输入缓冲区
例如:
DATA SEGMENT
BUF DB 100 ;缓冲区长度
DB ? ;保留为填入实际输入的字符个数
DB 100 DUP(?) ;定义100个字节存贮空间
…
DATA ENDS
CODE SEGMENT
…
MOV AX,DATA
MOV DS,AX
…
MOV DX,OFFSET BUF
MOV AH,10
INT 21H
CODE ENDS
6.日期设置 (2BH调用)
调用时,CX:DX中必须有一个有效的日期,CX中存放年号(1980-2099),DH中存放月号(1—12),DL中放日号。若日期有效,设置成功,AL=0;否则AL=0FFH。
例如:下列程序可把日期设置为2000年10 月1 日。
MOV CX, 2000
MOV DH, 10
MOV DL, 1
MOV AH,2BH
INT 21H
二、ROM BIOS 中断调用
ROM BIOS(Basic Input/Output System,基本输入输出系统)存放在内存较高地址区域的ROM中,它处理系统中的全部内部中断,还提供对主要I/O接口的控制功能,如键盘、
显示器、磁盘、打印、日期与时间等。BIOS采用模块化结构形式,每个功能模块的入口地址都存在中断向量表中。对这些中断调用是通过软中断指令INT n来实现的,中断指令中的操作数 n 即中断类型码。表4-2中列出了各种中断调用的类型码。
表4—2 中 断 向 量 表
中断调用的方法是:首先给出入口参数,然后写明软件中断指令。
下面以键盘I/O中断调用为例介绍中断调用方法。
键盘I/O中断调用 (16H) 有三个功能,功能号在AH中。
(1) AH=0
入口参数:AH=0
功 能:从键盘读人字符送 AL 寄存器。
出口参数:AL中为键盘输入字符的ASCII码值
(2)AH=1
入口参数:AH=1
功 能:从键盘读入字符送AL,并设置ZF标志.若按过任一健 ( 即键盘缓冲区
不空 ),置ZF=0,否则ZF=1。
出口参数:若ZF=0,则AL中为输入字符的ASCII码,
(3)AH=2
人口参数:AH=2
功 能:读取特殊功能键的状态
出口参数:AL为各特殊功能键的状态,位7是插入键(INS),位6是大小写字母键(CAPS),位5是数字键(NUM),位4是滚动键(SCROLL),位3是交替键(ALT),位2是控制键(CTL),位1是左边的SHIFT键,位0是右边的SHIFT键。
例如: MOV AH,0
INT 16H
调用结果,将键盘输入字符的ASCII码值送AL中。
【免责声明】
1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。
2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:952056566@qq.com
相关《微型计算机原理及应用学习笔记 DOS系统功能调用》的文章
甘肃自考便捷服务
- 微信交流群
- 微信公众号
微信扫一扫加入考生微信群
①学习交流、②考试提醒、③自考解答
④自考资料、⑤新闻通知、⑥备考指导
甘肃自考网微信公众号
随时获取甘肃省自考政策、通知、公告
以及各类学习微信公众号
- 热点文章
- 常见问题