汇编中INT 21的功能
(2014-06-05 17:40:03)
标签:
it |
分类: 汇编笔记 |
INT
编号
0
1
2 字符输出 DL=8位数据
3
辅助设备输入
4 辅助设备输出 DL=8位数据
5 打印输出 DL=8位数据
6 直接控制台I/O DL=0FFH(输入请求) DL=0-OFEH(输出请求)
AL=8位数据
7
无回显过滤的字符输入
8
无回显的字符的输入
9 显示字符串 DS:DX=字符串
OAH 缓冲输入 DS:DX=缓冲区段:位移
OBH
取输入状态
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
取缺省盘驱动器
1AH 设置DTA DS:DX=DTA
1BH
取缺省驱动器的分配信息
DX=文件区所占簇数
DS:BX=介质描述字节
1CH 取指定驱动器的分配信息 DL=驱动器码(0=缺省…) 同上
1DH 保留未用
1EH 保留未用
1FH
取缺省驱动器的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
取系统日期
2BH 置系统日期 CX=年,DH=月,DL=日 AL=0:成功,-1:失败
2CH
取系统时间
2DH 置系统时间 CX=时和分,DX=秒,百分秒 AL=0:成功,-1:失败
2EH 置确认标志 AL=0:关闭,1:打开
2FH
取DTA
30H
取DOS版本号
31H 结束并驻留 AL=返回码,DX=内存大小
32H 取指定驱动器的DPB DL=驱动器码(0=缺省…) DS:BX=DPB
33H 取或置Ctrl-Break标志 AL=0(取标志) AL=1(置标志),DL=标志
DL=标志状态(功能0)(0:关,1:开)
34H
取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
失败: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
取返回码
4EH 查找第一个匹配项 CX=属性,DS:DX=文件说明 注1
4FH
查找下一个匹配项
50H 设置PSP段地址 BX=PSP段地址
51H
取PSP段地址
52H
取DOS系统数据块
53H 为块设备建立DPB DS:SI=BPB,ES:BP=DPB
54H
取确认标志
55H 创建PSP DX=PSP
56H 重命名文件 DS:DX=旧名,ES:DI=新名 注1
57H 取或置文件日期和时间 AL=0,BX=文件号(取) AL=1,BX=文件号,
CX=时间,DX=日期(置)
成功:CF=0,CX=时间
失败:CF=1,AX=错误码
58H
取/置分配策略码
AL=0取码
BX=策略码
成功:AX=策略码失败:AX=错误码
59H
取扩充错误码
BL=建议的操作
CH=错误场所
5AH 建立临时文件 CX=文件属性 DS:DX=ASCⅡZ串地址
成功:AX=文件代号失败:AX=错误码
5BH 建立新文件 CX=文件属性 DS:DX=ASCⅡZ串地址
成功:AX=文件代号失败:AX=错误码
5CH 控制文件存取
AL=00封锁
BX=文件代号
CX:DX=文件位移
SI:DI=文件长度
失败:AX=错误码
62H
取程序段前缀地址
注1:出口参数为:成功时,CF=0;失败时,CF=1,AX=错误码 注2:出口参数为:成功时,CF=0,AX=文件号;失败时,CF=1,AX=错误码