DIR Return Create A Forum - Home
---------------------------------------------------------
Forum Practic
HTML https://practic.createaforum.com
---------------------------------------------------------
*****************************************************
DIR Return to: Informatica
*****************************************************
#Post#: 133--------------------------------------------------
AVANTAJELE PROGRAMARII IN ASM
DIR By: iulianstoian
Date: January 13, 2015, 7:07 pm
---------------------------------------------------------
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. q8d19du
Prezentarea posibilitatilor oferite de limbajele de programare:
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 intr-un limbaj de nivel inalt, deoarece programatorul
trebuie sa cunoasca, pe langa limbajul de asamblare, si
structura interna a calculatorului ( registre, organizarea si
adresarea memoriei, porturi de intrare-iesire, etc.)
Limbajul de asamblare (ASM) permite intelegerea la nivel de
amanunt a ceea ce se intampla in realitate intr-un calculator.
Codul generat in ASM se executa foarte rapid.si permite accesul
la hardware, acces care nu este disponibil in limbajele de nivel
inalt.
Unitatea de baza a informatiei memorate in calculator este
bitul. Un bit reprezinta o cifra binara, deci poate avea
valorile 0 sau 1. Modelul hardware corespunzator este acela de
bistabil. Un bistabil este, deci un circuit electronic cu doua
stari stabile, configurate 0 sau 1 , capabil sa memoreze un bit
de informatie.
Un grup de bistabili formeaza un registru. De exemplu, 8
bistabili formeaza un registru de 8 biti. Iformatia care se
poate memora intr-un asemenea registru poate fi codificata
binar, de la valoarea 0000.0000, pana la valoarea 1111.1111.
Numarul combinatiilor care pot fi memorate este 256 ( ). Aceste
combinatii se numesc octeti sau bytes (daca n=8), respectiv
cuvinte (daca n=16, 32, etc.).
Memoria unui calculator este vazuta ca o succesiune de octeti.
Fiecare octet are asociata o adresa de memorie. Pentru a adresa
memoria, e nevoie de un registru de adrese a carui lungime
determina dimensiunea maxima a memoriei. Zonele de memorie vor
fi reprezentate grafic pe verticala, ca succesiuni de octeti sau
cuvinte, de la adrese mici catre adrese mari.
*****************************************************
Page 1 of 1