特色客房设计:int 21H DOS功能调用

来源:百度文库 编辑:中财网 时间:2024/04/26 09:28:55

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

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=错误码