Board logo

标题: x86中断完全版(6) [打印本页]

作者: 苹果也疯狂    时间: 2015-6-30 21:44     标题: x86中断完全版(6)

-------------------------------------------------------------------------------------------------

5、文件操作功能(FCB)(File Operation Function)
0FH - 打开文件 16H -创建文件
10H - 关闭文件 17H -文件换名
11H、12H - 查找第一个或下一个文件 23H -读取文件的大小
13H - 删除文件 29H -分析文件名

(1)、功能0FH

功能描述: 打开文件,并使之为顺序读/写作好准备
入口参数: AH=0FH
DSX=文件控制块的地址
出口参数: AL=00H -- 打开成功,否则,AL=FFH(如文件找不到)
在MS-DOS操作系统中,文件控制块的字段如下表所示。 字段名 偏移量 字段含义
驱动器字 00H 1 for drive A, 2 for drive B,...
当前块字段 0CH 00H
记录大小字段 0EH 0080H
文件长度字段 10H 文件字节数
日期字段 14H 日期
时间字段 16H 时间


(2)、功能10H

功能描述: 关闭文件
入口参数: AH=10H
DSX=文件控制块的地址
出口参数: AL=00H -- 关闭成功,否则,AL=FFH

(3)、功能11H和12H

功能描述: 查找第一个或下一个相匹配的文件
入口参数: AH=11H -- 第一个相匹配的文件
  =12H -- 下一个相匹配的文件
DSX=文件控制块的地址
出口参数: AL=00H -- 查找到,否则,AL=FFH


(6)、功能5CH

功能描述: 文件区域加锁或解锁
入口参数: AH=5CH
AL=00H -- 区域加锁  01H -- 区域解锁
BX=文件句柄
CXX=区域偏移量
SII=区域长度
DSX=路径名的地址
出口参数: CF=0 -- 操作成功,否则,AX=错误号(01H、06H、21H或24H),其含义见错误代码表

(7)、功能68H

功能描述: 提交文件缓冲区数据
入口参数: AH=68H
BX=文件句柄
出口参数: CF=0 -- 操作成功,否则,AX=错误号,其含义见错误代码表

-------------------------------------------------------------------------------------------------

7、记录操作功能(FCB)(Record Function)
14H -顺序读 24H -设置相对记录数
15H -顺序写 27H -随机读块
21H -随机读 28H -随机写块
22H -随机写

(1)、功能14H

功能描述: 从文件中读出下一个顺序块,并相应增加文件的指针
入口参数: AH=14H
DSX=先前打开文件控制块的地址
出口参数: AL=00H -- 读取成功  01H -- 文件尾
  02H -- 段缠绕   03H -- 部分记录在文件尾

(2)、功能15H

功能描述: 向文件写入下一个顺序数据块,并相应增加文件的指针
入口参数: AH=15H
DSX=先前打开文件控制块的地址
出口参数: AL=00H -- 写入成功  01H -- 磁盘满  02H -- 段缠绕

(3)、功能21H

功能描述: 从文件中读出当前选定的记录
入口参数: AH=21H
DSX=先前打开文件控制块的地址
出口参数: AL=00H -- 读取成功   01H -- 文件尾
  02H -- 取消读操作  03H -- 部分记录在文件尾

(4)、功能22H

功能描述: 把内存中的数据写入在文件中当前选定的记录
入口参数: AH=22H
DSX=先前打开文件控制块的地址
出口参数: AL=00H-写入成功  01H-磁盘满  02H-取消写操作

(5)、功能24H

功能描述: 设置FCB中相对记录数作为被打开FCB中的记录数
入口参数: AH=24H
DS:DX=先前打开文件控制块的地址
出口参数: AL的值被破坏,其它寄存器不受影响,FCB中偏移量21H单元被修改

(6)、功能27H

功能描述: 从文件中读出若干个记录到内存中
入口参数: AH=27H
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 读取成功   01H -- 文件尾
  02H -- 取消读操作  03H -- 部分记录在文件尾
CX=实际读出的记录数

(7)、功能28H

功能描述: 从内存向文件中写入若干个记录
入口参数: AH=28H
CX=要写入的记录数
DS:DX=先前打开文件控制块的地址
出口参数: AL=00H -- 写入成功  01H -- 磁盘满  02H -- 段缠绕
CX=实际写入的记录数


8、内存分配功能(Memory-Allocation Function)
48H - 分配内存块
49H - 释放内存块
4AH - 重定义内存块的大小
58H - 读取/设置内存分配策略

(1)、功能48H

功能描述: 分配一块内存单元,并返回该块内存单元的首地址
入口参数: AH=48H
BX=需要申请的内存单元字节数
出口参数: CF=0 -- 分配成功,AX=存储单元的首地址,否则,AX=错误号(07H或08H),其含义见错误代码表,BX=还可用的最大块数

(2)、功能49H

功能描述: 释放内存单元块以便为其它程序使用
入口参数: AH=49H
ES=被申请块的段地址
出口参数: CF=0 -- 释放成功,否则,AX=错误号(07H或09H),其含义见错误代码表




欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) Powered by Discuz! 7.0.0