Registrele de stare ale programului

Procesorul ARM7TDMI conține un registru CPSR și cinci registre SPSR pentru utilizare în procedurile de tratare a excepțiilor. Registrele statusului programului:

  • să stocați informații despre operațiunile de ultimă oră efectuate
  • controla activarea și dezactivarea întreruperilor
  • setați modul de operare al procesorului.

Alocarea biților este prezentată în Figura 2.6.








Figura 2.6. Formatul registrului de stare al programului

Aproximativ Pentru compatibilitatea cu viitorii procesoare ARM, nu se recomandă atingerea valorii bitilor rezervate. O modalitate de a păstra aceste biți intacte este să folosiți secvența read-modify-write atunci când modificați conținutul CPSR.

Următoarele vor fi luate în considerare: steaguri cod de stare, biți de control și biți rezervați.

6.1 Codul condițiilor Steaguri

Bitii N, Z, C și V sunt steaguri de cod de stare, sunt setați când se efectuează operații aritmetice și logice. În plus, acestea sunt actualizate atunci când se execută instrucțiunile MSR și LDM. Procesorul ARM7TDMI verifică aceste steaguri pentru a determina dacă trebuie executat instrucțiunea. Toate instrucțiunile pot fi executate în condiții ARM. În starea Thumb, numai instrucțiunea de salt poate fi executată prin condiție. Informații detaliate privind executarea condiționată a instrucțiunilor sunt furnizate în "Manualul de referință pentru Arhitectura ARM".







6.2 biți de control

Cele mai mici 8 biți din registrul PSR sunt denumite colectiv biți de control.

Acestea includ:

  • întrerupe biții dezactivați
  • bit T
  • mod biți

Bitii de control își schimbă starea atunci când apare o excepție. Dacă procesorul funcționează într-un mod privilegiat, atunci programul poate manipula acești biți.

Întrerupeți dezactivarea biților

Bitii I și F sunt biții de dezactivare a întreruperii:

  • dacă bitul I = 1, întreruperile IRQ sunt dezactivate;
  • Dacă bitul este F = 1, întreruperile FIQ sunt dezactivate.

Bitul T reflectă starea de funcționare:

  • dacă T = 1, atunci procesul se execută în starea Thumb
  • dacă T = 0, atunci procesorul funcționează în starea ARM.

Starea de funcționare este indicată și de un semnal TBIT extern.

Atenție: nu utilizați instrucțiunea MSR pentru a forța bitul T din registrul CPSR să fie forțat. În acest caz, procesorul va intra într-o stare imprevizibilă.

M biți [4: 0] determină modul de operare al procesorului (vezi Tabelul 2.2). Nu toate combinațiile acestor biți determină modul real al procesorului, prin urmare, ar trebui utilizate numai următoarele valori.

Tabelul 2.2. Valorile biților modulului registru PSR







Articole similare

Trimiteți-le prietenilor: