A file kezelésnek kétféle módja van . Az egyik az FCB-s,a másik a HANDLE-s. Mivel csak nagyon elvetemültek használják az FCB-s módszert, ami mellesleg bonyolult 1000-rel, ezért a HANDLE-s módszert irom le !

A HANDLE-s módszert ugyanúgy kell használni, mint a memóriakérést, tehát interruptokon keresztül. Mit is tudunk egy file-val kezdeni ? Létre tudjuk hozni,meg tudjuk nyitni, tudunk belőle olvasni, bele írni, lezárni. Kezdjük akkor :

File létrehozás
   AH    = 3Ch    CX    = attribútum    DS:DX = file nevére mutat, a név végét 0 jelzi    iNT 21h     Ki: AX = handle, ezzel tudunk a filera hivatkozni,              ha CF=1, akkor hiba van...     CX    Attribútum     ------------------------------------     00h   Normal     01h   csak-olvasható [read-only]     02h   rejtett        [hidden]     04h   rendszer       [system]     08h   archive     10h   könyvtár       [directory]
Ha többet is akarunk, akkor adjuk össze a számokat, pl. egy csak-olvasható, rejtett file attribútuma = 1+2 = 3
File megnyitása
   AH    = 3Dh    AL    = megnyitási mód    DS:DX = file nevére mutat, a név végét 0 jelzi    iNT 21h     Ki: AX = handle vagy ha CF=1, akoor error    AL     megnyitási mód     0     csak olvasásra     1     csak írásra     2     írásra és olvasásra
File lezárása
   AH    = 3Eh    BX    = handle    iNT 21h
Fileból olvasás
   AH    = 3Fh    BX    = handle    CX    = mennyit olvasson    DS:DX = ide olvasson    iNT 21h     Ki: AX = ennyi bájtot olvasott ki, ha CF=1, akkor error
Fileba írás
   AH    = 40h    BX    = handle    CX    = mennyit írjon bele    DS:DX = innen írjon bele    iNT 21h
Ha cx=0, akkor levágja a file hátralevő részét. Pl. ha egy file közepén vagy, és meghívod a 40h-s funkciót cx=0-val, akkor onnantól a file végéig minden elveszik, te meg a file (új:) végén találod magad..
Pozicionálás
   AH    = 42h    BX    = handle    CX:DX = hova mozogjon [32 bites cím]    AL    = mód    iNT 21h      módok : 0 = a file kezdetétől számítva              1 = az aktuális ponttól              2 = a file végétől számolva visszafelé      Ki: DX:AX = új pozíció
Akkor lássunk egy újabb példát a filekezelésre :
----------------------------[FILEUSE.ASM]------------------------ org      100h section  .text start:        push    cs        pop     ds        mov     ax,4a00h        ; Felszabadítjuk a lefoglalt        mov     bx,4096         ; memóriát        int     21h        mov     ah,48h          ; Kérünk 64kb memóriát        mov     bx,4096        int     21h        mov     fs,ax           ; A szegmenscím fs-ben van.        mov     ah,3Dh          ; Megnyitjuk a filet        xor     al,al        mov     dx,filename        int     21h        mov     gs,ax           ; A handle gs-ben van        mov     ah,3Fh          ; Beolvasunk 64kb-t a fileból        mov     bx,gs        mov     cx,65535        push    fs              ; Az fs szegmenscímre, azaz a        pop     ds              ; kért 64kb helyére        xor     dx,dx        int     21h        push    cs              ; Visszaállítjuk ds-t        pop     ds        mov     ax,13h          ; Fellépünk 320x200x256-os        int     10h             ; grafikus módba        push    word 0a000h     ; Innentől kezdődik a                                          ; grafikus képernyő        pop     es              ; A kezdőcímet es-be rakjuk.        xor     di,di           ; di=0        xor     si,si           ; si=0        push    fs              ;        pop     ds              ; ds=fs, mert át fogunk másolni        mov     cx,16000        ; 16000*4=64000 byteot a grafikus        rep     movsd           ; képernyőre        xor     ax,ax           ; Várunk egy gombnyomást        int     16h        mov     ah,3Eh          ; Lezárjuk a filet        mov     bx,gs        int     21h        mov     ah,49h          ; Felszabadítjuk a        mov     bx,fs           ; kért memóriát        mov     es,bx        int     21h        mov     ax,3            ; visszalépünk 80x25-ös módba        int     10h             ;        mov     ax,4c00h        ; kilépünk        int     21h             ; section  .data filename db "zso.pic",0 section .bss ----------------------------[END OF]------------------------
Megjegyzés: a zso.pic egy tömörítetlen kép, mely 320x200x256-os és nincs palettája. Jó ronda, de példának azért jó.