Sunteți pe pagina 1din 1

Alocarea Memoriei in Limbaje de Nivel Inalt Practic toate microprocesoarele contemporane folosesc compilatoare sau, mai bine spus,

generatoare de cod care reprezinta declaratiile limbajului de nivel inalt si mod alitatile de adresare a memoriei prin instructiuni masina si organizarea memoriei. Descrierea de mai jos se aplica limbajelor structurate si care permit programare recursiva, asa cum sint popularele limbaje Pascal si C , larg acceptate in lumea microprocesoarelor. Spatiul de memorie ocupat de un program poate fi divizat in doua sectii principa le: o sectiune read only (care poate fi citita, dar nu inscrisa), care contine codul si constantele, si o sectiune read write (c e poate fi atit citita cit si inscrisa), in care se stocheaza toate variabilele declarate si auxiliare utilizate de catre pr ogram. In general, aceste doua sectii sint alocate in doua zone de memorie (chiar daca aceste zone ar putea fi continue). La rindul ei, zona de date poate fi subdivizata in zona pentru stiva (stack), unde se aloca variabilele declarate, si zona cu acces aleatoriu ( heap gramada neorganizata), folosita pentru variabilele create dinamic. Modurile de adresare utilizate cel mai frecvent de catre un generator de cod avi nd ca intrare un limbaj de nivel inalt sint cele care calculeaza adresa operandului prin adunarea unei cantitati la continutul unui re gistru, continut obtinut din incarcarea cu unul din indicatorii de cadru, memorati in cimpul de afisare. Afirmatia poate fi usor ver ificata, intrucit majoritatea compilatoarelor ofera, suplimentar fata de codul obiect, un fisier in limbaj de asamblare, care reprez inta codul generat. Pe de alta parte, alte moduri de adresare, cum sint cele utilizind adresa completa specificata in chiar codul ins tructiunii, nu prezinta interes pentru generarea d e cod avind ca sursa programe scrise in limbaje de nivel inalt.