汇编中对文件的操作的功能号!int 21H 3cH 建立文件调用的参数DS:DX=ASCII 串

CX=文件属性。0表示普通文件。返回参数CF=0操作成功,AX=文件代号,CF=1操作出错

如果错误AX将返回错误码!

例如:        ;文件创建函数;
        fcreat proc near
                lea dx,path ;path代表错建立的文件路径,如 path db                                     ;"D:\data.txt $"
                mov cx,0
                mov ah,3ch
                int 21h
                mov handle,ax;handle表是保存的文件号,类型为DW
                jnc fct
                lea dx,fcreatmsg
                call errm
                mov handle,1
        fct:    ret
        fcreat endp

 

3DH 文件的打开,调用的参数DS:DX=ASCII串的偏移地址,AL=存取的代号,返回参数CF=0表示成功,AX=文件号,如果CF=1 ,AX=错误码!

例如:       fopen proc near
                mov dx,offset path
                mov al,02h
                mov ah,3dh
                int 21h
                mov handle,ax
                jnc fope
                lea dx,fopenmsg
                call errm
                mov handle,1
          fope:     ret
        fopen endp

3EH 文件关闭 调用参数BX=文件号,返回参数CF=0操作成功,CF=1错误,AX=错误码

例如:         ;文件关闭函数;
        fclose proc near
                mov bx,handle
                mov ah,3eh
                int 21h
                jnc clf
                lea dx,fclosemsg
                call errm
        clf:    ret
        fclose endp

3FH 文件的读取 调用的参数DS:DX=数据缓冲区偏移量 BX=文件号,CX=读取的字节数。返回的参数 CF=0表示成功,AX=实际读取文件的字节数,CF=1,AX=错误码

例如:        fread proc near
                mov dx,offset buff_file
                mov bx,handle
                mov cx, 5
                mov ah,3fh
                int 21h
                mov word ptr read_number,ax
                jnc readerr
                lea dx,readmsg
                call errm
                mov readlen,0
        readerr:ret
        fread endp

40H 文件的写入 调用的参数DS:DX=数据缓冲区偏移量 BX=文件号,CX=写入的字节数。返回的参数 CF=0表示成功,AX=实际写入文件的字节数,CF=1,AX=错误码

例如:        ;文件写入函数;
        fwrite proc near
                mov dx,offset buff
                mov bx,handle
                mov cx, 5
                mov ah,40h
                int 21h
                ;mov writelen,ax
                jnc err
                lea dx,writemsg
                call errm
                mov writelen,0
        err:    ret
        fwrite    endp

42H 移动文件指针,调用参数 BX=文件号,CX(所需字节的偏移量地址(高位)),DX=位移量(地位),AL=移动的方式(0:表示从文件的头绝对位移,1:表示从当前的位置相对移动,2:从文件尾绝对位移)返回参数CF=0成功,AX=新文件的指针,CF=0,表示错误,AX=错误码!

   ;********************** 错误的标准输出 *************;
        errm proc near
        mov ah,40h
        mov bx,01
        mov cx,60
        int 21h
        mov errcde,01
        ret
        errm endp

;************************************************************;