Registro no volátil
¿Qué significa registro no volátil?
Un registro no volátil es un tipo de registro con contenido que debe conservarse en las llamadas a subrutinas. Siempre que la rutina cambie el valor de un registro no volátil, el valor anterior debe guardarse en la pila antes de cambiar el registro y ese valor debe restaurarse antes de regresar. Un registro es similar a una variable, excepto que hay un número fijo de registros. Cada registro es una ubicación única en la CPU en la que se guarda un solo valor. Un registro es el único lugar donde se pueden realizar funciones matemáticas, como sumar, multiplicar, restar, etc. Los registros suelen contener punteros que se refieren a la memoria. Mover valores entre la memoria y los registros es un fenómeno común.
Techopedia explica el registro no volátil
Los siguientes son algunos ejemplos de registros no volátiles:
- ebx: Un registro no volátil utilizado para fines generales. Por lo general, se establece en un valor común a través de una función para acelerar los cálculos.
- esi: Un registro no volátil utilizado para fines generales. Se usa comúnmente como puntero, especialmente para instrucciones de clase «rep-» que requieren una fuente y un destino para los datos. Aquí, el esi apunta a la fuente. Un esi generalmente contiene datos que se utilizan durante toda una función, ya que no es propenso a cambios.
- edi: Otro registro no volátil utilizado para fines generales. Esto se usa comúnmente como puntero. Un edi es idéntico a un esi, con la excepción de que normalmente apunta al destino.
- ebp: Otro registro no volátil que se utiliza como registro de propósito general. Tiene dos usos distintivos basados en la configuración de compilación. Es un registro de propósito general o un puntero de trama. Si la compilación no se ha optimizado o si el código está escrito a mano, ebp monitorea la ubicación de la pila cuando comienza una función. Dado que la pila se cambia a través de una función, cuando ebp se establece en el valor original, las variables guardadas en la pila pueden ser referenciadas fácilmente. Si se ha optimizado la compilación, ebp se utilizará como un registro de propósito general para almacenar cualquier tipo de datos, mientras que los cálculos para el puntero de la pila se realizan en función de su movimiento.
