Assembly language




În programarea computerului, limbajul de asamblare (alternativ limbajul de asamblare sau codul simbolic al mașinii), adesea menționat pur și simplu ca asamblare și prescurtat în mod obișnuit ca ASM sau ASM, este un limbaj de programare la nivel scăzut, cu o corespondență foarte puternică între instrucțiunile din limbaj și în limbaj și în limbaj Instrucțiuni de cod de mașină ale arhitecturii.

Limbajul de asamblare are, de obicei, o declarație pe instrucțiune a mașinii (1: 1), dar constante, comentarii, directive de asamblare, etichete simbolice de, de exemplu, locații de memorie, registre și macro -uri sunt, de asemenea, acceptate.

Primul cod de asamblare în care un limbaj este utilizat pentru a reprezenta instrucțiunile codului mașinii se găsește în lucrările din 1947 ale lui Kathleen și Andrew Donald Booth, care codifică pentru A.R.C ..

Codul de asamblare este transformat în cod de mașină executabil de un program de utilitate menționat ca un asamblator.

Termenul „asamblator” este, în general, atribuit lui Wilkes, Wheeler și Gill în cartea lor din 1951, pregătirea programelor pentru un computer digital electronic, care, totuși, a folosit termenul pentru a însemna ”un program care asamblează un alt program format din mai multe secțiuni într -o un singur program “.

Procesul de conversie este denumit asamblare, ca în asamblarea codului sursă.

Etapa de calcul când un asamblator prelucrează un program se numește timp de asamblare.

Deoarece asamblarea depinde de instrucțiunile codului mașinii, fiecare limbaj de asamblare este specific unei anumite arhitecturi computerizate.

Uneori există mai mult de un asamblator pentru aceeași arhitectură și, uneori, un asamblator este specific unui sistem de operare sau pentru anumite sisteme de operare.

Majoritatea limbilor de asamblare nu oferă o sintaxă specifică pentru apelurile sistemului de operare, iar majoritatea limbilor de asamblare pot fi utilizate universal cu orice sistem de operare, deoarece limba oferă acces la toate capacitățile reale ale procesorului, pe care toate mecanismele de apel ale sistemului se bazează în cele din urmă.

Spre deosebire de limbajele de asamblare, cele mai multe limbaje de programare de nivel înalt sunt în general portabile pe mai multe arhitecturi, dar necesită interpretare sau compilare, sarcini mult mai complicate decât asamblarea.

În primele decenii de calcul, a fost obișnuit atât pentru programarea sistemelor, cât și pentru programarea aplicațiilor să aibă loc în întregime în limbajul de asamblare.

Deși este încă de neînlocuit în anumite scopuri, majoritatea programării se realizează acum în limbi interpretate și compilate la nivel superior.

În „No Silver Bullet”, Fred Brooks a rezumat efectele întreruperii programării limbajului de asamblare: „Cu siguranță cel mai puternic accident vascular cerebral pentru productivitatea, fiabilitatea și simplitatea software-ului a fost utilizarea progresivă a limbajelor de nivel înalt pentru programare.

Creditează această dezvoltare cu cel puțin un factor de cinci în productivitate și cu câștiguri concomitente în fiabilitate, simplitate și înțelegere.

“Astăzi, este tipic să se utilizeze cantități mici de cod de limbaj de asamblare în sisteme mai mari implementate într-un limbaj de nivel superior, Din motive de performanță sau pentru a interacționa direct cu hardware-ul în moduri neacceptate de limbajul de nivel superior.

De exemplu, puțin sub 2% din versiunea 4.9 din codul sursă al kernelului Linux este scris în asamblare; Peste 97% sunt scrise în C.