INT 21H 功能调用一览表
INT 21H 功能调用一览表 |
|||
| 编号 | 功能 | 入口参数 | 出口参数 |
|
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=错误码 |
|||
浙公网安备 33010602011771号