📄 file.c
字号:
#include "file.h"
/******************打开文件**********************
传入参数:FileName,以0结整的文件名
Mode,打开方式,0,只读,1,只写,2,可读可写
输出成功:文件句柄,失败:0***************************/
int OpenFile(char * FileName,int Mode){
int retvalue;
_asm{
pusha
mov ax,Mode
mov dx,FileName
mov ah,3dh
int 21h
mov retvalue,ax
popa
jnc OpenOK
mov retvalue,0/*失败,返回0*/
OpenOK:
}
return retvalue;
}
/*******************关闭文件**********************
传入参数:FileHandle:文件句柄
出口:成功返回1,失败返回0
**************************************************/
int CloseFile(int FileHandle){
int retvalue;
_asm{
pusha
mov bx,FileHandle
mov ah,3eh
int 21h
popa
mov retvalue,1
jnc OK
mov retvalue,0
OK:
}
return retvalue;
}
/*********************移动文件指针******************
传入参数:FileHandle:文件句柄,Off:相对偏移,SeekSet:方式
其中: al=0表示从文件头移动,
al=1表示从当前位置移动
al=2表示从文件尾部移动
返回结果:1,成功,0,失败
***************************************************/
int FileSeek(int FileHandle,long Off,int SeekSet){
int retvalue;
_asm{
pusha
mov ax,SeekSet
mov ah,42h
mov bx,FileHandle
mov dx,word ptr Off/*低16位偏移送dx*/
mov cx,word ptr [Off+2]/*偏移高16位送cx*/
int 21h
popa
mov retvalue,1
jnc OK
mov retvalue,0
OK:
}
return retvalue;
}
void FileSize(int FileHandle,long *size){
_asm{
pusha
mov ah,42h
mov al,02h
mov bx,FileHandle
xor cx,cx
xor dx,dx
int 21h
mov bx,size
mov word ptr [bx],ax
mov word ptr [bx+2],dx
popa
}
}
int ReadFile(int FileHandle,void *Buf,int Nums){
int retvalue;
_asm{
pusha
push ds
mov ax,ss
mov ds,ax
mov bx,FileHandle
mov dx,Buf
mov cx,Nums
mov ah,3fh
int 21h
pop ds
popa
mov retvalue,1
jnc OK
mov retvalue,0
OK:
}
return retvalue;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -