Assembler x86
Jak se stavový registr používá?
Jak se stavový registr používá?
Podmíněné skoky (JMP, JZ, JNZ, JE, JL, JG, atd.)
Např. JZ (Jump if Zero) skáče, pokud je ZF = 1.
Aritmetické operace
Např. ADD, SUB, MUL ovlivňují CF, ZF, SF, OF atd.
Řetězcové operace
DF řídí směr instrukcí MOVS, LODS, STOS.
Přerušení a ladění
IF a TF jsou důležité pro interrupt systém a debugging.
Příklad práce s EFLAGS v assembleru
Příklad práce s EFLAGS v assembleru
Zjištění obsahu EFLAGS lze provést pomocí instrukce PUSHF:
pushf ; Uloží EFLAGS na zásobník
pop eax ; Načte EFLAGS do registru EAX
Nastavení Direction Flag pro práci s řetězci:
std ; DF = 1 (směr dolů)
cld ; DF = 0 (směr nahoru)
Kontrola výsledku operace:
cmp eax, ebx ; Porovná EAX a EBX
je equal ; Skočí na "equal", pokud je ZF = 1 (EAX == EBX)