加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

dos功能大全(转)

(2009-03-16 21:37:50)
标签:

it

分类: 技术

一、21H号中断类型(INT 21H)的各功能详解。
00H号功能——程序终止
    入口参数:AH=0 ;功能号
              CS已指定
    返回值:无。

01H号功能——键盘输入并回显。[检测break(Ctrl+C)]
    入口参数:AH=01H ;功能号
    返回值:AL=输入的字符。

02H号功能——显示输出。[检测break(Ctrl+C)]
    入口参数:AH=02H ;功能号
              DL=要显示的字符
    返回:光标移动。

03H号功能——异步通讯输入。
    入口参数:AH=03H ;功能号
    返回值:AL=输入的数值

04H号功能——异步通讯输出。
    入口参数:AH=04H ;功能号
              DL=要输出的数值
    返回值:无

05H号功能——打印机输出。[自动检测打印机]
    入口参数:AH=05H ;功能号
              DL=要输出的数值
    返回值:无

06H号功能——直接控制台I/O(输入/输出)。[[不检测break(Ctrl+C)]]
    入口参数1:AH=06H ;功能号
              DL=要输出的字符(DL<0FFH)
    功能1:输出
    返回1:光标移动

    入口参数2:AH=06H ;功能号
              DL=0FFH
    功能2:输入
    返回2:AL=输入的字符

07H号功能——键盘输入但不回显。
    入口参数:AH=07H ;功能号
    返回值:AL=输入的字符。

08H号功能——键盘输入但不回显。[检测break(Ctrl+C)]
    入口参数:AH=08H ;功能号
    返回值:AL=输入的字符。
    说明: 如果返回AL=0,则是扩展ASC码,要再次调用才能取得扩展ASC码。例:
          mov ah,8
          int 21h
          cmp al,0
          jnz ----- 是ASC码,去处理ASC码。
          mov ah,8
          int 21h    ;这次AL返回扩展ASC码。

09H号功能——显示字符串。
    入口参数:AH=09H ;功能号
              DS:DX=串地址。串必须以'$'字符结尾。
    返回:光标移动。

0AH号功能——键盘输入字串到缓冲区。
    入口参数:AH=0AH ;功能号
              DS:DX=缓冲区地址。
              缓冲区首字节=缓冲区字节数。
    返回:缓冲区第二字节单元中的值为实际输入的字符数。
    例子:如果要输入的最多字符个数为10,则缓冲区的结构如下:
          db 12         ;缓冲区长度(调用前设置)
          db ?          ;实际输入的字符数(由INT 21H功能自动设置)
          db 10 dup(?) ;输入的字符保存在这里


0BH号功能——检测键盘状态。
    入口参数:AH=0BH ;功能号
    返回:AL=0: 表示有输入;
          AL=0FFH: 表示没有输入。

0CH号功能——清除键盘输入缓冲区,并请求指定的输入功能。
    入口参数:AH=0CH ;功能号
              AL=输入功能号(即上述功能号:01H,06H,07H,08H,0AH)
              DS:DX=缓冲区地址(如果不请求0AH号功能,则本参数省略)。
              缓冲区首字节=缓冲区字节数。
    返回:与请求的功能返回相同。

0DH号功能——磁盘复位。
    入口参数:AH=0DH ;功能号
    返回:清除磁盘缓冲区。

0EH号功能——指定当前缺省的磁盘驱动器。
    入口参数:AH=0EH ;功能号
              DL=驱动器编号(0=驱动器A;1=驱动器B;......)
    返回:AL=驱动器数。

0FH号功能——打开文件。
    入口参数:AH=0FH ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=0FFH:失败。

10H号功能——关闭文件。
    入口参数:AH=10H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=0FFH:失败。

11H号功能——查找首个目录。
    入口参数:AH=11H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=0FFH:失败。

12H号功能——查找下一个目录。
    入口参数:AH=12H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=0FFH:失败。

13H号功能——删除文件。
    入口参数:AH=13H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=0FFH:失败。

14H号功能——顺序读文件。
    入口参数:AH=14H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=1:文件结束,无可读数据;
          AL=2:DTA(数据传输区)空间不够;
          AL=3:文件结束,记录不完整。

15H号功能——顺序写文件。
    入口参数:AH=15H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=1:磁盘满;
          AL=2:DTA(数据传输区)空间不够。

16H号功能——新建文件。
    入口参数:AH=16H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=0FFH:无磁盘空间。

