DOS 功能调用(INT 21)-------------------------------AH = 0-2E 适用 DOS 1.0 以上版本AH = 2F-57 适用 DOS 2.0 以上版本AH = 58-62 适用 DOS 3.0 以上版本-------------------------------
AH = 00功能:程序终止(同 INT 20h)调用参数: CS = 程序段前缀
AH = 01功能:键盘输入并回显返回参数: AL = 输入字符
AH = 02功能:显示输出调用参数: DL = 输出字符
AH = 03功能:异步通讯输入返回参数: AL = 输入数据
AH = 04功能:异步通讯输出调用参数: DL = 输出数据
AH = 05功能:打印机输出调用参数: DL = 输出字符
AH = 06功能:直接控制台 I/O调用参数: DL = FF(输入) 字符(输出)返回参数: AL = 输入字符
AH = 07功能:键盘输入(无回显)返回参数: AL = 输入字符
AH = 08功能:键盘输入(无回显),检测 Ctrl-Break返回参数: AL = 输入字符 AH = 09功能:显示字符串调用参数: DS:DX = 串地址 ‘$' 结束字符串
AH = 0A功能:键盘输入到缓冲区调用参数: DS:DX = 缓冲区首地址 (DS:DX) = 缓冲区最大字符数返回参数: (DS:DX) + 1 = 实际输入的字符数
AH = 0B功能:检验键盘状态返回参数: AL = 00:有输入 FF:无输入
AH = 0C功能:清除输入缓冲区并请求指定的输入功能调用参数: AL = 输入功能号(1,6,7,8,A)
AH = 0D功能:磁盘复位返回参数: 清除文件缓冲区
AH = 0E功能:指定当前缺省的磁盘驱动器调用参数: DL = 驱动器号(0=A,1=B,...)返回参数: AL = 驱动器数
AH = 0F功能:打开文件调用参数: DS:DX = FCB首地址返回参数: AL = 00:文件找到 FF:文件未找到
AH = 10功能:关闭文件调用参数: DS:DX = FCB首地址返回参数: AL = 00:目录修改成功 FF:目录中未找到文件
AH = 11功能:查找第一个目录项调用参数: DS:DX = FCB首地址返回参数: AL = 00:找到 FF: 未找到
AH = 12功能:查找下一个目录项调用参数: DS:DX = FCB首地址(文件名带 * 或 ?)返回参数: AL = 00:找到 FF:未找到
AH = 13功能:删除文件调用参数: DS:DX = FCB首地址返回参数: AL = 00:删除成功 FF:未找到
AH = 14功能:顺序读调用参数: DS:DX = FCB首地址返回参数: AL = 00:读成功 01:文件结束,记录中无数据 02:DTA 空间不够 03:文件结束,记录不完整
AH = 15功能:顺序写调用参数: DS:DX = FCB首地址返回参数: AL = 00:写成功 01:盘满 02:DTA 空间不够
AH = 16功能:建文件调用参数: DS:DX = FCB首地址返回参数: AL = 00:建立成功 FF:无磁盘空间 AH = 17功能:文件改名调用参数: DS:DX = FCB首地址 (DS:DX + 1) = 旧文件名 (DS:DX + 17) = 新文件名返回参数: AL = 00:成功 FF:未成功
AH = 19功能:取当前缺省的磁盘驱动器返回参数: AL = 缺省的驱动器号(0=A,1=B,2=C,...)
AH = 1A功能:置 DTA 地址调用参数: DS:DX = DTA 地址
AH = 1B功能:取缺省驱动器 FAT 信息返回参数: AL = 每簇的扇区数 DS:BX = FAT 标识字节 CX = 物理扇区的大小 DX = 缺省驱动器的簇数
AH = 1C功能:取任一驱动器 FAT 信息调用参数: DL = 驱动器号返回参数: 同上!
AH = 21功能:随机读调用参数: DS:DX = FCB 首地址返回参数: AL = 00:写成功 01:文件结束 02:缓冲区溢出 03:缓冲区不满
AH = 22功能:随机写调用参数: DS:DX = FCB 首地址返回参数: AL = 00:写成功 01:盘满 02:缓冲区溢出
AH = 23功能:测定文件大小调用参数: DS:DX = FCB 首地址返回参数: AL = 00:成功,文件长度填入 FCB FF:未找到
AH = 24功能:设置随机记录号调用参数: DS:DX = FCB 首地址
AH = 25功能:设置中断向量调用参数: DS:DX = 中断向量 AL = 中断类型号
AH = 26功能:建立程序段前缀调用参数: DX = 新的程序段的段前缀
AH = 27功能:随机分块读调用参数: DS:DX = FCB 首地址 CX = 记录数返回参数: AL = 00:读成功 01:文件结束 02:缓冲区太小,传输结束 03:缓冲区不满 CX = 读取的记录数
AH = 28功能:随机分块写调用参数: DS:DX = FCB 首地址 CX = 记录数返回参数: AL = 00:写成功 01:盘满 02:缓冲区溢出
AH = 29功能:分析文件名调用参数: ES:DI = FCB 首地址 DS:SI = ASCIIZ 串 AL = 控制分析标志返回参数: AL = 00:标准文件 01:多义文件 02:非法盘符
AH = 2A功能:取日期返回参数: CX = 年 DH:DL = 月:日(二进制)
AH = 2B功能:设置日期调用参数: CX:DH:DL = 年:月:日返回参数: AL = 00:成功 FF:无效
AH = 2C功能:取时间返回参数: CH:CL = 时:分 DH:DL = 秒:1/100秒
AH = 2D功能:设置时间调用参数: CH:CL = 时:分 DH:DL = 秒:1/100秒返回参数: AL = 00:成功 FF:无效
AH = 2E功能:置磁盘自动读写标志调用参数: AL = 00:关闭标志 01:打开标志
AH = 2F功能:取磁盘缓冲区的首址返回参数: ES:BX = 缓冲区首地址
AH = 30功能:取 DOS 版本号返回参数: AH = 发行号 AL = 版号 AH = 31功能:结束并驻留调用参数: AL = 返回码 DX = 驻留区大小
AH = 33功能:Ctrl-Break 检测调用参数: AL = 00:取状态 01:置状态(DL) DL = 00:关闭检测 01:打开检测返回参数: DL = 00:关闭 Ctrl-Break 检测 01:打开 Ctrl-Break 检测
AH = 35功能:取中断向量调用参数: AL = 中断类型返回参数: ES:BX = 中断向量
AH = 36功能:取空闲磁盘空间调用参数: DL = 驱动器号(0=缺省,1=A,2=B,...)返回参数: 成功:AL = 每簇扇区数 BX = 有效簇数 CX = 每扇区字节数 失败:AX = FFFF
AH = 38功能:置/取国家信息调用参数: DS:DX = 信息区首地址返回参数: BX = 国家码(国际电话前缀码) AX = 错误码
AH = 39功能:建立子目录(MKDIR)调用参数: DS:DX = ASCIIZ 串地址返回参数: AX = 错误码
AH = 3A功能:删除子目录(RMDIR)调用参数: DS:DX = ASCIIZ 串地址返回参数: AX = 错误码
AH = 3B功能:改变当前目录(CHDIR)调用参数: DS:DX = ASCIIZ 串地址返回参数: AX = 错误码
AH = 3C功能:建立文件调用参数: DS:DX = ASCIIZ 串地址 CX = 文件属性返回参数: 成功:AX = 文件代号 失败:AX = 错误码
AH = 3D功能:打开文件调用参数: DS:DX = ASCIIZ 串地址 AL = 0:读 1:写 2:读/写返回参数: 成功:AX = 文件代号 失败:AX = 错误码
AH = 3E功能:关闭文件调用参数: BX = 文件号返回参数: 失败:AX = 错误码
AH = 3F功能:读文件或设备调用参数: DS:DX = 数据缓冲区地址 BX = 文件代号 CX = 读取的字节数返回参数: 读成功:AX = 实际读入的字节数 0:已到文件末尾 读出错:AX = 错误码
AH = 40功能:写文件或设备调用参数: DS:DX = 数据缓冲区地址 BX = 文件代号 CX = 写入的字节数返回参数: 写成功:AX = 实际写入的字节数 写失败:AX = 错误码
AH = 41功能:删除文件调用参数: DS:DX = ASCIIZ 串地址返回参数: 成功:AX = 00 出错:AX = 错误码(2,5)
AH = 42功能:移动文件指针调用参数: BX = 文件代号 CX:DX = 位移量 AL = 移动方式(0,1,2)返回参数: 成功:DX:AX = 新指针位置 出错:AX = 错误码
AH = 43功能:置/取文件属性调用参数: DS:DX = ASCIIZ 串地址 AL = 0:取文件属性 1:置文件属性 CX = 文件属性返回参数: 成功:文件属性 失败:AX = 错误码
AH = 44功能:设备文件 I/O 控制调用参数: BX = 文件代号 AL = 0:取状态 1:置状态 DX 2:读数据 3:写数据 6:取输入状态 7:取输出状态返回参数: DX = 设备信息
AH = 45功能:复制文件代号调用参数: BX = 文件代号 1返回参数: 成功:AX = 文件代号 2 失败:AX = 错误码
AH = 46功能:人工复制文件代号调用参数: BX = 文件代号 1 CX = 文件代号 2返回参数: 失败:AX = 错误码
AH = 47功能:取当前目录路径名调用参数: DL = 驱动器号 DS:SI = ASCIIZ 串地址返回参数: (DS:SI) = ASCIIZ 串地址 失败:AX = 错误码
AH = 48功能:分配内存空间调用参数: BX = 申请内存容量返回参数: 成功:AX = 分配内存首址 失败:BX = 最大可用空间
AH = 49功能:释放内存空间调用参数: ES = 内存起始段地址返回参数: 失败:AX = 错误码
AH = 4A功能:调整已分配的存储块调用参数: ES = 原内存起始地址 BX = 再申请的容量返回参数: 失败:BX = 最大可用空间 AX = 错误码
AH = 4B功能:装配/执行程序调用参数: DS:DX = ASCIIZ 串地址 ES:BX = 参数区首地址 AL = 0:装入执行 3:装入不执行返回参数: 失败:AX = 错误码
AH = 4C功能:带返回码结束调用参数: AL = 返回码
AH = 4D功能:取返回码返回参数: AX = 返回代码
AH = 4E功能:查找第一个匹配文件调用参数: DS:DX = ASCIIZ 串地址 CX = 属性返回参数: AX = 出错代码(01,18)
AH = 4F功能:查找下一个匹配文件调用参数: DS:DX = ASCIIZ 串地址(文件名中带 ? 或 *)返回参数: AX = 出错代码(18)
AH = 54功能:取盘自动读写标志返回参数: AL = 当前标志值 AH = 56功能:文件改名调用参数: DS:DX = ASCIIZ 串(旧) ES:DI = ASCIIZ 串(新)返回参数: AX = 出错码(03,05,17)
AH = 57功能:置/取文件日期和时间调用参数: BX = 文件代号 AL = 0:读取 设置(DX:CX)返回参数: DX:CX = 日期和时间 失败:AX = 错误码
AH = 58功能:取/置分配策略码调用参数: AL = 0:取码 1:置码(BX) BX = 策略码返回参数: 成功:AX = 策略码 失败:AX = 错误码 AH = 59功能:取扩充错误码返回参数: AX = 扩充错误码 BH = 错误类型 BL = 建议的操作 CH = 错误场所
AH = 5A功能:建立临时文件调用参数: CX = 文件属性 DS:DX = ASCIIZ 串地址返回参数: 成功:AX = 文件代号 失败:AX = 错误码
AH = 5B功能:建立新文件调用参数: CX = 文件属性 DS:DX = ASCIZ 串地址返回参数: 成功:AX = 文件代号 失败:AX = 错误码
AH = 5C功能:控制文件存取调用参数: AL = 00:封锁 01:开启 BX = 文件代号 CX:DX = 文件位移 SI:DI = 文件长度
AH = 62功能:取程序段前缀地址返回参数: BX = PSP 地址
新闻热点
疑难解答