REGISTROS INTERNOS DEL
PROCESADOR.
Los registros del procesador se emplean
para controlar instrucciones en ejecución, manejar direccionamiento de memoria
y proporcionar capacidad aritmética. Los registros son direccionables por medio
de un nombre. Los bits por convención, se numeran de derecha a izquierda, como
en:
... 15 14 13 12 11
10 9 8 7 6
5 4 3 2 1 0
Registros
de segmento
Un registro de segmento tiene 16 bits de
longitud y facilita un área de memoria para direccionamiento conocida como el
segmento actual.
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, más 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, más 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 el
registro SS. Esta dirección de segmento, más un valor de desplazamiento en el
registro del apuntador de pila (SP), indica la palabra actual en la pila que
está 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 está 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.
Registros
de propósito general.
Los registros de propósito general AX, BX, CX y DX son los caballos de
batalla del sistema. Son únicos en el sentido de que se puede direccionarlos
como una palabra o como una parte de un byte. El último byte de la izquierda es
la parte "alta", y el último byte de la derecha es la parte
"baja". Por ejemplo, el registro CX consta de una parte CH (alta) y
una parte Cl (baja), y usted puede referirse a cualquier parte por su nombre.
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 más
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 el registro de datos. Algunas 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.
Pude usar los registros de propósito
general para suma y resta de cifras de 8, 16 o 32 bits.
Registro
de Apuntador de Instrucciones.
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 está 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 está
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
Registros
Apuntadores.
Los registros SP (apuntador de la pila) Y BP
(apuntador de base) están asociados con el registro SS y permiten al sistema
accesar datos en el segmento de la pila.
Registro
SP: El apuntador de la pila de 16 bits está asociado
con el registro SS y proporciona un valor de desplazamiento que se refiere a la
palabra actual que está 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 está 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.
Registro
de Banderas.
De los 16 bits del registro de banderas,
nueve son comunes a toda la familia de procesadores 8086, y sirven para indicar
el estado actual de la máquina y el resultado del procesamiento. Muchas
instrucciones que piden comparaciones y aritmética cambian el estado de las
banderas, algunas cuyas instrucciones pueden realizar pruebas para determinar
la acción subsecuente. En resumen, los bits de las banderas comunes son como
sigue:
OF
(Overflow, desbordamiento): Indica desbordamiento de
un bit de orden alto (más 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 (más a la derecha).
CF
(acarreo): Contiene el acarreo de orden más alto (más
a la izquierda) después de una operación aritmética; también lleva el contenido
del último 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 más 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.
Registros
Índice.
Los registros SI y DI están
disponibles para direccionamiento indexado y para sumas y restas.
Registro
SI: El registro índice fuente de 16 bits es requerido
por algunas operaciones con cadenas (de caracteres). En este contexto, el SI está
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 está
asociado con el registro ES. Los procesadores 80386 y posteriores permiten el
uso de un registro ampliado de 32 bits, el EDI.
Comentarios
Publicar un comentario