Diferente pentru introducere-in-asamblare intre reviziile #32 si #37

Nu exista diferente intre titluri.

Diferente intre continut:

Acest articol prezinta un limbaj mai putin folosit : limbajul de asamblare. Este folosit de cele mai multe ori pentru marirea vitezei de rulare a programelor. In prima sectiune sunt prezentate cateva avantaje / dezavantaje in folosirea acestui limbaj, iar ulterior sunt definite notiunile elementare ce trebuie stiute inainte de a trece la tratarea limbajului propriu-zis. De asemenea, sunt prezentate cateva intructiuni si transcrieri ale unor structuri din C/Pascal in limbaj de asamblare. In final sunt comparati timpii de executie intre varianta pascal si varianta assembler ale unei proceduri de {$Bubble Sort$}.
Limbajul de asamblare pe mediul x86 exista in doua tipuri de sintaxe :
 
* Intel
* AT&T
 
Sintaxa depinde de compilatorul folosit. De exemplu: Turbo Assembler (inclus in pachetul BC3.1) si Netwide Assembler (NASM) folosesc sintaxa Intel. GAS (folosit de GCC) foloseste sintaxa AT&T.
Nota: In GCC se poate folosi si sintaxa Intel, detalii 'aici':http://en.wikipedia.org/wiki/GNU_Assembler#Criticism .
 
 
O alta diferenta importanta este felul in care este interpretat cuvantul cheie _asm_ in diferite compilatoare C/C++.
De exemplu, aceeasi instructiune in mediul Borland, si GCC cu cele 2 sintaxe :
 
*Borland C 3.1 (sau TASM)*
== code(cpp) |asm { mov ax, bx };
==
 
*GCC (sintaxa AT&T)*
== code(cpp) |asm ("mov %bx, %ax");
==
 
*GCC (sintaxa Intel)*
== code(cpp) |asm (".intel_syntax noprefix\n\t"
     "mov ax, bx");
==
 
 
Exemplele prezentate in acest articol sunt scrise in sintaxa Intel.
 
h2(#limbajul-de-asamblare). Limbajul de asamblare : avantaje si dezavantaje in folosirea lui
Desi este unul dintre cele mai vechi limbaje de programare, limbajul de asamblare este incorporat si in cele mai noi compilatoare cum ar fi Visual C++ si Delphi. Codul de asamblare este foarte apropiat de codul executabil al programelor, asamblorul avand rolul de a codifica instructiunile din limbaj de asamblare in cod masina.
* nu este portabil; un program scris pentru calculatoare IBM PC nu va rula pe un Apple Macintosh (difera unele instructiuni);
* un program in asamblare este mai greu de scris si ia mai mult timp decat un program scris in Pascal sau C;
* un program scris in asamblare este mai greu de depanat;
* trebuie mentionat faptul ca pe procesoarele mai complexe (procesoarele 'superscalare':http://en.wikipedia.org/wiki/Superscalar si cele care permit 'out-of-order execution':http://en.wikipedia.org/wiki/Out-of-order_execution, printre care se afla si Intel x86 incepand cu Pentium Pro si Pentium II) nu este recomandata scrierea de cod asamblare pentru imbunatatirea performantei, un compilator fiind mult mai capabil sa optimizeze codul translatat dintr-un limbaj de nivel inalt intr-un mod care sa profite pe deplin de capacitatile procesorului tinta.
Majoritatea compilatoarelor din prezent permit programatorului sa scrie anumite parti de cod sau subprograme in asamblare, astfel incat programatorul sa poata scrie in asamblare doar partea din program care se executa de cele mai multe ori, programul ruland astfel mult mai rapid. Sunt si compilatoare dedicate exclusiv limbajului de asamblare, cum ar fi TASM - Turbo Assembler (il gasiti in directorul BP/Bin), MASM - Microsoft Assembler, etc.
    cmp ax, 10
    // daca ax != 10 sari inapoi la @loop
 
jne @loop
== code(cpp) |instr1
h2(#concluzie). Doua cuvinte conclusive...
Acest articol trateaza "bazele" programarii in asamblare, dupa cum ii zice numele este doar o introducere. Pentru a sti sa programezi in _asm_, trebuie invatate mult mai multe lucruri. Scopul articolului este de a starni interesul cititorilor si de a le oferi o imagine asupra acestui limbaj. Cei ce doresc sa invete mai multe despre _assembly language_ sunt invitati sa citeasca cartile / tutorialele din sectiunea 'linkuri':introducere-in-asamblare#linkuri.
Acest articol trateaza "bazele" programarii in asamblare, dupa cum ii zice numele este doar o introducere. Pentru a sti sa programezi in _asm_, trebuie invatate mult mai multe lucruri. Scopul articolului este de a starni interesul cititorilor si de a le oferi o imagine asupra acestui limbaj. Cei ce doresc sa invete mai multe despre _assembly language_ sunt invitati sa citeasca cartile / tutorialele din sectiunea 'linkuri':introducere-in-asamblare#linkuri.
 
 

Nu exista diferente intre securitate.

Diferente intre topic forum:

 
3676