2023年12月1日发(作者:)

中断INT 21H :1字符功能调用类(Character-Oriented Function)01H07H08H 从标准输

入设备输入字符02H 字符输出03H 辅助设备的输入04H 辅助设备的输出05H 打印

输出06H 控制台输入/输出09H 显示字符串0AH 键盘缓冲输入0BH 检测输入状

0CH 清输入缓冲区的输入功能(1)、功能01H07H08H功能描述:从标准输入设备

(如:键盘)读入一个字符。该中断在处理过程中将一直处于等待状态直到有字符可读为止。

该输入还可被重定向,如果这样做,则无法判断文件是否已到文件尾入口参数:AH01H

过滤掉控制字符,并回显 07H,不过滤掉控制字符,不回显 08H,过滤掉控制字符,

不回显出口参数:AL=输入字符的ASCII(2)、功能02H功能描述:向标准输出设备(如:

屏幕)输出一个字符。该输出还可被重定向,如果这样做,则将无法判断磁盘是否满入口参

数:AH02HDL=待输出字符的ASCII码出口参数:无(3)、功能03H功能描述:从辅助设

备读入一个字符,该辅助设备的缺省值为COM1入口参数:AH03H出口参数:AL=读入

字符的ASCII(4)、功能04H功能描述:向辅助设备输出一个字符,该辅助设备的缺省值

COM1入口参数:AH04HDL=待输出字符的ASCII码出口参数:无(5)、功能05H

能描述:向标准的输出设备输出一个字符。该缺省的输出设备为LPT1端口的打印机,除非

MODE命令来改变入口参数:AH05HDL=待输出字符的ASCII码出口参数:无(6)

功能06H功能描述:控制台(如:键盘、屏幕)输入/输出。如果输入/输出操作被重定向,那

么,将无法判断文件是否已到文件尾,或磁盘已满入口参数:AH06HDL=输入/输出功

能选择出口参数:若DL00H-FEH,则此功能为输出,DL为待输出字符的ASCII码;若

DL0FFH,则此功能为输入,此时:若ZF1,则无字符可读,否则,AL=读入字符的

ASCII(7)、功能09H功能描述:输出一个字符串到标准输出设备上。如果输出操作被重

定向,那么,将无法判断磁盘已满入口参数:AH09HDS:DX=待输出字符的地址说明:

待显示的字符串以’$’作为其结束标志出口参数:无(8)、功能0AH功能描述:从标准输入设

备上读入一个字节字符串,遇到回车键结束输入(输入的字符在标准的输出设备上有回

)。如果该输入操作被重定向,那么,将无法判断文件是否已到文件尾入口参数:AH

0AHDS:DX=存放输入字符的起始地址接受输入字符串缓冲区的定义说明: 1、第一个字

节为缓冲区的最大容量,可认为是入口参数; 2、第二个字节为实际输入的字符数(不包括

回车键),可看作出口参数; 3、从第三个字节开始存放实际输入的字符串; 4、字符串

以回车键结束,回车符是接受的最后一个字符; 5、若输入的字符数超过缓冲区的最大容

量,则多出的部分被丢弃,系统并发出响铃,直到输入回车键才结束输入。例如: BUFF

80, ?, 80 DUP(?) ;最多接受80个字符出口参数:无(9)、功能0BH功能描述:检查标准输

入设备上是否有字符可读。该输入操作可被重定向入口参数:AH0BH出口参数:AL

00H——无字符可读;FFH——有字符可读(10)、功能0CH功能描述:清空当前的标准输入

缓冲区,再读入字符。其输入操作可被重定向入口参数:AH0CHAL01H06H07H

08H0AH出口参数:若入口参数AL0AH,则DS:DX=存放输入字符的起始地址,否

则,出口参数AL=输入字符的ASCII2目录控制功能(Directory-Control Function)39H

创建目录3AH 删除目录3BH 设置当前目录47H 读取当前目录(1)、功能39H功能描

述:用指定的驱动器和路径创建一个新目录入口参数:AH39HDS:DX=指定路径的字符

串地址(0为字符串的结束标志)出口参数:CF0——创建成功,否则,AX=错误号(03H

05H)其含义见错误代码表(2)功能3AH功能描述:删除指定的驱动器和路径的目录入

口参数:AH3AHDS:DX=指定路径的字符串地址(0为字符串的结束标志)出口参数:

CF0——删除成功,否则,AX=错误号(03H05H)其含义见错误代码表(3)功能3BH

功能描述:用指定的驱动器和路径设置为当前目录入口参数:AH3BHDS:DX=指定路径

的字符串地址(0为字符串的结束标志)出口参数:CF0——设置成功,否则,AX=错误

(03H),其含义见错误代码表(4)、功能47H功能描述:取当前目录的完全路径字符串入口

