Registrul de stare

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

Registrul de stare (cunoscut și sub numele de registru de stare, registru de semnalizare sau registru de cod de condiție PSW (CCR)) este un set de semnalizatoare prezente în CPU care indică starea diferitelor rezultate ale operațiilor matematice. Aceste semnalizatoare sunt utilizate în mod obișnuit pentru a compara și a testa condițiile cerute de programe.

Ordinea, numărul și semnificația semnalizatorilor registrului de stare variază de la procesor la procesor, datorită diferitelor configurații și arhitecturi care există pentru fiecare dintre ele. De exemplu, arhitectura x86 are registrul FLAGS ca registru de stare.

Cuvânt de stare program

Uneori, registrul de stare este, de asemenea, numit Word Status Word (sau PSW ). În acest caz, termenul desemnează o zonă de memorie sau un registru care conține informații despre starea programelor care rulează pe sistemul de operare .

De obicei, PSW conține biți care semnalează orice stare de eroare și coduri de condiții, cum ar fi activarea / dezactivarea întreruperii și trecerea de la modul utilizator la modul de supraveghere. Este foarte important pentru ciclul de întrerupere, deoarece, în cazul unei întreruperi a programului în execuție, acesta își salvează starea, astfel încât, odată ce gestionarea întreruperilor a fost finalizată, acesta poate fi restabilit.

Uneori, PSW poate include și un contor de programe , care conține adresa următoarei instrucțiuni de executat.

Steagul stării

  • ZF = Zero flag (sau zero flag). Indică dacă rezultatul unei operații matematice sau logice este zero.
  • CF = Steagul de transport (sau steagul de transport). Indică dacă rezultatul unei operații produce un răspuns care nu poate fi conținut în biții utilizați pentru calcul. Acest steag poate fi plasat și înaintea unei operații matematice ca un operand suplimentar pentru unele instrucțiuni.
  • SF = Semnalați semnul. Coincide cu MSB rezultatul după o operație aritmetică
  • OF = pavilion Overflow. Indică dacă rezultatul unei operații este debordant , conform reprezentării complementului celor două . Este similar cu steagul de transport, dar este utilizat în operații în care este prezent semnul operanzilor.
  • AF = pavilion de transport auxiliar. utilizat în aritmetica BCD; este 1 dacă bitul 3 a fost reportat (adăugat) sau împrumutat (scăzut)
  • PF = Paritate Flag. Este 1 dacă numărul 1 din ultimii 8 biți cel mai puțin semnificativi ai rezultatului este egal, 0 altfel.

Steagul de control

  • DF = Direction Flag. Folosit în instrucțiunile de manipulare a șirurilor. Dacă este 0, șirurile sunt manipulate începând de la caracterele de la cea mai mică adresă. Dacă este 1 începând de la cea mai mare adresă.
  • IF = Flag de întrerupere. Dacă este 1, semnalele de întrerupere sunt percepute de CPU, altfel sunt ignorate.
  • TF = Trap Flag. Dacă este 1, o capcană este efectuată la sfârșitul fiecărei instrucțiuni.

Elemente conexe