打开文件

;功能打开驱动器根目录下文件
;注意:必须被打开文件和此程序在同一个根目录下
data   segment
       assume  ds:data               ;定义数据段
my_fcb label   byte 
drive          db 0                  ;驱动器号,0:当前 1:A 2:B
file_name      db '1       '         ;文件名
ext_name       db 'txt'              ;扩展名
cur_block      dw ?                  ;当前记录块
rec_size       dw ?                  ;记录长度
file_size      dw 2 dup(?)           ;文件长度 有系统填入
crea_date      dw ?                  ;建立或修改后的日期,由系统填入
postion        db 10 dup(?)          ;保留空间,由系统填入
cur_rec        db ?                  ;当前记录号
rel_rec        dw 2 dup(?)           ;相对记录号
errmsg         db 'error',0dh,0ah,24h
data  ends

code   segment
       assume  cs:code
main   proc    far
       mov     ax,data               ;初始化DS指向数据段
       mov     ds,ax    
       mov     dx,offset my_fcb      ;DX寄存器指向未打开的FCB
       mov     ah,0fh                ;选择DOS API 的0FH功能
       int     21h                   ;打开文件
       or      al,al                 ;al寄存器返回值0了吗
       jnz     err_exit              ;没有返回值则转err_exit结束
       mov     ah,4ch               
       int     21h                   ;关闭程序
err_exit:
       mov     ah,9                   ;选择DOS API 的09功能
       mov     dx,offset errmsg       ;输出错误信息
       int     21h
       mov     ah,4ch                ;关闭程序
       int     21h
main   endp
code   ends
       end     main
    

你可能感兴趣的:(打开文件)