¿Qué es un Registro en un Microcontrolador? Almacenamiento Rápido y Dedicado de la CPU

Un registro es una ubicación de almacenamiento pequeña (típicamente 8–64 bits) dentro de la CPU, accesible en un solo ciclo de reloj. A diferencia de la RAM, los registros no tienen latencia del bus de direcciones y están conectados directamente a la ALU.

Clases Comunes de Registros

ClaseEjemplos (ARM Cortex-M / AVR / 8051)Propósito
Acumulador / GeneralR0–R15 (ARM), R0–R31 (AVR), A (8051)Operandos y resultados aritméticos/lógicos.
Contador de Programa (PC)R15 (ARM), PC (AVR/8051)Dirección de la próxima búsqueda de instrucción.
Puntero de Pila (SP)R13 (ARM), SP (AVR/8051)Tope de la pila de llamadas.
Estado / BanderasxPSR (ARM), SREG (AVR), PSW (8051)Z, N, C, V, habilitaciones de interrupción.
Índice / PunteroX/Y/Z (AVR), DPTR (8051)Modos de direccionamiento de memoria.
Función Especial (SFR)Control de periféricos (GPIO, UART, ADC)Mapeado en memoria, pero de un solo ciclo en algunos núcleos.

Por Qué Importa la Cantidad de Registros

  • Más registros → menos volcados/llenados a pila → ISRs y bucles cerrados más rápidos.
  • ARM Cortex-M: 16 (R0–R15); RISC-V: 32 (x0–x31); AVR: 32 (R0–R31).
  • La asignación de registros del compilador es una pasada de optimización clave.

Hoja de datos → capítulo "Modelo del Programador" enumera cada registro para tu MCU específico.