Instrukcie assembleru mozme rozdelit do troch typov. Zakladne instrukcie, pseudoinstrukcie, makroinstrukcie.
Zakladne instrukcie zodpovedaju instrukciam strojoveho jazyka. Zakladne instrukcie sa skladaju z
navestie symbolicky ooeracny znak operandy instrukcie
Zakladne typy operandov su registry, konstanty alebo mena. Registre su oznacovane symbolicky, konstanty su vyjadrene pomocou niektorej z ciselnych sustav (2,8,10,16) alebo textovo v apostrofoch. Mena oznacuju konstantu alebo symbolicke adresy. Prepojenie medzi symbolickou adresou a skutocnou adresou je na prekladaci.
Medzi zakladne instrukcie (pre x86) mozme zahrnut
- instrukcie pre presun dat
MOV, PUSH, POP ... - aritmeticke instrukcie
ADD, SUB, INC - logicke instrukcie
AND, OR, XOR - instrukcie pre posuvy
SHL, SHR - instr. pre nastavenie hodnot priznakov
CLC, CMC ... - instrukcie skoku
JMP, JC, JNC - instrukcie cyklu
LOOP - instrukcie volania podprogramu
CALL, RET - intrukcie pre prerusenie
INT, IRET - specialne instrukcie (praca s retazcami, vstup/vystup)
MOVS, CMPS
Pseudoinstrukcie, ktore sluzia ako informacie pre prekladac a zahrnuju definicie konstant, vyhradenie usekov pamate pre pole a pod. Tu patri napriklad deklaracia slabiky (byte) DB, deklaracia slova DW. Znakove a textove udaje su kodovane bud po znakoch alebo ako textove retazce DB 'P', 'R', 'A', ci DB 'PRAHA'.
zopakujme este, ze slabika je byte = 8 bitov, slovo su 2 slabiky a double word su dve slova = 32 bitov.
Procedury
Istou sadou instrukcii mozme program instruovat k volaniu procedur. Proceduram sa preda riadenie (o tom inkedy) a v tej chvili prebieha program, ktory je uvedeny v procedure. Riadenie sa musi podat spat. Procedury vyuzijeme tam, kde sa nam opakuje nejaka cast kodu. Procedura je tak zaradena len raz, co je uspora voci opakovenmu kodu.
Instrukcia pre volanie procedury: CALL
Navrat z procedury: RET
proceduru deklarujeme navestim.
Makroinstrukcie reprezentuju cinnost skupiny instrukcii. Makroinstrukcie sluzia k strukturalizacii programu. Majmu podobne vlastnosti, ako procedury, ale zaroven mnoho odlisnosti. Popisuju upravy textu programu, lepsie povedane, je to predpis, ktorym vravia, ako ma byt urcita cast programu nahradena inym textom. Rozdiel makroinstrukcii voci proceduram je ten, ze upravy prebehnu este pred prekladom. Ked vytvorime makro, tak deklarovana cast textu v makre je vlozena na miesto volania makra. Toto nazyvame rozvojom makroinstrukcie. Ak volame proceduru, tak jej musime predat riadenie, v makre to nie je potreba.
meno_makra MACRO zoznam formalnych parametrov
meno_makra ENDM