📄 int21.txt
字号:
1 DOS功能调用( INT 21 )一览表
DOS功能调用,功能号在AH中,并设好其余的入口参数,向DOS发出INT21H命令,最后获得出口参数。
调用号
功能
入口参数
出口参数
00H 程序终止
CS=PSP段地址
01H 键盘输入字符 AL=输入的字符
02H 显示输出 DL=显示的字符
03H 串行设备输入 AL=输入的字符
04H 串行设备输出 DL=输出的字符
05H 打印输出 DL=输出的字符
06H 直接控制台I/O DL=0FFH(输入请求)
DL=字符(输出请求) AL=输入的字符
07H
直接控制台I/O (不显示输入)
AL=输入的字符
08H 键盘输入字符(无回显) AL=输入的字符
09H 显示字符串 DS:DX=缓冲区首址
0AH 输入字符串 DS:DX=缓冲区首址
0BH 检查标准输入状态 AL=00无按键 AL=0FFH有按键
0CH 清除输入缓冲区并执行指定的标准输入功能 AL=功能号 (01/06/07/08/0AH)
DS:DX=缓冲区(0AH功能) AL=输入的数据 (功能01/06/07/08)
0DH 初始化磁盘状态
0EH 选择缺省的驱动器 DL=驱动器号(0=A,1=B..) AL=逻辑驱动器数
0FH 打开文件 DS:DX=未打开的FCB首址 AL=00成功,0FFH失败
10H 关闭文件 DS:DX=打开的FCB首址 AL=00成功,0FFH失败
11H 查找第一匹配目录 DS:DX=未打开的FCB首址 AL=00成功,0FFH失败
12H 查找下一匹配目录 DS:DX=未打开的FCB首址 AL=00成功,0FFH失败
13H 删除文件 DS:DX=未打开的FCB首址 AL=00成功,0FFH失败
14H 顺序读 DS:DX=打开的FCB首址 AL=00成功,01文件结束 02缓冲区太小 03缓冲区不满
15H 顺序写 DS:DX=打开的FCB首址 AL=00成功,01盘满 02缓冲区太小
16H 创建文件 DS:DX=未打开的FCB首址 AL=00成功 0FFH目录区满
17H 文件换名
DS:DX=被修改的FCB首址
AL=00成功,0FFH未找
到目录项或文件重名
*18H
保留未用
19H
取缺省驱动器号
AL=驱动器号(0=A,1=B..)
1AH
设置磁盘缓冲区DTA
DS:DX=磁盘缓冲区首址
*1BH
取缺省驱动器的磁盘格
式信息
AL=每簇的扇区数
CX=每扇区的字节数
DX=数据区总簇数-1
DS:BX=介质描述字节
*1CH
取指定驱动器的磁盘格
式信息
DL=驱动器号(0=缺省,
1=A..)
AL=每簇的扇区数
CX=每扇区的字节数
DX=数据区总簇数-1
DS:BX=介质描述字节
*1DH
保留未用
*1EH
保留未用
*1FH
取缺省驱动器的DPB
DS:BX=DPB首址
*20H
保留未用
21H
随机读一个记录
DS:DX=打开的FCB首址
AL=00成功,01文件结束
02缓冲区太小
03缓冲区不满
22H
随机写一个记录
DS:DX=打开的FCB首址
AL=00成功,01盘满
02缓冲区太小
23H
取文件大小
DS:DX=未打开的FCB首址
AL=00成功,0FFH失败
24H
设置随机记录号
DS:DX=打开的FCB首址
25H
设置中断向量
AL=中断号
DS:DX=中断程序入口
*26H
创建新的PSP
DS:DX=新的PSP段地址
27H
随机读若干记录
DS:DX=打开的FCB首址
CX=要读入的记录数
AL=00成功,01文件结束
AL=02缓冲区太小
AL=03缓冲区不满
CX=读入的块数
28H
随机写若干记录
DS:DX=打开的FCB首址
CX=要写入的记录数
AL=00成功,01盘满
AL=02缓冲区太小
AL=03缓冲区不满
CX=已写的块数
29H
分析文件名
AL=分析控制标记
DS:SI=要分析的字符串
ES:DI=未打开的FCB首址
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -