ITEEDU

2.1、@Read:从文件或设备读数据

使用语法: @Read  buffer,length [,[handle] [,segment]]
参数说明: <buffer> 存放数据的缓冲区偏移量
<length> 数据字节的长度
<handle> 文件或设备的句柄,缺省值为0(键盘)
<segment> 字符串的段地址,缺省值为DS
返回参数: 若CF=0,则AX=读入的字节数
内容破坏: AX、BX、CX、DX和DS(若段改变了)
参见内容: Int 21h — 3FH,@Write

2.2、@Write:向文件或设备写数据

使用语法: @Write  buffer,length [,[handle] [,segment]]
参数说明: <buffer>  存放数据的缓冲区偏移量
<length> 数据字节的长度
<handle> 文件或设备的句柄,缺省值为1(屏幕)
<segment> 字符串的段地址,缺省值为DS
返回参数: 若CF=0,则AX=输出的字节数
内容破坏: AX、BX、CX、DX和DS(若段改变了)
参见内容: Int 21h — 40H,@Read

2.3、@MakeFile:创建一个文件

使用语法: @MakeFile path [,[attrib] [,[segment] [,kind]]]
参数说明: <path> 文件名的地址
<attrib> 文件的属性,缺省值为0
<segment> 字符串的段地址,缺省值为DS
<kind> 可用"tmp"/"new",若不指定,则创建一个新文件即使文件已存在
"tmp"创建一个唯一文件;
"new"创建一个新文件(在原文件不存在时)
返回参数: 若CF=0,则AX=文件的句柄
内容破坏: AX、CX、DX和DS(若段改变了)
参见内容: Int 21h — 3CH、5AH和5B,@OpenFile,@CloseFile

2.4、@OpenFile:为输入/输出而打开文件

使用语法: @OpenFile path,access [,segment]
参数说明: <path> 文件名的地址
<access> 常量,文件访问代码,缺省值为0(可读/写)
<segment> 字符串的段地址,缺省值为DS
返回参数: 若CF=1,则AX=错误代码
内容破坏: AX、DX和DS(若段改变了)
参见内容: Int 21h — 3DH,@MakeFile

2.5、@CloseFile:关闭文件句柄

修改中断向量的步骤_读取和设置中断向量_中断功能的分类_输入输出和中断_汇编语言程序设计教程_asm_编程语言_itE教
使用语法: @CloseFile handle
参数说明: <handle> 先前打开的文件句柄
返回参数: 若CF=1,则AX=错误代码
内容破坏: AX和BX
参见内容: Int 21h — 3EH,@OpenFile,@MakeFile

2.6、@DelFile:删除一个指定的文件

使用语法: @DelFile path [,segment]
参数说明: <path> 文件名字符串的偏移量
<segment> 路径的段地址,缺省值为DS
返回参数: 若CF=1,则AX=错误代码
内容破坏: AX、DX和DS(若段改变了)
参见内容: Int 21h — 41H

2.7、@MoveFile:文件移动或换名

使用语法: @MoveFile old,new [,[segold] [,segnew]]
参数说明: <old> 被换名的文件名字符串的偏移量
<new> 新文件名字符串的偏移量
<segold> 旧文件名的段地址,缺省值为DS
<segnew> 新文件名的段地址,缺省值为ES
返回参数: 若CF=1,则AX=错误代码
内容破坏: AX、DX、DI,DS和ES(若相应段改变了)
参见内容: Int 21h — 56H

2.8、@GetFirst:读取第一个匹配的文件
@GetNext:读取其它的匹配文件

使用语法: @GetFirst path [,[attribute] [,segment]]
@GetNext
参数说明: <path> 指定文件的偏移量,可含通配符
<attribute> 被搜索的文件属性,缺省值为0
<segment> 路径的段地址,缺省值为DS
返回参数: 若CF=1,则AX=错误代码
内容破坏: AX(二者),对@GetFirst,CX、DX和DS(若段改变了)
参见内容: Int 21h — 4EH和4FH,@SetDTA,@GetDTA

2.9、@GetDTA:读取DTA(Disk Transfer Address)
@SetDTA:设置DTA

使用语法: @SetDTA buffer [,segment]
@GetDTA
参数说明: <buffer> 新DTA缓冲区的偏移量
<segment> 新DTA缓冲区的段地址,缺省值为DS
返回参数: 对@GetDTA,ES:BX=指向DTA的指针
内容破坏: 对@GetDTA,AX、ES和BX
对@SetDTA,AX、DS和DX
参见内容: Int 21h — 2FH和1AH,@GetNext

2.10、@GetFileSize:读取文件大小

使用语法: @GetFileSize handle
参数说明: <handle> 先前打开的文件句柄
返回参数: 若CF=0,则,DX:AX=文件的大小
内容破坏: AX、BX、CX和DX
注意:该宏将把文件指针复位到0,所以,在文件操作过程中,不要使用该宏
参见内容: Int 21h — 42H

2.11、@MovePtrAbs:移动文件指针道一个绝对位置
@MovePtrRel:移动文件指针道一个相对位置

使用语法: @MovePtrAbs handle [,distance]
@MovePtrRel handle [,distance]
参数说明: <handle> 先前打开的文件句柄
<distance> 16位常量,或16/32位变量,缺省值是CX:DX
返回参数: 若CF=0,则,DX:AX=文件指针的位置
内容破坏: AX、BX、CX和DX
参见内容: Int 21h — 42H