中断命令格式:Int 类型码

类型码n=05H~1FH时,调用BIOS的中断处理程序;类型码n=20H~3FH时,调用DOS的中断处理程序

 

Dos软中断功能及参数

中断号

功能

入口参数

出口参数

INT  20h

程序正常退出

 

 

INT  21h

系统功能调用

详见下面INT 21H dos 功能调用

INT  22h

结束退出

 

 

INT  23h

Ctrl+break 中断退出

 

 

INT  24h

出错退出

 

 

INT  25h

驻留退出

 

 

INT  26h

读盘

CX=读入扇区,DX为起始逻辑扇区,DS:BX是存放读出数据的缓冲区地址,AL=盘号

CF=1出错

INT  27h

写盘

CX=写入扇区,DX为起始逻辑扇区,DS:BX是存放读出数据的缓冲区地址,AL=盘号

CF=1出错

 

 

汇编--int 21H DOS功能调用

编号

功能

入口参数

出口参数

0

程序终止

CS=PSP段地址

 

1

带回显的字符输入

 

AL=8位数据

2

字符输出

DL=8位数据

 

3

辅助设备输入

 

AL=8位数据

4

辅助设备输出

DL=8位数据

 

5

打印输出

DL=8位数据

 

6

直接控制台I/O

DL=0FFH(输入请求) DL=0-OFEH(输出请求)

AL=8位数据

7

无回显过滤的字符输入

 

AL=8位数据

8

无回显的字符的输入

 

AL=8位数据

9

显示字符串

DS:DX=字符串

 

OAH

缓冲输入

DS:DX=缓冲区段:位移

 

OBH

取输入状态

 

AL=0(无字符) AL=1(有字符)

OCH

重置输入缓冲区后输入

AL=功能号(1/6/7/8/OAH) DS:DX=缓冲区(功能OAH)

AL=8位数据 (功能1/6/7/8)

ODH

重启动磁盘

 

 

OEH

置缺省盘驱动器

DL=驱动器码(0=A,1=B)

AL=总的驱动器数

OFH

打开文件

DS:DX=FCB

AL=0:成功,-1:失败

10H

关闭文件

DS:DX=FCB

AL=0:成功,-1:失败

11H

查找第一匹配目录

DS:DX=FCB

AL=0:成功,-1:失败

12H

查找下一匹配目录

DS:DX=FCB

AL=0:成功,-1:失败

13H

删除文件

DS:DX=FCB

AL=0:成功,-1:失败

14H

顺序读

DS:DX=FCB

AL=返回码

15H

顺序写

DS:DX=FCB

AL=返回码

16H

创建文件

DS:DX=FCB

AL=0:成功,-1:失败

17H

重命名文件

DS:DX=FCB

AL=0:成功,-1:失败

18H

保留未用

 

 

19H

取缺省盘驱动器

 

AL=驱动器码(0=A)

1AH

设置DTA

DS:DX=DTA

 

1BH

取缺省驱动器的分配信息

 

AL=每簇的扇区数 CX=每扇区的字节数
DX=文件区所占簇数
DS:BX=介质描述字节

1CH

取指定驱动器的分配信息

DL=驱动器码(0=缺省…)

同上

1DH

保留未用

 

 

1EH

保留未用

 

 

1FH

取缺省驱动器的DPB

 

DS:BX=DPB

20F

保留未用

 

 

21F

随机读一个记录

DS:DX=FCB

AL=返回码

22F

随机写一个记录

DS:DX=FCB

AL=返回码

23F

取文件大小

DS:DX=未打开的FCB

AL=0:成功,-1:失败

24F

设置随机记录号

DS:DX=FCB

 

25F

置中断向量

AL=中断号,DS:DX=入口

 

26F

创建程序段前缀

DX=新程序段的段地址

 

27H

随机读若干记录

CX=记录数 DS:DX=FCB

AL=返回码 CX=实际记录数

28H

随机写若干记录

 

 

29H

分析文件名

AL=控制分析标志 DS:SI=正文串段:位移
ES:DI=FCB段:位移

AL=分析结果 DS:SI=分析后的头一字符段的段:位移

2AH

取系统日期

 

CX=年,AL=星期 DH=月,DL=日

2BH

置系统日期

CX=年,DH=月,DL=日

AL=0:成功,-1:失败

2CH

取系统时间

 

CH=时,CL=分 DH=秒,DL=百分秒

2DH

置系统时间

CX=时和分,DX=秒,百分秒

AL=0:成功,-1:失败

2EH

置确认标志

AL=0:关闭,1:打开

 

2FH

取DTA

 

AL,AH=主,次版本

30H

取DOS版本号

 

AL=0:成功,-1失败

31H

结束并驻留

AL=返回码,DX=内存大小

 

32H

取指定驱动器的DPB

DL=驱动器码(0=缺省…)

DS:BX=DPB

33H

取或置Ctrl-Break标志

AL=0(取标志) AL=1(置标志),DL=标志

DL=标志状态(功能0) (0:关,1:开)

34H

取DOS中断标志

 

ES:BX=DOS中断标志

35H

取中断向量

AL=中断号

ES:BX=中断程序入口

36H

取磁盘的自由空间

DL=驱动器码(0=缺省…)

驱动器无效:AX=-1 有效:AX=每簇扇区数
BX=自由簇数
CX=每扇区字节数
DX=文件区所占簇数

37H

取或置命令行开关符, 取或置名字检查开关

AL=0(取开关符) AL=1(置开关符)
DL=(开关符)
AL=2(取检查开关)
AL=3(置检查开关)
DL=开关值

DL=开关符(功能0)  
DL=检查开关(功能2)

38H

取国家信息

AL=0,DS:DX=缓冲区

 

39H

创建子目录

DS:DX=路径说明串

注1

3AH

删除子目录

DS:DX=路径说明串

注1

3BH

设置当前目录

DS:DX=路径说明串

注1

3CH

创建文件

DS:DX=文件说明,CX=属性

注2

3DH

打开文件

DS:DX=文件说明,AL=模式

注2

3EH

关闭文件

BX=文件号

注1

3FH

读文件或设备

BX=文件号 CX=字符数
CX:DX=缓冲区

成功:CF=0,DX:AX=新指针位置 失败:CF=1,AX=错误码

40H

写文件或设备

 

 

41H

删除文件

DS:DX=文件说明串

注1

42H

移文件指针

AL=方式 BX=文件号
CX:DX=位移量

成功:CF=0,DX:AX=新指针位置 失败:CF=1,AX=错误码

43H

取或置文件属性

AL=0(取属性) AL=1,CX=新属性(置属性)
DS:DX=文件说明

CX=属性(功能0)

44H

设备驱动控制

AL=0(取设备信息) AL=1(置设备信息)
AL=2(读设备控制通道)
AL=3(写设备控制通道)
AL=4(同功能2)
AL=5(同功能3)
AL=6(取输入状态)
AL=7(取输出状态)
BX=文件号(功能0-3,6-7)
BL=驱动器码(功能4-5)
CX=字节数(功能2-5)
DS:DX=缓冲区(功能2-5)

失败:CF=1,AX=错误码 成功:
DX=设备信息(功能0)
AL=状态(功能6/7)
0:未准备,1:准备
AX=传送字节数(功能2-5)

45H

复制文件号

BX=文件号

成功:CF=0 AX=新文件号
失败:CF=1,AX=错误码

46H

强迫复制文件号

BX=第1文件号 CX=第2文件号

注1

47H

取当前目录

DL=驱动器码 DS:SI=缓冲区

注1

48H

分配内存

BX=所需内存的节数

成功:CF=0 AX=分配块的段
失败:CF=1,AX=错误码
BX=最大可用块大小

49H

释放内存

ES=释放块的段

注1

4AH

修改内存分配

ES=修改块的段 BX=新长度(以节计)

成功:CF=0 失败:CF=1,AX=错误码
BX=最大可用块大小

4BH

加载程序 执行程序

AL=0(加载并执行) AL=1(获得执行信息)
AL=3(加载覆盖)
DS:DX=程序说明
ES:BX=参数块

注1

4CH

带返回码结束

AL=返回码

 

4DH

取返回码

 

AH=类型码,AL=返回码

4EH

查找第一个匹配项

CX=属性,DS:DX=文件说明

注1

4FH

查找下一个匹配项

 

注1

50H

设置PSP段地址

BX=PSP段地址

 

51H

取PSP段地址

 

BX=PSP段地址

52H

取DOS系统数据块

 

ES:BX=DOS系统数据块

53H

为块设备建立DPB

DS:SI=BPB,ES:BP=DPB

 

54H

取确认标志

 

AL=标志值(0:关,1:开)

55H

创建PSP

DX=PSP

 

56H

重命名文件

DS:DX=旧名,ES:DI=新名

注1

57H

取或置文件日期和时间

AL=0,BX=文件号(取) AL=1,BX=文件号,
CX=时间,DX=日期(置)

成功:CF=0,CX=时间 DX=日期(取)
失败:CF=1,AX=错误码

58H

取/置分配策略码

AL=0取码 =1置码(BX)
BX=策略码

成功:AX=策略码 失败:AX=错误码

59H

取扩充错误码

 

AX=扩充错误码 BH=错误类型
BL=建议的操作
CH=错误场所

5AH

建立临时文件

CX=文件属性 DS:DX=ASCⅡZ串地址

成功:AX=文件代号 失败:AX=错误码

5BH

建立新文件

CX=文件属性 DS:DX=ASCⅡZ串地址

成功:AX=文件代号 失败:AX=错误码

5CH

控制文件存取

AL=00封锁 =01开启
BX=文件代号
CX:DX=文件位移
SI:DI=文件长度

失败:AX=错误码

62H

取程序段前缀地址

 

BX=PSP地址

注1:出口参数为:成功时,CF=0;失败时,CF=1,AX=错误码 注2:出口参数为:成功时,CF=0,AX=文件号;失败时,CF=1,AX=错误码