Kas yra asamblėjos kalba?

Asamblėjos kalba yra žemo lygio būdas nurodyti kompiuteriui atlikti užduotį. Kompiuteriai iš prigimties nesupranta žmonių nurodymų. Paprasčiausiu lygiu kompiuteriai supranta instrukcijas dvejetaine kalba, tai yra nulių ir vienetų sekas. Tačiau dvejetainė kalba arba mašinų kalba yra labai sudėtinga programuoti. Asamblėjos kalba buvo išrasta kaip simbolinis nulių ir vienetų sekų atvaizdavimas.

Tarkime, kad turėtume užprogramuoti žaidimą, kuris, atlikęs tam tikrą veiksmą, apdovanoja žaidėją penkiais taškais. Kompiuteris laiko balą tam tikroje vietoje; vietos yra saugojimo vieta procesoriaus viduje, vadinama „registru“, arba tam tikra vieta atmintyje. Kompiuteris supranta vietas ir žemo lygio veiksmus, vadinamus operacijomis. Taigi, jei balas saugomas registre RA, tada jis supranta komandą 0101 1100 0000 0101, kur pirmieji keturi skaičiai nurodo operaciją ADD, kiti keturi – registrą RA, o paskutiniai aštuoni – skaičių 5.

Iš pradžių kompiuteriai turėjo būti koduojami tokiu būdu; mašinų kalba yra lėta, linkusi į klaidas, todėl vienam asmeniui gali būti labai sunku suprasti, ką kitas bando užkoduoti. Taigi kompiuterių programuotojai sukūrė kalbą, kuria galima geriau suprasti operacijas, vietas, skaičius ir pan. Taigi, lygiavertė komanda aukščiau pateiktam pavyzdžiui būtų ADD RA 5. Šiame hipotetiniame pavyzdyje ADD operacijai ir registrui RA naudojama mnemonika, o skaičius 5 rašomas skaitmenimis.

Programa, vadinama asembleriu, konvertuoja surinkimo kalbos kodą į pagrindinę mašinos kalbą. Ankstesniais laikais net ir ši konversija naudojo brangius skaičiavimo išteklius, todėl operacijų kodai, trumpai tariant, operacijų kodai, tokie kaip Subtract, buvo sutrumpinti kaip SUB, Copy-Move buvo sutrumpintas kaip MOV, o kai kuriais atvejais net ADD buvo sutrumpintas iki A.

Surinkimo kalba dažniausiai yra plonas sluoksnis virš mašinos struktūros. Taigi operacijų kodai, registrai ir visa kalba labai priklauso nuo procesoriaus šeimos. Taigi, „Intel x86“ šeimoje yra tokie operacijų kodai kaip MOV, MOVSX ir MOVZX, o IBM 360 – MVI, MVC, MVZ. Kurdami kompiuterį ar centrinį procesorių, dizaineriai nurodo mašinos kalbą, įskaitant operacijų kodus.
Programuotojai netrukus perėjo prie „aukšto lygio“ kalbų, tokių kaip COBOL, Pascal, C++ ir SQL. Kompiliatoriai šiomis kalbomis parašytą kodą konvertuoja į mašinų kalbą. Tačiau surinkimo kodas vis dar naudojamas specializuotiems procesoriams arba norint užtikrinti greitį nuo žaidimų konsolių iki automobilių sistemų.