Nastavenie registra príznakov |
||
| <= | => | |
Register príznakov sa čiastočne nastavuje súčasne s vykonávaním niektorých inštrukcií. Obsahuje ale i registre, ktoré sa automaticky nenastavujú (IF, DF, TF). Preto ASM86 má inštrukcie, ktorými môžeme priamo ovplyvniť hodnoty niektorých bitov registru F.
#include <stdio.h>
unsigned char premenna;
main() {
asm {
MOV premenna,0 // nastav premennú do hodnoty 0
PUSHF // ulož register príznakov do zásobníka
POP AX // presuň obsah vrcholu zásobníka do registra AX
OR AX,1 // nastav posledný bit (CF) do logické 1
PUSH AX // ulož obsah AX do zásobníka
POPF // presuň naspäť do registra príznakov
JNC koniec // otestuj nastavenie CF
MOV premenna,1 // CF bol v 1, nastav hodnotu premennej do 1
}
koniec:
printf("%d",premenna); // vypíš obsah premennej
}
Jednotlivé bity
časti registra príznakov môžeme tiež ovplyvniť vhodným použitím inštrukcií
LAHF a SAHF.
| <= | => |