17H号功能——文件改名。
    入口参数:AH=17H ;功能号
              DS:DX=FCB(文件控制块)首址
              (DS:DX+1)=旧文件名
              (DS:DX+17)=新文件名
    返回:AL=0:成功;
          AL=0FFH:失败。

19H号功能——取当前缺省驱动器名。
    入口参数:AH=19H ;功能号
    返回:AL=缺省驱动器编号(0=驱动器A;1=驱动器B;......)

1AH号功能——设置DTA(数据传输区)地址。
    入口参数:AH=1AH ;功能号
              DS:DX=DTA地址
    返回:无

1BH号功能——取缺省驱动器FAT信息。
    入口参数:AH=1BH ;功能号
    返回:AL=每簇的扇区数;
          DS:BX=指向FAT标识字节;
          CX=物理扇区的大小;
          DX=簇数。

1CH号功能——取指定驱动器FAT信息。
    入口参数:AH=1BH ;功能号
              DL=驱动器编号(0=驱动器A;1=驱动器B;......)
    返回:AL=每簇的扇区数;
          DS:BX=指向FAT标识字节;
          CX=物理扇区的大小;
          DX=簇数。

21H号功能——随机读文件。
    入口参数:AH=21H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=1:文件结束,无可读数据;
          AL=2:DTA(数据传输区)空间不够;
          AL=3:文件结束,记录不完整。

22H号功能——随机写文件。
    入口参数:AH=22H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功;
          AL=1:磁盘满;
          AL=2:DTA(数据传输区)空间不够。

23H号功能——测定文件大小。
    入口参数:AH=23H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:AL=0:成功,文件长度填入FCB;
          AL=0FFH:失败。

24H号功能——设置随机记录号。
    入口参数:AH=24H ;功能号
              DS:DX=FCB(文件控制块)首址
    返回:

25H号功能——设置中断向量。
    入口参数:AH=25H ;功能号
              DS:DX=中断向量
              AL=中断类型号
    返回:无

26H号功能——建立程序段前缀。
    入口参数:AH=26H ;功能号
              DX=新的程序段前缀
    返回:无

27H号功能——随机分块读文件。
    入口参数:AH=27H ;功能号
              DS:DX=FCB(文件控制块)首址
              CX=记录数
    返回:AL=0:成功;
          AL=1:文件结束,无可读数据;
          AL=2:DTA(数据传输区)空间不够;
          AL=3:文件结束,记录不完整。

28H号功能——随机分块写文件。
    入口参数:AH=28H ;功能号
              DS:DX=FCB(文件控制块)首址
              CX=记录数
    返回:AL=0:成功;
          AL=1:文件结束,无可读数据;
          AL=2:DTA(数据传输区)空间不够。


29H号功能——分析文件名。
    入口参数:AH=29H ;功能号
              ES:DI=FCB(文件控制块)首址
              DS:SI=ASCIIZ串
              AL=控制块分析标志
    返回:AL=0:标准文件;
          AL=1:多义文件;
          AL=0FFH:非法盘符。

2AH号功能——取计算机当前日期。
    入口参数:AH=2AH ;功能号
    返回:CX=年份;
          DH=月份
          DL=日期
          AL=星期(0—6:分别对应星期日、星期一、......)。

2BH号功能——设置计算机日期。
    入口参数:AH=2BH ;功能号
              CX=年份;
              DH=月份
              DL=日期
        返回:AL=0:成功;
              AL=0FFH:无效。

2CH号功能——取计算机当前时间。
    入口参数:AH=2CH ;功能号
    返回:CH=时;
          CL=分;
          DH=秒;
          DL=1/100秒。

2DH号功能——设置计算机时间。
    入口参数:AH=2DH ;功能号
              CH=时;
              CL=分;
              DH=秒;
              DL=1/100秒。
        返回:AL=0:成功;
              AL=0FFH:无效。

2EH号功能——设置磁盘自动读写标志。
    入口参数:AH=2EH ;功能号
              AL=0为关闭;AL=1为打开
        返回:

2FH号功能——取磁盘缓冲区(DTA)地址。
    入口参数:AH=2FH ;功能号
        返回:ES:BX=缓冲区地址。
        注意:该地址是用1AH号功能设置的。

30H号功能——取DOS版本号。
    入口参数:AH=30H ;功能号
        返回:AH=发行号;
              AL=版号。

31H号功能——程序结束并驻留。
    入口参数:AH=31H ;功能号
              AL=返回码;
              DX=驻留区大小(从PSP开始计算)
        返回:AH=发行号;
              AL=版号。