参数:AH47HDL=驱动器号(0=缺省,1A…)DS:SI=存放当前目录字符串的地址出口

参数:CF0——读取成功,否则,AX=错误号(0FH),其含义见错误代码表3、磁盘管理

功能(Disk-Management Function)0DH 磁盘复位 0EH 选择磁盘19H 读取当前驱动器

1BH, 1CH 读取驱动器数据2EH 设置校验标志36H 读取驱动器分配信息54H 读取

校验标志(1)、功能0DH功能描述:清空当前的文件缓冲区,但在MS-DOS内,暂时写入缓

冲区的数据将写入磁盘入口参数:AH0DH出口参数:无(2)、功能0EH功能描述:指定

当前驱动器入口参数:AH0EHDL=驱动器号(0A1B...)出口参数:AL=系统中当

前的驱动器号(3)功能19H功能描述:取当前缺省驱动器号入口参数:AH19H出口参数:

AL=驱动器号(0A1B...)(4)、功能1BH1CH功能描述:获得驱动器的分配信息

入口参数:AH1BH——为缺省驱动器AH1CH——为任意驱动器,DL=驱动器号(0

缺省,1A...)出口参数:AL0FFH——失败,否则, AL=每簇的扇区数 DS:BX

ID字节的地址 CX=物理扇区的大小(字节数) DX=驱动器的簇数(5)、功能2EH功能描

述:设置/清除操作系统自动读取检验标志入口参数:AH2EHDL00HAL00H——

除该标志,01H——设置该标志出口参数:无(6)、功能36H功能描述:取选定驱动器的信

息入口参数:AH36HDL=驱动器号(0-缺省,1=A2=B…)出口参数:若功能调用失败,

AX=0FFFFH否则, AX=每簇的扇区数 BX=可用的簇数 CX=物理扇区的大小(字节

) DX=驱动器中的簇数(7)、功能54H功能描述:读取校验标志入口参数:AH54H

口参数:AL=当前检验标志值:00H关检验,01H开检验4文件操作功能(File Operation

Function)3CH 创建文件3DH 打开文件3EH 关闭文件41H 删除文件43H 读取/

置文件属性45H 复制文件句柄46H 重定义文件句柄4EH 查找到第一个文件4FH

查找下一个文件56H 文件换名57H 读取/设置文件的日期和时间5AH 创建临时文件

5BH 创建新文件67H 设置文件句柄数(最多文件数)6CH 扩展的打开文件功能(打开、

创建或替换文件)(1)、功能3CH功能描述:用指定的文件名创建一个新文件。如果指定的文

件已存在,则设置其长度为0。创建后,该文件是打开的,并返回其句柄入口参数:AH

3CHDS:DX=指定文件名字符串的地址(0为字符串的结束标志)CX=文件属性(这些标志

位可以组合) 0=1——只读位2=1——系统位5=1——归档位1=1——隐含位3=1——卷标

号其它位保留不用,并置为0出口参数:CF0——创建成功,AX=文件句柄,否则,AX

=错误号(03H04H05H),其含义见错误代码表(2)、功能3DH功能描述:打开指定的驱

动器、路径和文件名,并返回其文件句柄入口参数:AH3DHDS:DX=表明文件的字符串(

0为字符串的结束标志)AL为打开方式: 0~2000只读方式 001写方式 010/

写方式位3保留,其值为04~6共享模式 000兼容模式001不共享010拒绝写011

拒绝读100不拒绝任何操作位7继承标志——0/1:子进程继承或不继承句柄出口参数:

CF0——打开成功,AX=文件句柄,否则,AX=错误号(02H03H04H05H0CH)

其含义见错误代码表(3)功能3EH功能描述:关闭指定句柄的文件入口参数:AH3EHBX

=文件句柄出口参数:CF0——关闭成功,否则,AX=错误号(06H),其含义见错误代码

(4)、功能41H功能描述:删除指定的文件入口参数:AH41HDS:DX=文件名字符串的

地址出口参数:CF0——删除成功,否则,AX=错误号(02H03H05H),其含义见错

误代码表(5)功能43H功能描述:读取或设置指定文件的属性入口参数:AH43HBX=文

件句柄DS:DX=文件名字符串的地址AL00H/01H——读取/设置文件属性CX=文件属

性: 0=1——只读位1=1——隐含位2=1——系统位3=1——卷标号位5=1——归档其它

位保留不用,并置为0出口参数:CF0——关闭成功,CX=文件属性,否则,AX=错误

(01H02H03H05H),其含义见错误代码表(6)、功能45H功能描述:复制当前打开

设备或文件的句柄,该句柄对应同样设备或文件的相同位置入口参数:AH45HBX=待复

