V prvej lekcii sme si slubili ze si ukazeme programatorsky model procesora Intel 86 [alebo iba '86']. Co to vlastne je programatorsky model procesora ? Programatorsky model je akasi informacna struktura hovoriaca o tom, ake prostiedky poskytuje procesor pre programatora a co vsetko s nim moze programator robit. Pod tento programatorsky model patri sustava registrov pristupnych pre programatora [t.j. ktore moze programator vyuzivat] a instrukcny subor procesora, ktorym moze programator tieto registre vyuzivat.

   V dnesnej lekcii si ukazeme sustavu registrov procesora 86. Co su to vlastne registre ? Register je akasi bunka pamete, schopna si zapametat urcite male mnozstvo informacie. Konkretne v procesore 86 maju vsetky registre kapacitu 16 bitov. Kapacita registra sa tiez zvykne oznacovat aj pojmom "sirka registra". Sustava registrov procesora 86 vyzera takto:

[AH]  AX  [AL]
[BH]  BX  [BL]
[CH]  CX  [CL]
[DH]  DX  [DL]
    DI    
    SI    
    BP    
    SP    
    IP    
    CS    
    DS    
    ES    
    SS    
  FLAGS  

   Registre AX,BX,CX,DX su vseobecne pouzitelne registre, tiez niekedy nazyvane univerzalne. AX sa zvykne oznacovat ako akumulator. Tieto registre sa daju rozdelit na 8-bitove polovicky a operacie vykonavat potom s tymito polovickami. Pismeno H v nazve polovicky registra oznacuje jeho hornych 8 bitov, pismeno L oznacuje dolnych 8 bitov.

   Registre SI,DI,BP,SP maju specialne pouzitie. SI a DI su indexove registre, pouzivane najcastejsie pri indexovani poli a pri retazcovych a blokovych operaciach. Register BP je urceny na adresovanie udajovych struktur ulozenych na zasobniku procesora a konecne register SP je Stack-Pointer, ukazovatel zasobnika, v ktorom sa ukladaju napr. navratove adresy z prodprogramov.

   Registre CS,DS,ES,SS sa nazyvaju segmentove. Ich ulohou je adresovat segmenty v pameti. Co je to segment a aky vyznam ma jeho adresovanie, si vysvetlime neskor.

   Register IP je programove pocitadlo. Ukazuje do pameti na prave sa vykonavajuci program.

   V registri FLAGS sa uchovavaju jednotlive priznaky stavu procesora. Dolnych 8 bitov je zhodnych s priznakovym registrom procesora 8080. V hornych 8 bitoch je niekolko novych priznakov specifickych pre 86. Struktura priznakoveho registra FLAGS je takato:

15141312111098
-------- OFDFIFTF
76543210
SFZF--AF --PF--CF

Jednotlive priznaky znamenaju:

OF -  Overflow - signalizacia pretecenia pri matematickych operaciach.
DF -  Direction - urcenie smeru pohybu ukazovatelov po pameti pri blokovych operaciach [ci sa maju inkrementovat, alebo dekrementovat].
IF -  Interrupt - priznak maskovatelneho prerusenia [ci je povolene].
TF -  Trap - priznak krokovania programu [pri krokovani sa po vykonani kazdej instrukcie vnutorne automaticky generuje programove prerusenie].
SF -  Sign - priznak znamienka vysledku. Signalizuje, ci vysledok matematickej operacie je kladny alebo zaporny.
ZF -  Zero - priznak nuly alebo zhody. Signalizuje ci vysledok matematickej operacie je nulovy, alebo ci sa pri porovnavani zistila zhoda.
AF -  Auxiliary carry - pomocny priznak prenosu medzi 3. a 4. bitom. Vyuzivaju ho instrukcie desiatkovych korekcii.
PF -  Parity - signalizacia parneho poctu jednotiek vo vysledku operacie
CF -  Carry - prenos. Signalizacia pretecenia pri matematickych operaciach.

   Rozdiel medzi OF a CF je taky, ze pokym CF predpoklada vykonavanie matematickej operacie s cislami v priamom kode (0=0, 1=1, 255=255) tak naproti tomu OF signalizuje pretecenie pri matematickych operaciach s cislami v doplnkovom kode (0=0, 1=1, 255=-1). Navyse CF sa este pouziva ako pomocny bit pri bitovych operaciach posunu a pri bitovych rotaciach.

   Pre nas budu najdolezitejsie priznaky OF,DF,SF,ZF,PF,CF. S ostatnymi sa budeme zaoberat len okrajovo, pretoze ich pouzitie v praxi je zriedkavejsie.

Nazad na obsah , predchadzajuca a dalsia lekcia