Registre procesora

    Podobne ako nám vyššie programovacie jazyky ponúkajú premenné na zápis údajov či prácu s číslami, v assembleri používame na tento účel pamäť počítača, voľné bajty. Nemôžeme však k nim pristupovať vždy priamo, preto sú v procesore integrované registre. Majú dĺžku jedného či dvoch bajtov a skrz ne môžeme vykonávať v podstate všetky operácie assembleru.

    Základných osembitových registrov je osem a majú označenie AH, AL, BH, BL, CH, CL, DH a DL. V podstate sú to horné a dolné bajty (high, low) štyroch základných dvojregistrov (tzn. šestnásťbitových registrov) AX, BX, CX a DX. AL (AX) je základný register, tzv. akumulátor, cez ktorý možno vykonať najviac operácií. BX je určený na adresovanie, CX sa používa pri cykloch a DX pri šestnásťbitovej aritmetike. Tieto využitia sú však len orientačné.

    Pre našu prácu budeme ešte potrebovať šestnásťbitové registre ES,SI a DI. DI je register určený na adresovanie, najmä na zápis (inštrukcia STOS), SI má podobné využitie a ES je segmentový register. Aby sme mohli na PC zapisovať na pamäť väčšieho rozsahu než 65536 bajtov (číselný rozsah šestnásťbitového registra), potrebujeme segmentové registre na určenie úseku pamäte (segment), s ktorou chceme pracovať.

    Ďalším špeciálnym registrom je tzv. stavový register alebo register príznakov. Je naplnený jednobitovými údajmi typu true/false (1/0, pravda/nepravda), ktoré informujú o vykonaní predošlej inštrukcie. Naučíme sa používať dva z nich:

CF = Carry Flag - tzv. príznak pretečenia - je najdôležitejší. Pri aritmetických inštrukciách indikuje pretečenie, tzn. prenos z najvyššieho bitu.

ZF = Zero Flag - tzv. príznak nuly. Pri logických a aritmetických inštrukciách indikuje, že výsledkom bola nula.