Flag condizionali vs. flag di controllo nel microprocessore 8086
Il registro flag dell'8086 contiene due categorie distinte di flag, ciascuna con uno scopo diverso nell'esecuzione del programma.
Flag condizionali (Flag di stato)
Queste flag sono automaticamente impostate o cancellate dalla CPU in base al risultato di operazioni aritmetiche o logiche. Riflettono l'esito dell'ultima istruzione e sono usate dalle istruzioni di salto condizionale per alterare il flusso del programma.
- Zero Flag (ZF) — Impostata se il risultato è zero.
- Carry Flag (CF) — Impostata se un'operazione senza segno genera un riporto/prestito fuori dal bit più significativo.
- Parity Flag (PF) — Impostata se il byte basso del risultato contiene un numero pari di bit a 1.
- Overflow Flag (OF) — Impostata se un'operazione con segno supera l'intervallo rappresentabile.
Flag di controllo
Queste flag sono esplicitamente manipolate dal programmatore (tramite istruzioni specifiche) per controllare il comportamento del processore.
- Direction Flag (DF) — Controlla l'indirizzamento delle istruzioni stringa: 0 = incremento (in avanti), 1 = decremento (all'indietro).
- Interrupt Flag (IF) — Abilita (1) o disabilita (0) gli interrupt hardware mascherabili.
- Trap Flag (TF) — Abilita (1) la modalità di debug a passo singolo; 0 la disabilita.
Differenza chiave
Flag condizionali vengono aggiornate dall'hardware come effetto collaterale del calcolo. Flag di controllo vengono impostate dal software per dettare come opera il processore.