Sei sulla pagina 1di 3

Registros de 32 bits

Un registro es un espacio de almacenamiento disponible para el CPU. Una de las


principales caractersticas de estos, es que pueden ser accedidos ms rpido que
cualquier otro dispositivo de almacenamiento de una computadora. Los procesadores x86
cuentan con una serie de registros disponibles para utilizar como almacenamiento
temporal para variables, valores y dems informacin que utilizan durante la ejecucin de
instrucciones como as tambin punteros a secciones de memoria como la pila. Podemos
mencionar 4 categoras diferentes:

Registros generales
Segmentos de registros
Flags (banderas de estado)
Instruction Pointer (IP), puntero a la prxima instruccin a ejecutar.

En una arquitectura x86, todos los registros tienen un tamao de 32 bits, sin embargo se
pueden referenciar tanto los de 32 como de 16 bits. Por ejemplo, ECX hace referencia a
los 32 bits del registro, sin embargo, CX solo referencia a los 16 bits de la parte baja.

Registros generales

Normalmente, los registros generales almacenan datos o direcciones de memoria y son


utilizados de manera intercambiable para lograr que se ejecuten las instrucciones del
programa. Algunos de estos registros generales son utilizados para funciones
especficas. Por ejemplo, para realizar multiplicaciones o divisiones se utilizan los
registros EAX y EBX.
Registros 64 bits

Los procesadores de 64 bits disponen de una serie de registros formada por registros de
propsito general y registros especficos.

Los registros de propsito son 16 de 64 bits y 6 registros especficos con segmento de 16


bits, tambin dispone de un registro de estado de 64 bits (RFLAGS) y de un registro
contador de programa de 64 bits (RIP).

Registros de propsito general

Consta de 16 registros de datos de 64 bits (8 bytes): RAX, RBX, RCX, RDX, RSI, RDI,
RBP, RSP y R8-R15.

Los 8 primeros registros se nombran de forma parecida a los 8 registros de propsito


general de 32 bits disponibles en la arquitectura de 32 bits (EAX, EBX, ECX, EDX, ESI,
EDI, EBP y ESP). Los registros se pueden acceder de cuatro formas diferentes:

-Como registros de 64 bits (quad word).

-Como registros de 32 bits (double word), se accede a los 32 bits de peso menor.

-Como registros de 16 bits (word), se accede a los 16 bits de peso menor.

-Como registros de 8 bits (byte), accediendo individualmente a uno o dos de los bytes de
menor peso segn el registro.

En el modo de 64 de bits, estos registros apenas se utilizan, pues se trabaja con un


modelo de memoria lineal y el valor de estos registros se establece en 0 (excepto para los
registros FS y GS, que pueden ser usados como registros base en el clculo de
direcciones).

Registro de instruccin o instruction pointer (RIP): es el registro contador de


programa (PC) y contiene la direccin efectiva (o direccin lineal) de 64 bits de la
instruccin siguiente que se ha de ejecutar.

Cada vez que se lee la siguiente instruccin de la memoria, este registro se actualiza con
la direccin de la instruccin siguiente que se tiene que ejecutar; tambin se puede
modificar el contenido de este registro durante la ejecucin de una instruccin de ruptura
de secuencia (una llamada a una subrutina, o bien a travs de un salto condicional o
incondicional).
Registro de estado o Flags register (RFLAGS): este registro posee informacin sobre el
estado interno del procesador e informacin sobre el resultado de la ejecucin de las
instrucciones, es tambin de 64 bits.

Pero slo se usa la parte baja del registro (bits de 31 a 0), que corresponde al registro
EFLAGS de la arquitectura de 32 bits. La parte alta no se utiliza.

El registro de estado se utiliza para consultar el valor individual de cada uno de sus bits;
eso se realiza a travs de instrucciones especficas, como las instrucciones de salto
condicional que consultan uno o ms bits para determinar si saltan o no segn el estado
de alguno de estos bits.

La ltima instruccin que los ha modificado no tiene por qu ser la ltima instruccin que
se haya ejecutado.