制的文件句柄出口参数:CF0——复制成功,AX=新句柄,否则,AX=错误号(04H

06H),其含义见错误代码表(7)、功能46H功能描述:指定二个句柄,把第二句柄指向第一

个句柄,即第二个句柄被重定向入口参数:AH46HBX=文件或设备的句柄CX=待重定

向的文件句柄出口参数:CF0——重定向成功,否则,AX=错误号(04H06H),其含义

见错误代码表(8)功能4EH功能描述:获取第一个与给定的文件名相匹配的文件入口参数:

AH4EHDS:DX=给定文件名的字符串CX=搜索时使用的文件属性: 0=1——只读

1=1——隐含位2=1——系统 3=1——卷标号位4=1——目录 5=1——归档其它位保

留不用,并置为0出口参数:CF1——操作失败,AX=错误号(02H03H12H),其含

义见错误代码表,否则,操作成功,DTA(Disk TransferArea)按下列方式填入数据: 字节

00~14H保留字节15H匹配的文件属性字节16~17H压缩的文件名字节18~19H压缩的文件

日期字节1A~1DH文件大小字节1E~2AH文件名字符串(9)功能4FH功能描述:在中断21H

的功能4EH成功使用之后,再搜索下一个文件名入口参数:AH4FHAL=返回的代码出口

参数:CF1——操作失败,AX=错误号(12H),其含义见错误代码表,否则,操作成功,

DTA中的数据如前面功能4EH所示(10)、功能56H功能描述:文件换名入口参数:AH

56HDS:DX=当前文件名字符串地址ES:DI=新文件名字符串地址出口参数:CF0——

作成功,否则,AX=错误号(02H03H05H11H),其含义见错误代码表(11)、功能57H

功能描述:读取/设置文件的日期和时间入口参数:AH57HBX=文件句柄 读取日期和时

AL00H设置日期和时间AL01HCX=时间(0F~0BH小时,0AH~05H分钟,04H~00H

2秒的个数)DX=日期(0F~09H(相对1980)08H~05H:月,04H~00H)出口参数:

CF1——操作失败,AX=错误号(01H06H),其含义见错误代码表,否则,若是读文件

信息,则,CX=时间,DX=日期(12)、功能5AH功能描述:创建临时文件入口参数:AH

5AHDS:DX=路径名的地址CX=文件属性(位可组合)其定义如下: 01 只读位3-4

0 保留位11 隐含位51 归档位21 系统位6-150 保留出口参数:CF0——

操作成功,AX=文件句柄,DS:DX=完整的路径文件地址,否则,AX=错误号(03H04H

05H),其含义见错误代码表(13)、功能5BH功能描述:创建新文件入口参数:AH

5BHDS:DX=路径名的地址CX=文件属性(位可组合),其定义如下: 01只读位40

保留位11隐含位51归档位21系统位6-150保留位31卷标号出口参数:CF

0——操作成功,AX=文件句柄,否则,AX=错误号(03H04H05H50H),其含义见

错误代码表(14)功能67H功能描述:设置文件句柄数(最多文件数)入口参数:AH67HBX

=句柄的数量出口参数:CF0——操作成功,否则,AX=错误号,其含义见错误代码表(15)

功能6CH功能描述:扩展的打开文件功能(打开、创建或替换文件)入口参数:AH6CHAL

00HDS:SI=路径名的地址BX=打开方式 2~0000只读 001只写 010可读、写

3保留(0)6~4000兼容 001拒绝读写 010——拒绝写011拒绝读 100——

拒绝任何操作位70子进程继承句柄,1子进程不继承句柄位12~8保留(0)13致命错误

处理程序,0执行INT 24H,否则,返回错误代码给进程位14写入方式:0写入缓冲区,

1直接写入文件位15保留(0)CX=文件属性位01 只读位40 保留位11 隐含位5

1 归档位21 系统位6-150 保留位31 卷标签DX=打开标志 3~0 0打开

失败,1打开文件,2替换文件位7~4 0打开失败,1创建文件位15~8 0保留出

口参数:CF1——操作失败,AX=错误号,其含义见错误代码表,否则,AX=文件句柄

CX1——文件存在,打开之 2——文件不存在,创建之5、文件操作功能(FCB)(File

Operation Function)0FH 打开文件10H 关闭文件11H12H 查找第一个或下一个文件

13H 删除文件16H 创建文件17H 文件换名23H 读取文件的大小29H 分析文件名

(1)功能0FH功能描述:打开文件,并使之为顺序读/写作好准备入口参数:AH0FHDS:DX

=文件控制块的地址出口参数:AL00H——打开成功,否则,ALFFH(如文件找不到)

MS-DOS操作系统中,文件控制块的字段如下表所示。 字段名偏移量字段含义驱动器字

