• x01.os.5: DOS 功能调用


    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 地址

  • 相关阅读:
    JDK Base64编解码1.7和1.8的坑
    nacos部署注意点
    详解CurrentHashMap之预习篇
    SpringBoot爬坑系列
    开发之缓存与数据库优化
    jreble备注
    Unable to open debugger port (127.0.0.1:55119): java.net.SocketException "Socket closed"
    ConcurrentHashMap源码分析
    为什么要先高16位异或低16位再取模运算
    HashMap(三)之源码分析
  • 原文地址:https://www.cnblogs.com/china_x01/p/3943883.html
Copyright © 2020-2023  润新知