Registros de un CPU
... 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Los registros internos del procesador se puede
clasificar en 6 tipos diferentes
- Registros de segmento
- Registros de propósito general
- Registros de apuntadores
- Registros de banderas
- Registros de Puntero de instrucción
- Registros de Pila
1.
Registros de
segmento
Registro CS. El DOS
almacena la dirección inicial del segmento de código de un programa en el
registro CS. Esta dirección de segmento, mas un valor de desplazamiento en el
registro apuntador de instrucción (IP), indica la dirección de una instrucción
que es buscada para su ejecución.
Registro DS. La
dirección inicial de un segmento de datos de programa es almacenada en el
registro DS. En términos sencillos, esta dirección, mas un valor de
desplazamiento en una instrucción, genera una referencia a la localidad de un
byte especifico en el segmento de datos.
Registro SS. El registro
SS permite la colocación en memoria de una pila, para almacenamiento temporal
de direcciones y datos. El DOS almacena la dirección de inicio del segmento de
pila de un programa en le registro SS. Esta dirección de segmento, mas un valor
de desplazamiento en el registro del apuntador de pila (SP), indica la palabra
actual en la pila que esta siendo direccionada.
Registros ES. Alguna
operaciones con cadenas de caracteres (datos de caracteres) utilizan el
registro extra de segmento para manejar el direccionamiento de memoria. En este
contexto, el registro ES esta asociado con el registro DI (índice). Un programa
que requiere el uso del registro ES puede inicializarlo con una dirección de
segmento apropiada.
Registros FS y GS. Son
registros extra de segmento en los procesadores 80386 y posteriores.
2. Registros de propósito general.
Registro AX. El registro
AX, el acumulador principal, es utilizado para operaciones que implican
entrada/salida y la mayor parte de la aritmética. Por ejemplo, las
instrucciones para multiplicar , dividir y traducir suponen el uso del AX.
También, algunas operaciones generan código mas eficiente si se refieren al AX
en lugar de a los otros registros.
Registro BX. El BX es
conocido como el registro base ya que es el único registro de propósito general
que puede ser índice para direccionamiento indexado. También es común emplear
el BX para cálculos.
Registro DX. El DX es
conocido como l registro de datos. Alguna operaciones de entrada/salida
requieren uso, y las operaciones de multiplicación y división con cifras
grandes suponen al DX y al AX trabajando juntos.
Registro de
Apuntador de Instrucciones.
En el ejemplo siguiente, el registro CS contiene
25A4[0]H y el IP contiene 412H. Para encontrar la siguiente instrucción que
será ejecutada, el procesador combina las direcciones en el CS y el IP:
Segmento de dirección en el registro CS: 25A40H
Desplazamiento de dirección en el registro IP: + 412H Dirección de la siguiente
instrucción: 25E52H
3.
Registros
Apuntadores.
Registro SP. El
apuntador de la pila de 16 bits esta asociado con el registro SS y proporciona
un valor de desplazamiento que se refiere a la palabra actual que esta siendo
procesada en la pila. Los procesadores 80386 y posteriores tienen un apuntador
de pila de 32 bits, el registro ESP. El sistema maneja de forma automática
estos registros.
En el ejemplo siguiente, el registro SS contiene la
dirección de segmento 27B3[0]H y el SP el desplazamiento 312H. Para encontrar
la palabra actual que esta siendo procesada en la pila, la computadora combina
las direcciones en el SS y el SP:
Registro BP. El BP de 16
bits facilita la referencia de parámetros, los cuales son datos y direcciones
transmitidos vía pila. Los procesadores 80386 y posteriores tienen un BP
ampliado de 32 bits llamado el registro EBP.
Registros
Indice.
Registro SI. El registro
índice fuente de 16 bits es requerido por algunas operaciones con cadenas (de
caracteres). En este contexto, el SI esta asociado con el registro DS. Los
procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32
bits, el ESI.
Registro DI. El registro
índice destino también es requerido por algunas operaciones con cadenas de
caracteres. En este contexto, el DI esta asociado con el registro ES. Los
procesadores 80386 y posteriores permiten el uso de un registro ampliado de 32
bits, el EDI.
4.
Registro de
Banderas.
OF (Overflow, desbordamiento). Indica
desbordamiento de un bit
de orden alto (mas a la izquierda) después de una
operación aritmética.
DF (dirección). Designa la
dirección hacia la izquierda o hacia la derecha para mover o comparar cadenas
de caracteres.
IF (interrupción). Indica que
una interrupción externa, como la entrada desde el teclado, sea procesada o
ignorada.
TF (trampa). Permite la
operación del procesador en modo de un paso. Los programas depuradores, como el
DEBUG, activan esta bandera de manera que usted pueda avanzar en la ejecución
de una sola instrucción a un tiempo, para examinar el efecto de esa instrucción
sobre los registros de memoria.
SF (signo). Contiene el
signo resultante de una operación aritmética (0 = positivo y 1 = negativo).
ZF (cero). Indica el resultado de una operación aritmética o
de comparación (0 = resultado diferente de cero y 1 = resultado igual a cero).
AF (acarreo auxiliar). Contiene un
acarreo externo del bit 3 en un dato de 8 bits para aritmética especializada.
PF (paridad). Indica
paridad par o impar de una operación en datos de 8 bits de bajo orden (mas a la
derecha).
CF (acarreo). Contiene el
acarreo de orden mas alto (mas a la izquierda) después de una operación
aritmética; también lleva el contenido del ultimo bit en una operación de
corrimiento o de rotación. Las banderas están en el registro de banderas en las
siguientes posiciones:
Las banderas mas importantes para la programación
en ensamblador son O, S, Z y C, para operaciones de comparación y aritméticas,
y D para operaciones de cadenas de caracteres. Los procesadores 80286 y
posteriores tienen algunas banderas usadas para propósitos internos, en
especial las que afectan al modo protegido. Los procesadores 80286 y
posteriores tienen un registro extendido de banderas conocido como Eflags.
5.
Registro de
Puntero de instrucción
El registro
apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de
dirección de la siguiente instrucción que se ejecuta. El IP esta asociado con
el registro CS en el sentido de que el IP indica la instrucción actual dentro
del segmento de código que se esta ejecutando actualmente. Los procesadores
80386 y posteriores tienen un IP ampliado de 32 bits, llamado EIP.
En el
ejemplo siguiente, el registro CS contiene 25A4[0]H y el IP contiene 412H. Para
encontrar la siguiente instrucción que será ejecutada, el procesador combina
las direcciones en el CS y el IP:
Segmento de
dirección en el registro CS: 25A40H Desplazamiento de dirección en el registro
IP: + 412H Dirección de la siguiente instrucción: 25E52H
6. Registros de PILA
-SP- Stack Pointer: Se traduce
como puntero de pila y es el que se reserva el procesador para uso propio en
instrucciones de manipulado de pila. Por lo general , el programador no debe
alterar su contenido.
-BP- Base pointer: Se usa como
registro auxiliar. El programador puede usarlo para su provecho.
Fuentes Consultadas
No hay comentarios:
Publicar un comentario