Assembler vyššej úrovne

Niekoľko assemblerov ponúka možnosť používať konštrukcie charakteristické pre vyššie programovacie jazyky (IF, WHILE, FOR atď), niektoré dokonca ponúkajú aj objektové prvky ako HLA a TASM. Tieto vymoženosti prispievajú k prehľadnosti kódu aj zjednodušeniu písania kódu. Niektoré assemblery ponúkajú len málo takýchto vymožeností, najčastejšie makrá , niektoré ich neponúkajú vôbec, naopak ostatné assemblery sa na ne špecializujú. Nasledujúca tabuľka ponúka určitý prehľad o podpore vyššich konštrukcií assemblermi.

Obr.1 Podpora vyšších konštrukcií assemblermi

Z niektorých zdrojov sa môžeme dozvedieť, že programovanie v SOJ, ktoré sú prekladané assemblermi vyššej úrovne nie je plnohodnotné programovanie na najnižšej úrovni. Je to nonsens. Aj tieto assemblery podporujú priamo všetky strojové inštrukcie a je len na rozhodnutí programátora, či si všetko naprogramuje jednoduchými inštrukciami alebo použije aj zjednodušujúce súčasti daného assembleru. Ono samozrejme dochádza pri používaní zložitejších štruktúr k určitým stratám na efektivite(podobne ako po preklade kompilátorom z vyšších prog. jazykov) a je len na rozhodnutí programátora, kde si tieto straty môže dovoliť a kde potrebuje mať maximálne rýchle miesta, napísané priamo v inštrukciách procesora.

 

Program "Hello World"

Obr.2 Program Hello World preložiteľný vyšším assemblerom

Kód vyššie má za úlohu vypísať Hello World. Mohlo by sa zdať, že tento kód nemá nič spoločné s kódom na najnižšej úrovni. V skutočnosti sa však používajú priamo inštrukcie procesora, akurát stdout.put je makro, ktoré sa dá rozvinúť a takto by vyzeral ten kód ak by sme makro rozvili.


Obr.3 Program Hello World bez použitia vyšších konštrukcií

Odkazy na stránky s podobným obsahom

High level assembly language x86
http://webster.cs.ucr.edu/AsmTools/HLA/index.html

High level assembler
http://en.wikipedia.org/wiki/High_Level_Assembly

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