33H号功能——Ctrl-Break检测。
    入口参数:AH=33H ;功能号
              AL=0为取状态值;AL=1为置状态值;
              DL=0为关闭检测;DL=1为打开检测。
        返回:DL=0:关闭Ctrl-Break检测;
              DL=1:打开Ctrl-Break检测。

35H号功能——取中断向量。
    入口参数:AH=35H ;功能号
              AL=中断类型
              DL=0为关闭检测;DL=1为打开检测。
        返回:DL=0:关闭Ctrl-Break检测;
              DL=1:打开Ctrl-Break检测。

36H号功能——取空闲磁盘空间。
    入口参数:AH=36H ;功能号
              DL=驱动器号(0=缺省驱动器,1=A,2=B,...)
        返回:AX=0FFFFH时为失败,否则为成功。成功时:
              AX=每簇扇区数;
              BX=有效簇数;
              CX=每扇区字节数;
              DX=总簇数。

38H号功能——取或置国家信息。
    入口参数:AH=38H ;功能号
              DS:DX=信息区地址
        返回:BX=国家码(国际电话前缀码)
              AX=错误码。

39H号功能——建立子目录(MKDIR)。
    入口参数:AH=39H ;功能号
              DS:DX=ASCIIZ串地址
        返回:AX=错误码。

3AH号功能——删除子目录(RMDIR)。
    入口参数:AH=3AH ;功能号
              DS:DX=ASCIIZ串地址
        返回:AX=错误码。

3BH号功能——改变当前目录。
    入口参数:AH=3BH ;功能号
              DS:DX=ASCIIZ串地址
        返回:AX=错误码。

3CH号功能——建立文件。
    入口参数:AH=3CH ;功能号
              DS:DX=ASCIIZ串地址
                 CX=文件属性(CX=0为普通文件)
        返回:CF=0:成功,AX=文件代号;
              CF=1:失败,AX=错误码。

3DH号功能——打开文件。
    入口参数:AH=3DH ;功能号
              DS:DX=ASCIIZ串地址
              AL=0:以只读方式打开
              AL=1:以只写方式打开
              AL=2:可读/写
        返回:CF=0:成功,AX=文件代号;
              CF=1:失败,AX=错误码。

3EH号功能——关闭文件。
    入口参数:AH=3EH ;功能号
              BX=文件代号(3CH、3DH功能返回的文件代号)
        返回:CF=0:成功;
              CF=1:失败,AX=错误码。

3FH号功能——读文件或设备。
    入口参数:AH=3FH ;功能号
              DS:DX=数据缓冲区地址
              BX=文件代号(3CH、3DH功能返回的文件代号)
              CX=要读取的字节数
        返回:CF=0:成功,AX=实际读入的字节数;
              CF=1:失败,AX=错误码。

40H号功能——写文件或设备。
    入口参数:AH=40H ;功能号
              DS:DX=数据缓冲区地址
              BX=文件代号(3CH、3DH功能返回的文件代号)
              CX=要写入的字节数
        返回:CF=0:成功,AX=实际写入的字节数;
              CF=1:失败,AX=错误码。

41H号功能——删除文件。
    入口参数:AH=41H ;功能号
              DS:DX=ASCIIZ串地址
        返回:CF=0:成功,AX=0;
              CF=1:失败,AX=错误码(2、5)。

42H号功能——移动文件指针。
    入口参数:AH=42H ;功能号
              BX=文件代号(3CH、3DH功能返回的文件代号)
              CX=移动字节数的高16位值
              DX=移动字节数的低16位值
              AL=移动方式:
                 AL=0:绝对位置(即从文件首开始)
                 AL=1:相对位置(即从当前文件指针开始)
                 AL=2:绝对倒移(即从文件尾开始)
              注:DXCX移动量为补码形式(即符号数)。
        返回:CF=0:成功,DXAX=新的文件指针位置;
              CF=1:失败,AX=错误码。

43H号功能——取或置文件属性。
    入口参数:AH=43H ;功能号
              DS:DX=ASCIIZ串地址
              AL=0为取文件属性
              AL=1为置文件属性,CX=文件属性。
        返回:CF=0:成功,CX=文件属性;
              CF=1:失败,AX=错误码。

44H号功能——设备文件I/O控制。
    入口参数:AH=44H ;功能号
              BX=文件代码;
              AL=0为取状态;
              AL=1为置状态,DX=状态信息;
              AL=2为读数据;
              AL=3为写数据;
              AL=6为取输入状态;
              AL=7为取输出状态。
        返回:DX=设备信息。

