Assembler

Na čo slúži?

Assembler má niekoľko funckií, ktoré majú programátorovi spríjemniť implementáciu v JSA.
Vygenerovanie strojového kódu
Primárnou úlohou každého assembleru je preklad. Ide o preklad z JSA do strojového kódu. Assembler preloží inštrukcie a dáta do nového súboru, ktorý bude neskôr načítaný procesorom pri príprave na vykonanie programu. Jedná sa o objektový súbor v ktorom sú už inštrukcie priamo vykonateľné procesorom. Súbor obsahuje aj začiatočnú adresu, čiže adresu prvej inštrukcie. Ak je objektových súborov viac, je úlohou linkera aby ich vhodne spojil a vytvoril tak úplný vykonateľný súbor.
Detekovanie chýb
JSA programovanie je zložité a programátori robia chyby. Niektoré z nich assembler dokáže zachytiť, najmä ak ide o runtime chyby a to ako si s nimi programátor poradí, záleží hlavne od kvality chybového hlásenia. Ak sú chybové hlásenia jednoznačné, programátor ušetrí veľa času.
Ponúknuť informácie na úrovni strojového kódu
Assembler nedokáže zachytiť všetky chyby, hlavne ak ide o chyby logické. Preto je často krát nutné program spustiť a skúmať ho po krokoch, pričom programátor často potrebuje vedieť aký kód bol vygenerovaný a kde sú údaje prípadne inštrukcie uložené v pamäti.
Vyhradiť pamäť pre inštrukcie a údaje
Prvé assemblery nútili programátora aby vyhradil miesto pre všetky údaje, ktoré používal. Moderné assemblery už ponúkajú možnosť symbolickej reprezentácie pamäťových miest (návestia), ktoré sa využívajú často pri skokoch. Assembler preberá zodpovednosť za to, aby vyhradil pamäť pre programové symboly a pamätal si ich.

Ďalšie možnosti
Asembler okrem prevodu inštrukcií JSA na číslene vyjadrené inštrukcie poskytuje možnosť použitia symbolického označenia pre miesta v pamäti (čo šetrí únavné ručné prepočítavanie pamäťových adries po každej malej úprave), prípadne schopnosti preprocesora ako makrá či náhrada textu.

Moderné assemblery
Je omnoho jednoduchšie napísať asembler ako kompilátor jazyka vyššej úrovne a ako také existujú od 50. rokov 20. storočia. Moderné assemblery, obzvlášť pre RISCové architektúry ako MIPS, Sun SPARC a HP PA-RISC, optimalizujú radenie inštrukcií tak, aby sa optimálne využívala pipeline(časť procesora, ktorá obsahuje zoznam inštrukcií na vykonanie) procesora.

Pokročilé assemblery
Assemblery vyššej úrovne zlučujú nízkoúrovňový assembler so súčasťami VPJ. Poznajú jazykové abstrakcie jazykov vyššej úrovne ako vyššie riadiace štruktúry hlavne IF, WHILE, REPEAT...UNTIL, FOR, deklarácie a volania funkcií a abstraktné údajové typy ako záznam, množina či trieda. Typickými príkladmi sú:

- Borland TASM

- Microsoft MASM

- IBM HLASM (pre z/Architecture systémy)

- Jim Niel Terse

- Randall Hyde HLA


Odkazy na stránky s podobným obsahom

Assembler organization
http://www.d.umn.edu/~gshute/asm/assemblers.html

Assembler
http://wapedia.mobi/sk/Asembler

Slovník skratiek

  • JSA - jazyky symbolických adries
  • VPJ - vyššie programovacie jazyky
  • CPU - procesor
  • ISA - inštrukčná sada
  • ASM - assembler
  • OS - operačný systém

Diskusia