; Codul de mai jos va deschide un fisier numit "ana.txt" din directorul curent si va citi un text de maxim 100 de caractere din acel fisier. ; Programul va folosi functia fopen pentru deschiderea fisierului, functia fread pentru citirea din fisier si functia fclose pentru inchiderea fisierului deschis. ; Deoarece in apelul functiei fopen programul foloseste modul de acces "r", daca un fisier cu numele dat nu exista in directorul curent, apelul functiei fopen nu va reusi (eroare). Detalii despre modurile de acces sunt prezentate in sectiunea "Suport teoretic". bits 32 global start ; declare external functions needed by our program extern exit, fopen, fread, fclose import exit msvcrt.dll import fopen msvcrt.dll import fread msvcrt.dll import fclose msvcrt.dll ; our data is declared here (the variables needed by our program) segment data use32 class=data nume_fisier db "ana.txt", 0 ; numele fisierului care va fi deschis mod_acces db "r", 0 ; modul de deschidere a fisierului - ; r - pentru scriere. fisierul trebuie sa existe descriptor_fis dd -1 ; variabila in care vom salva descriptorul fisierului - necesar pentru a putea face referire la fisier len equ 100 ; numarul maxim de elemente citite din fisier. text times len db 0 ; sirul in care se va citi textul din fisier ; our code starts here segment code use32 class=code start: ; apelam fopen pentru a deschide fisierul ; functia va returna in EAX descriptorul fisierului sau 0 in caz de eroare ; eax = fopen(nume_fisier, mod_acces) push dword mod_acces push dword nume_fisier call [fopen] add esp, 4*2 ; eliberam parametrii de pe stiva mov [descriptor_fis], eax ; salvam valoarea returnata de fopen in variabila descriptor_fis ; verificam daca functia fopen a creat cu succes fisierul (daca EAX != 0) cmp eax, 0 je final ; citim textul in fisierul deschis folosind functia fread ; eax = fread(text, 1, len, descriptor_fis) push dword [descriptor_fis] push dword len push dword 1 push dword text call [fread] add esp, 4*4 ; dupa apelul functiei fread EAX contine numarul de caractere citite din fisier ; apelam functia fclose pentru a inchide fisierul ; fclose(descriptor_fis) push dword [descriptor_fis] call [fclose] add esp, 4 final: ; exit(0) push dword 0 call [exit]