# Control register

Un registre de control és un registre de processador que canvia o controla el comportament general d'una CPU o un altre dispositiu digital. Les tasques habituals que realitzen els registres de control inclouen el control d'interrupcions, la commutació del mode d'adreçament, el control de paginació i el control del coprocessador.
Als processadors Intel, hi ha registres de control que comencen per CR0. El registre CR0 sol tenir una longitud de 32 o 64 bits.

## Història

Quan IBM va desenvolupar una versió de paginació del System/360, van afegir 16 registres de control al disseny del que es va convertir en el 360/67. IBM no va proporcionar registres de control en altres models S/360, però els va convertir en una part estàndard del System/370, encara que amb diferents assignacions de registre i bits. A mesura que IBM va afegir noves característiques a l'arquitectura, per exemple, DAS, S/370-XA, S/370-ESA, ESA/390, van afegir camps addicionals als registres de control. Amb z/Architecture, IBM va duplicar la mida del registre de control a 64 bits.

## Registres de control a IBM 360/67

Al 360/67, CR0 i CR2 s'utilitzen per a la traducció d'adreces, CR 4-6 contenen senyals diversos, incloses màscares d'interrupció i mode de control estès, i CR 8-14 contenen la configuració de l'interruptor a la unitat de configuració 2167.

## Registres de control a IBM S/390

Els registres de control de l'ESA/390 a l'IBM S/390 són una millora evolutiva dels registres de control dels anteriors processadors ESA/370, S/370-XA i S/370. Per obtenir més informació sobre quins camps depenen de característiques específiques, consulteu els Principis de funcionament.

## Registres de control de la sèrie Intel x86

El registre CR0 té 32 bits de llarg en els processadors 386 i superiors. Als processadors x64 en mode llarg, aquest (i els altres registres de control) té una longitud de 64 bits. CR0 té diversos indicadors de control que modifiquen el funcionament bàsic del processador. El registre CR0 és la versió de 32 bits de l'antic registre de la paraula d'estat de la màquina (MSW). El registre MSW es va ampliar al registre de control amb l'aparició del processador i386.
| Bit | Nom | Nom complet | Descripció |
| 0 | PE | Habilita el mode protegit | Si 1, el sistema està en mode protegit, en cas contrari, el sistema està en mode real |
| 1 | MP | Monitor coprocessador | Controla la interacció de les instruccions WAIT/FWAIT amb el senyalador TS a CR0 |
| 2 | EM | Emulació | Si s'estableix, no hi ha cap unitat de coma flotant x87, si està clara, hi ha FPU x87 |
| 3 | TS | Tasca canviada | Permet desar el context de la tasca x87 en un canvi de tasca només després d'utilitzar la instrucció x87 |
| 4 | ET | Tipus d'extensió | Al 386, permetia especificar si el coprocessador matemàtic extern era un 80287 o un 80387 |
| 5 | NE | Error numèric | Habilita l'informe d'errors de coma flotant x87 intern quan s'estableixi, en cas contrari, habilita la detecció d'errors x87 d'estil de PC |
| 16 | WP | Protecció d'escriptura | Quan s'estableix, la CPU no pot escriure a pàgines de només lectura quan el nivell de privilegis és 0 |
| 18 | AM | Màscara d'alineació | La comprovació d'alineació està activada si s'ha establert AM, la bandera AC (al registre EFLAGS) s'ha establert i el nivell de privilegi és 3 |
| 29 | NO | No escriure | Activa/desactiva globalment la memòria cau d'escriptura |
| 30 | CD | Desactivació de la memòria cau | Activa/desactiva globalment la memòria cau |
| 31 | PG | Paginació | Si és 1, activeu la paginació i utilitzeu el § CR3Registre § CR3, sinó desactiva la paginació. |

## Referències

* ↑ «General Purpose Registers» (en anglès americà), 25-11-2022. [Consulta: 3 desembre 2023].
* ↑ «Control Register - an overview | ScienceDirect Topics» (en anglès). [Consulta: 3 desembre 2023].
* ↑ M67prelim, p. 25-26, Control Registers.
* ↑ M67, p. 16, Table 4. Control Registers.
* ↑ S/370, p. 4-8-4-11 , Control Registers.
* ↑ «What is relation between Status register and Control register?» (en anglès). [Consulta: 3 desembre 2023].
* ↑ S/370-ESA.
* ↑ «Are "Control register" and "Status register" and "Data register" part of the device itself?» (en anglès). [Consulta: 3 desembre 2023].