Dos功能调用.docx
《Dos功能调用.docx》由会员分享,可在线阅读,更多相关《Dos功能调用.docx(13页珍藏版)》请在冰豆网上搜索。
Dos功能调用
DOS功能调用
AH
功能
输入参数
输出参数
00H
程序终止
CS=程序段地址
01H
键盘输入并回显
AL=输入字符
02H
显示输出
DL=显示字符
03H
串行设备输入
AL=输入数据
04H
串行设备输出
DL=输出字数据
05H
打印机输出
DL=输出字符
06H
直接控制台I/O
DL=0FFH(输入)
DL=字符(输出)
AL=输入字符
07H
键盘输入(无回显)
AL=输入字符
08H
键盘输入(无回显)
检测Ctrl+Break
AL=输入字符
09H
显示字符串
DS:
DX=串地址
‘$’结束字符串
0AH
键盘输入到缓冲区
DS:
DX=缓冲区首址
(DS:
DX)=缓冲区最大字符数
(DS:
DX+1)=实际输入字符数
0BH
检查键盘输入状态
AL=00无按键
AL=0FFH有按键
0CH
清除输入缓冲区并执行指定的输入功能
AL=输入功能号
(01H/06H/07H/08H/0AH)
AL=输入数据
(功能号01H/06H/07H/08H)
0DH
初始化磁盘状态
0EH
指定当前缺省的磁盘驱动器
DL=驱动器号(0=A,1=B..)
AL=逻辑驱动器数
0FH
打开文件
DS:
DX=FCB首地址
AL=00H成功
AL=0FFH文件未找到
10H
关闭文件
DS:
DX=FCB首地址
AL=00H成功
AL=0FFH文件未找到
11H
查找第一匹配目录
DS:
DX=FCB首地址
AL=00H成功
AL=0FFH文件未找到
12H
查找下一匹配目录
DS:
DX=FCB首地址
AL=00H成功
AL=0FFH文件未找到
13H
删除文件
DS:
DX=FCB首地址
AL=00H成功
AL=0FFH文件未找到
14H
顺序读
DS:
DX=FCB首地址
AL=00H成功
AL=01H文件结束,记录中无数据
AL=02HDAT空间不够
AL=03H文件结束,记录不完整
15H
顺序写
DS:
DX=FCB首地址
AL=00H成功
AL=01H盘满
AL=02HDAT空间不够
16H
创建文件
DS:
DX=FCB首地址
AL=00H成功
AL=0FFH无磁盘空间
17H
文件换名
DS:
DX=FCB首地址
(DS:
DX+1)=旧文件名
(DS:
DX+17)=新文件名
AL=00成功
AL=0FFH失败
*18H
保留未用
19H
取当前缺省驱动器号
AL=驱动器号(0=A,1=B,3=C...)
1AH
设置磁盘缓冲区DTA地址
DS:
DX=DTA首地址
*1BH
取缺省驱动器磁盘格式信息
AL=每簇的扇区数
CX=每扇区的字节数
DX=数据区总簇数
DS:
BX=介质描述字节
*1CH
取指定驱动器磁盘格式信息
DL=驱动器号(0=缺省, 1=A..)
AL=每簇的扇区数
CX=每扇区的字节数
DX=数据区总簇数
DS:
BX=介质描述字节
*1DH
保留未用
*1EH
保留未用
*1FH
取缺省驱动器的DPB
DS:
BX=DPB首址
*20H
保留未用
21H
随机读
DS:
DX=FCB首地址
AL=00H成功
AL=01H文件结束
AL=02H缓冲区溢出
AL=03H缓冲区不满
22H
随机写
DS:
DX=FCB首地址
AL=00H成功
AL=01H盘满
AL=02H缓冲区溢出
23H
测定文件大小
DS:
DX=FCB首地址
AL=00H成功,文件长度填入FCB
AL=0FFH未找到
24H
设置随机记录号
DS:
DX=FCB首地址
25H
设置中断向量
DS:
DX=中断向量
AL=中断号
*26H
建立程序段前缀
DX=新的程序段的段地址
27H
随机读若干记录
DS:
DX=FCB首地址
CX=记录数
AL=00H成功
AL=01H文件结束
AL=02H缓冲区太小,传输结束
AL=03H缓冲区不满
CX=读入的记录数
28H
随机写若干记录
DS:
DX=FCB首地址
CX=记录数
AL=00H成功
AL=01H盘满
AL=02H缓冲区溢出
29H
分析文件名
AL=分析控制标记
DS:
SI=要分析字符串
ES:
DI=FCB首地址
AL=00H标准文件
AL=01H多义文件
AL=0FFH非法盘符
2AH
取系统日期
CX=年(1980-2099)
DH:
DL=月:
日
AL=星期(0=星期日)
2BH
置系统日期
CX:
DH:
DL=年:
月:
日
AL=00H成功
AL=0FFH失败
2CH
取系统时间
CH=时(0-23)
CL=分
DH=秒
DL=百分之几秒
2DH
置系统时间
CH=时(0-23)
CL=分
DH=秒
DL=百分之几秒
AL=00H成功
AL=0FFH失败
2EH
置磁盘自动读写标志
AL=00H关闭标志
AL=0IH打开标志
2FH
取磁盘缓冲区首地址
ES:
BX=DTA首地址
30H
取DOS版本号
AH=发行号
AL=版本号
31H
结束并驻留
AL=返回码
DX=驻留区大小
*32H
取指定驱动器的DPB
DS:
BX=DPB首地址
33H
Ctrl-Break检测
AL=00H取状态
AL=01H置状态(DL)
DL=00H关闭检测
DL=01H打开检测
*34H
取DOS中断标志
ES:
BX=DOS中断标志
35H
取中断向量
AL=中断号
ES:
BX=中断向量
36H
取空闲磁盘空间
DL=驱动器号
(0=缺省,1=A,2=B,3=C...)
AX=每簇扇区数,成功
AX=0FFFFH,失败
BX=有效簇数
CX=每扇区字节数
BX=文件区所占簇数
*37H
取/置参数分隔符
取/置设备名许可标记
AL=0取分隔符
AL=1置分隔符
AL=2取许可标记
AL=3置许可标记
DL=分隔符(功能0)
DL=许可标记(功能2)
38H
取/置国家信息
DS:
DX=缓冲区首址
BX=国家码(国际电话前缀码)
AL=错误码
39H
创建子目录
DS:
DX=路径字符串地址
AX=错误码
CF=0成功
CF=1失败
3AH
删除子目录
DS:
DX=路径字符串地址
AX=错误码
CF=0成功
CF=1失败
3BH
设置子目录
DS:
DX=路径字符串地址
AX=错误码
CF=0成功
CF=1失败
3CH
建立文件
DS:
DX=路径字符串地址
CX=文件属性
CF=0成功,AX=文件代号
CF=1失败,AX=错误码
3DH
打开文件
DS:
DX=带路径的文件名
AL=0读
AL=1写
AL=2读/写
CF=0成功,AX=文件代号
CF=1失败,AX=错误码
3EH
关闭文件
BX=文件代号
CF=0成功
CF=1失败,AX=错误码
3FH
读文件或设备
DS:
DX=数据缓冲区地址
BX=文件代号
CX=字节数
CF=0成功 ,AX=实际读入的字节数
AX=0已到文件尾
CF=1失败,AX=错误码
40H
写文件或设备
DS:
DX=数据缓冲区首址
BX=文件代号
CX=字节数
CF=0成功 ,AX=实际写入的字节数
CF=1失败,AX=错误码
41H
删除文件
DS:
DX=路径字符串地址
CF=0成功 ,AX=0000H
CF=1失败,AX=错误码 (2,5)
42H
移动文件指针
BX=文件代号
CX:
DX=位移量
AL=移动方式(0,1,2)
CF=0成功,DX:
AX=新的文件指针
CF=1失败,AX=错误码
43H
取/置文件属性
DS:
DX=路径字符串地址
AL=0取文件属性
AL=1置文件属性
CX=文件属性
CF=0成功,CX=文件属性
CF=1失败,AX=错误码
44H
设备输入/输出控制
BX=文件代号
AL=0取状态
AL=1置状态
AL=2读数据
AL=3写数据
AL=6取输入状态
AL=7取输出状态
DX=设备信息
45H
复制文件代号
BX=文件代号1
CF=0成功,AX=新文件代号
CF=1失败,AX=错误码
46H
强行复制文件代号
BX=文件代号1
CX=文件代号2
CF=0成功
CF=1失败,AX=错误码
47H
取当前目录路径名
DL=驱动器号
DS:
SI=路径字符串地址
(DS:
SI)=路径字符串地址
AX=错误码
48H
分配内存空间
BX=申请内存容量
CF=0成功,AX=分配内存首地址
CF=1失败,AX=错误码,BX=最大可用空间
49H
释放内存空间
ES=释放块的段值
CF=1失败,AX=错误码
4AH
修改分配内存
ES=修改块的段值
BX=再申请的容量
CF=1失败,AX=错误码,BX=最大可用空间
4BH
装载程序
运行程序
AL=0装载并运行
AL=1获得执行信息
AL=3装载但不运行
DS:
DX=带路径的文件名
ES:
BX=装载用的参数块
CF=1失败,AX=错误码
4CH
带返回码的结束
AL=返回码
4DH
取由31H/4CH带回的返
AL=返回码
4EH
查找第一个匹配文件
DS:
DX=带路径的文件名
CX=属性
CF=1失败,AX=错误码
4FH
查找下一个匹配项文件
DS:
DX=带路径的文件名
CF=1失败,AX=错误码
*50H
建立当前的PSP段地址
BX=PSP段地址
*51H
读当前的PSP段地址
BX=PSP段地址
*52H
取DOS系统数据区首址
ES:
BX=DOS数据区首址
*53H
为块设备建立DPB
DS:
SI=BPB,ES:
DI=DPB
54H
取校验开关设定值
AL=标志值(0:
关,1:
开)
*55H
由当前PSP建立新PSP
DX=PSP段地址
56H
文件换名
DS:
DX=带路径的旧文件名
ES:
DI=带路径的新文件名
CF=1失败,AX=错误码
57H
取/置文件时间及日期
AL=0/1取/置
BX=文件代号
CX=时间
DX=日期
CF=0成功,CX=时间,DX=日期
CF=1失败,AX=错误码
59H
取扩充错误码
AX=扩充错误码
BH=错误类型
BL=建议的操作
CH=错误场所
5AH
建立临时文件
CX=文件属性
DS:
DX=路径字符串地址
CF=0成功,AX=新文件代号
CF=1失败,AX=错误码
5BH
建立新文件
CX=文件属性
DS:
DX=路径字符串地址
CF=0成功,AX=新文件代号
CF=1失败,AX=错误码
5AH
控制文件存取
AL=00H封锁
AL=01H开启
BX=文件代号
CX:
DX=文件位移
SI:
DI=文件长度
CF=1失败,AX=错误码
62H
取程序段前缀地址
BX=PSP地址