Registros x86

Josué Acevedo Maldonado
Nabucodonosor Editorial
3 min readApr 17, 2020

La memoria RAM es un buen lugar para almacenar datos, pero no es el más optimo…

Los datos a utilizar en las operaciones de los programas a ejecutar en la CPU son almacenados en la memoria principal de la computadora, sin embargo, la memoria principal funciona a una velocidad menor que a la que opera el microprocesador, por lo que su uso como único medio de almacenamiento causaría un ’cuello de botella’ en la ejecución del programa, la CPU pasaría mucho tiempo esperando los datos con los que va a trabajar.

Los registros permiten almacenar datos sin pasar por la memoria principal ya que se encuentran dentro del mismo microprocesador, son de alta velocidad sin embargo presentan una capacidad mucho menor de almacenamiento que la de la memoria principal. Los registros se construyen utilizando Flips-Flops.

El tamaño de los registros dependerá de la arquitectura del microprocesador, no obstante, estos se suelen construir y utilizar en bloques de 8, 16, 32 o 64 bits según sea el caso.

Los registros presentes en los microprocesadores de la familia x86, se agrupan en tres categorías:

Registros de propósito general

Utilizados para almacenar los datos a utilizar en las operaciones del programa,
cada uno con distintos propósitos, los registros de propósito general se subdividen a su vez en:

  • Registros generales: Son usados para operaciones aritméticas y lógicas, entre otros usos que les quiera dar el programador.
  • Registros índices: Son utilizados para el direccionamiento indexado de memoria y algunas veces utilizados también en operaciones aritméticas.
  • Registros de apuntadores: almacenan direcciones de memoria que le permitirán al sistema operativo determinar cosas como la ubicación de la siguiente instrucción a ejecutar, o el comienzo de la pila en memoria.
  • Registros extendidos: Estos ocho registros identificados desde el R8 hasta el R15, solo se encuentran disponibles en
    los procesadores de 64 bits los cuales emplean el juego de instrucciones extendido x86–64.
Registros Generales en una maquina X86–64.

Registro de banderas

Ciertas instrucciones en ensamblador involucran operaciones que modifican el estado del procesador estos cambios son almacenados como bits que se activan o desactivan conocidos como banderas, mientras que otras instrucciones presentan la capacidad de leer el estado de las banderas, con la final de que el programa pueda realizar acciones tomando en cuenta esta información.

Registros de segmentos

Los segmentos son áreas específicas de la memoria principal definidas para albergar datos, instrucciones y la información de la pila, las direcciones donde comienzan estas áreas de la memoria son almacenadas en estos registros.

Registros de segmentos y de banderas.

Josue Acevedo Maldonado es ingeniero de software, trabaja actualmente como consultor.

Conectarse en LinkedIn.

¡Gracias por ser parte de la comunidad!
Puede encontrar contenido relacionado en el canal de YouTube, Twitter, Twitch, Spotify, etc, ademas del libro Ensamblador X86.

Si ha disfrutado de este artículo y siente que ha aprendido algo valioso, por favor compártalo.

¡Gracias por leer!

--

--

Josué Acevedo Maldonado
Nabucodonosor Editorial

Amante de la tecnologia y con pasion en resolver problemas interesantes, consultor, y creador del canal de youtube NEOMATRIX. https://linktr.ee/neomatrix