This shows you the differences between two versions of the page.
soc:laboratoare:07 [2025/04/22 20:40] stefan.maruntis [4. Registrul SREG] |
soc:laboratoare:07 [2025/04/22 20:47] (current) stefan.maruntis [4. Status Register] |
||
---|---|---|---|
Line 23: | Line 23: | ||
Spre exemplu, procesorul calculează A + B și dorește să sară la o anumită etichetă dacă rezultatul este 0. UAL va calcula rezultatul lui A + B și va seta bitul **Z (Zero) din Status Register** dacă rezultatul adunării este 0. Instrucțiunea de salt **JZ (jump zero)** verifică bitul Z din Status Register și sare la eticheta data dacă bitul este 1, altfel execută instrucțiunea imediat următoare. | Spre exemplu, procesorul calculează A + B și dorește să sară la o anumită etichetă dacă rezultatul este 0. UAL va calcula rezultatul lui A + B și va seta bitul **Z (Zero) din Status Register** dacă rezultatul adunării este 0. Instrucțiunea de salt **JZ (jump zero)** verifică bitul Z din Status Register și sare la eticheta data dacă bitul este 1, altfel execută instrucțiunea imediat următoare. | ||
| | ||
- | În cadrul **x86** Status Register se numește **FLAGS** și are 16 biți. El are o extensie de 32 de biți numită **EFLAGS**. Biții din cele două registre au următoarea semnificație: | + | În cadrul **x86** Status Register se numește **FLAGS** și are 16 biți. El are o extensie de 32 de biți numită **EFLAGS**. Biții din cele două registre au următoarea semnificație: |
{{:soc:laboratoare:08:eflags.png?|x86 Status Register}} | {{:soc:laboratoare:08:eflags.png?|x86 Status Register}} | ||