Učebnice Assembleru 86

Nastavení registru příznaků

Registr příznaků se částečně nastavuje současně s vykonáváním některých instrukcí. Obsahuje ale i registry, které se automaticky nenastavují (IF, DF, TF). Proto ASM86 má instrukce, kterými můžeme přímo ovlivnit hodnoty některých bitů registru F.

Jestliže chceme nastavit hodnotu v příznaku, pro který instrukce neexistuje, použijeme algoritmus:

Příklad:

var promenna:byte;
begin
 asm
  
MOV promenna,0  {nastav proměnnou do hodnoty 0}
  
PUSHF           {ulož registr příznaků do zásobníku}
  
POP AX          {přesuň obsah vrcholku zásobníku do registru AX}
  
OR AX,1         {nastav poslední bit (CF) do logické 1}
  
PUSH AX         {ulož obsah AX do zásobníku}
  
POPF            {přesuň nazpátek do registru příznaků}
  
JNC @konec      {otestuj nastavení CF}
  
MOV promenna,1  {CF byl v 1, nastav hodnotu proměnné do 1}
 @konec:
 end;
 writeln (promenna); {vypiš obsah proměnné}
end.

Jednotlivé bity části registru příznaků můžeme také ovlivnit vhodným použitím instrukcí LAHF a SAHF.

Směr