45H号功能——复制文件。
    入口参数:AH=45H ;功能号
              BX=文件代号1(3CH、3DH功能返回的文件代号)
        返回:CF=0:成功,AX=文件代码2;
              CF=1:失败,AX=错误码。

46H号功能——人工复制文件代号。
    入口参数:AH=46H ;功能号
              BX=文件代号1
              CX=文件代号2
        返回:CF=1:失败,AX=错误码。

47H号功能——取当前目录路径名。
    入口参数:AH=47H ;功能号
              DL=驱动器号(0=缺省驱动器,1=A,2=B,...)
              DS:SI=接收缓冲区地址
        返回:CF=1:失败,AX=错误码。
              CF=0:成功,ASCIIZ串存入接收缓冲区。

48H号功能——分配内存空间。
    入口参数:AH=48H ;功能号
              BX=申请内存容量
        返回:CF=0:成功,AX=分配的内存首地址;
              CF=1:失败,AX=错误码,BX=最大可用空间。

49H号功能——释放内存空间。
    入口参数:AH=49H ;功能号
              ES=内存起始段址
        返回:CF=1:失败,AX=错误码。
              CF=0:成功。

4AH号功能——调整已分配的内存空间。
    入口参数:AH=4AH ;功能号
              ES=原内存起始段址
              BX=再申请的容量
        返回:CF=0:成功,AX=分配的内存首地址;
              CF=1:失败,AX=错误码,BX=最大可用空间。

4BH号功能——装载/执行程序。
    入口参数:AH=4BH ;功能号
              DS:DX=程序名ASCIIZ串地址
              ES:BX=参数区地址
              AL=0:装入并运行
              AL=3:装入不运行
        返回:CF=0:成功;
              CF=1:失败,AX=错误码。

4CH号功能——带返回码结束程序。
    入口参数:AH=4CH ;功能号
              AL=返回码

4DH号功能——取子进程的返回码。
    入口参数:AH=4DH ;功能号
        返回:AX=返回码。

4EH号功能——查找第一个匹配文件。
    入口参数:AH=4EH ;功能号
              DS:DX=文件名ASCIIZ串地址
              CX=文件属性(CX=0:普通文件)
        返回:CF=1:失败,AX=错误码(2、18)。

4FH号功能——查找下一个匹配文件。
    入口参数:AH=4FH ;功能号
              DS:DX=文件名ASCIIZ串地址
        返回:CF=1:失败,AX=错误码(18)。

54H号功能——取盘的自动读写标志。
    入口参数:AH=54H ;功能号
        返回:AL=当前标志值。

56H号功能——修改文件名。
    入口参数:AH=56H ;功能号
              DS:DX=原文件名ASCIIZ串地址
              ES:DI=新文件名ASCIIZ串地址
        返回:CF=1:失败,AX=错误码(3、5、17)。
        注意:如果新文件名已经存在,则不会删除。

57H号功能——置/取文件日期时间。
    入口参数:AH=57H ;功能号
              BX=文件代号;
              AL=0:取;
              AL=1:置,DXCX=日期时间值。
        返回:CF=1:失败,AX=错误码;
              CF=0:成功,DXCX=日期时间值。

58H号功能——置/取分配策略码。
    入口参数:AH=58H ;功能号
              AL=0:取;
              AL=1:置,BX=策略码。
        返回:CF=1:失败,AX=错误码;
              CF=0:成功,AX=策略码。

59H号功能——取扩充错误码。
    入口参数:AH=59H ;功能号
        返回:AX=扩充错误码;
              BH=错误类型;
              BL=建议的操作;
              CH=错误场所。

5AH号功能——建立临时文件。
    入口参数:AH=5AH ;功能号
              DS:DX=文件名ASCIIZ串地址
              CX=文件属性(CX=0:普通文件)
        返回:CF=1:失败,AX=错误码;
              CF=0:成功,AX=文件代号。

5BH号功能——建立新文件。
    入口参数:AH=5BH ;功能号
              DS:DX=文件名ASCIIZ串地址
              CX=文件属性(CX=0:普通文件)
        返回:CF=1:失败,AX=错误码;
              CF=0:成功,AX=文件代号。

5CH号功能——控制文件存取。
    入口参数:AH=5CH ;功能号
              BX=文件代号
              CXDX=文件位移量
              SIDI=文件长度
              AL=0:封锁
              AL=1:开启
        返回:CF=1:失败,AX=错误码;
              CF=0:成功。

62H号功能——取程序段前缀地址。
    入口参数:AH=62H ;功能号
        返回:BX=PSP段址(偏址=0000H)

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有