|
NOTA: Referatul contine un exemplu de program ce calculeaza maximul
intr-un sir de numere intregi, cu semn, reprezentate pa cate un octet !
1. INTRODUCERE
1.1 AVANTAJELE PROGRAMARII IN ASM
Exista, intr-adevar, o tendinta justificata de indepartare de
limbajul de asamblare, dar nu de renuntare la el, intrucat multe medii
integrate de dezvolare de programe (IDE - Integrated Development
Enviroments) si compilatoare de limbaje de nivel inalt (C, Pascal, Basic,
Fortran, etc.) prezinta facilitati de inserare de linii scrise direct in
limbaj de asamblare.
Prezentarea posibilitatilor oferite de limbajele de programare:
[pic]
Cu toate acestea, exista si numeroase componente ale sistemului de
operare si ale altor aplicatii, care sunt considerate critice si
performante, iar acestea au fost si mai sunt realizate in limbaj de
asamblare, deoarece aceste secvente trebuie sa consume cat mai putin timp
si, eventual, cat mai putina memorie. Aceasta performanta este realizata
prin utilizarea cat mai eficienta a instructiunilor si a structurii
procesorului.
In concluzie, la ora actuala programele sunt hibride: ele contin linii
scrise in limbaje de nivel inalt, dar pot contine si linii in limbaj de
asamblare. Pentru a rezolva astfel de situatii, implementarile limbajelor
de nivel inalt accepta introducerea in textul sursa de linii scrise in
limbaj de asamblare sau legarea intr-un singur modul a unor module obiect
provenite de la compilarea unor texte sursa, scrise in diverse limbaje de
programare. Modulele care presupun algoritmi complicati sau structuri de
date complexe sunt scrise in limbaje de nivel inalt, iar cele care sunt
critice din puctul de vedere al timpului de executie si al resurselor
ocupate sunt scrise in limbaj de asamblare. In plus, exista anumite
resurse ale calculatorului la care accesul nu este realizabil din limbajele
de nivel inalt.
Un alt motiv pentru care se recomanda si experienta programarii in
limbaj de asamblare este acela ca un specialist in informatica trebuie sa
cunoasca mecanisele fine ale procesorului pntru a le folosi in diferite
aplicatii.
De asemenea, uneori, depanarea unui program poate trece de textul
sursa si ajunge la depanarea codului obiect, caz in care este necesara
cunoasterea libajului de asamblare.
Motivul pentru care secventele critice, ca timp de executie si
resurse, se scriu in limbaj de asamblare si nu in limbaje de nivel inalt,
este urmatorul: compilatorul are "cunostinte limitate" asupra intregului
program, dar el trebuie a genereze un set generalizat de instructiuni
masina , care vor lucra in toate sitatiile, dar nu vor fi optime in
situatii particulare.
Programarea in limbaj de asamblare este mult mai dificila decat cea
in |