abc Asembler - elektronski priručnik
V dio Registri

Kontrolni registri

Kombinovani 32-bitni instrukcioni pointer registar i 32-bitni flag (zastavica) registar se smatraju kontrolnim registrima. Mnoge instrukcije uključuju poređenja i matematičke kalkulacije i mijenjaju status flagova, a neke druge uslovne instrukcije testiraju vrijednost ovih statusnih flagova da usmjere kontrolni tok ka drugoj lokaciji.

Uobičajeni flag bitovi su:

  • Overflow Flag (OF): On indicira prekoračenje (overflow) najvišeg bita (krajnji lijevi bit) podatka nakon označene aritmetičke operacije.
  • Direction Flag (DF): On određuje lijevi ili desni smjer kretanja ili poređenja string podatka. Kada je DF vrijednost 0, string operacija ima smjer s lijeva na desno, a kada je vrijednost postavljena na 1, string operacija ima smjer s desna na lijevo.
  • Interrupt Flag (IF): On određuje da li eksterni prekidi (interapti) kao što je ulaz sa tastature itd., trebaju biti ignorisani ili procesirani. On onemogućava eksterni prekid kada je vrijednost 0, a omogućava prekide kada je postavljen na 1.
  • Trap Flag (TF): On dozvoljava postavljanje operacije procesora u tzv. jednokoračni (single-step) mod. DEBUG program postavlja trap flag, tako da možemo proći kroz izvršavanje jedne po jedne instrukcije.
  • Sign Flag (SF): On pokazuje znak rezultata aritmetičke operacije. Ovaj flag je postavljen u skladu sa znakom podatka nakon aritmetičke operacije. Znak je indiciran najvišim ili krajnje lijevim bitom. Pozitivan rezultat postavlja vrijednost SF na 0, a negativan rezultat postavlja ga na 1.
  • Zero Flag (ZF): On indicira rezultat aritmetičke operacije ili operacije poređenja. Nenulti rezultat postavlja zero flag na 0, a nulti rezultat postavlja ga na 1.
  • Auxiliary Carry Flag (AF): On sadrži prenos (carry) sa bita 3 na bit 4 nakon aritmetičke operacije; koristi se za specijalizovanu aritmetiku. AF je postavljen kada 1-bajtna aritmetička operacija uzrokuje prenos sa bita 3 u bit 4.
  • Parity Flag (PF): On indicira ukupan broj 1-bita u rezultatu dobijenom iz neke aritmetičke operacije. Paran broj 1-bita postavlja parity flag na 0, a neparan broj 1-bita postavlja parity flag na 1.
  • Carry Flag (CF): On sadrži prenos (carry) 0 ili 1 sa najvišeg bita (krajnji lijevi) nakon aritmetičke operacije. On takođe sprema sadržaje posljednjeg bita shift ili rotate operacije.

Sljedeća tabela indicira poziciju flag bitova u 16-bitnom Flags registru:

Flag:

 

 

 

 

O

D

I

T

S

Z

 

A

 

P

 

C

Br. bita:

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

Indeksni registri    <    Index    >    Segmentni registri