00H1 for drive A, 2 for drive B,...当前块字段0CH00H记录大小字段0EH0080H文件长度字段

10H文件字节数日期字段14H日期时间字段16H时间(2)功能10H功能描述:关闭文件入

口参数:AH10HDS:DX=文件控制块的地址出口参数:AL00H——关闭成功,否则,

ALFFH(3)功能11H12H功能描述:查找第一个或下一个相匹配的文件入口参数:AH

11H——第一个相匹配的文件 12H——下一个相匹配的文件DS:DX=文件控制块的地

址出口参数:AL00H——查找到,否则,ALFFH(4)、功能13H功能描述:在指定(或缺

)的驱动器中,删除所有相匹配的文件入口参数:AH13HDS:DX=文件控制块的地址出

口参数:AL00H——删除成功,否则,ALFFH(5)、功能16H功能描述:在当前目录中

创建一个文件,其文件长度为0并打开该文件,为随后的读/写操作作好必要的准备入口参

数:AH16HDS:DX=未打开的文件控制块的地址出口参数:AL00H——创建成功,否

则,ALFFH(如:磁盘满)(6)、功能17H功能描述:在指定的驱动器的当前目录中,把所

有相匹配的文件换名入口参数:AH17HDS:DX=指定文件控制块的地址出口参数:AL

00H——换名成功,否则,ALFFH(7)、功能23H功能描述:在当前目录中查找一个相匹

配的文件。如果发现,则用其记录数来更新其文件大小入口参数:AH23HDS:DX=未打

开的文件控制块的地址出口参数:AL00H——匹配成功,FCB中偏移量为21H的字段被

设置为其记录数,否则,AL0FFH(8)、功能29H功能描述:分析一个字符串(文件名)置入

FCB表中的不同字段入口参数:AH29HCX=要写入的记录数DS:SI=字符串段的地址

ES:DIFCB的地址AL=分析的控制标志位 31——若字符串中有文件后缀,则FCB

中的文件后缀将改变=0——若后缀忽略修改,或若分析后无后缀,FCB中后缀字段被置

21——若字符串中有文件名,FCB中的文件名将改变=0——若文件名忽略修

改,或若分析后无文件名,则FCB中文件名字段被置为11——若字符串中指定了

驱动器号,FCB中的ID字节被修改=0——ID字节忽略修改,或若分析后没有指定驱

动器号,则FCB中驱动器字段被置为0(缺省值)01——0——忽略前导分割符不忽略

前导分割符出口参数:AL00H没有通配字符 01H有通配字符 FFH驱动器号非法

DS:SI=分析后文件名第一个字符的地址ES:DI=格式化后的、未打开的FCB地址6、记录

操作功能(Record Function)1AH 设置数据传输区地址2FH 读取数据传输区地址3FH

读文件或设备40H 写文件或设备42H 设置文件指针5CH 文件区域加锁或解锁68H

提交文件缓冲区数据(2)、功能2FH功能描述:为FCB读/写操作而获取DTA的当前地

址入口参数:AH2FH出口参数:ES:BXDTA的段地址和偏移量(3)功能3FH功能描述:

从先前打开的文件中读出指定数目的字节,并移动文件指针入口参数:AH3FHBX=文件

句柄CX=将要读出的字节数DS:DX=存放字符的缓冲区地址出口参数:CF0——读取成

功,AX=读取的字符数,否则,AX=错误号(05H06H),其含义见错误代码表(4)、功能

40H功能描述:向先前打开的文件写入指定数量的字节,并相应修改文件指针入口参数:

AH40HBX=文件句柄CX=写入的字节数DS:DX=存放数据的缓冲区地址出口参数:CF

0——关闭成功,AX=写入的字节数,否则,AX=错误号(05H06H)其含义见错误代

码表(5)功能42H功能描述:设置文件指针的相对位置(相对与文件头、文件尾和当前位置)

入口参数:AH42HBX=文件句柄CX=偏移量的高位DX=偏移量的低位AL00H——

从文件头开始的绝对偏移量 01H——从当前文件指针开始的偏移量(可带符号)

02H——从文件尾开始的偏移量(可带符号)出口参数:CF0——设置成功,DX是指针的高

位,AX是其低位,否则,AX=错误号(01H06H),其含义见错误代码表。(6)、功能5CH

功能描述:文件区域加锁或解锁入口参数:AH5CHAL00H——区域加锁 01H——

域解锁BX=文件句柄CX:DX=区域偏移量SI:DI=区域长度DS:DX=路径名的地址出口参

数:CF0——操作成功,否则,AX=错误号(01H06H21H24H),其含义见错误代

码表(7)功能68H功能描述:提交文件缓冲区数据入口参数:AH68HBX=文件句柄出口

参数:CF0——操作成功,否则,AX=错误号,其含义见错误代码表