Registros de Emu8086

 2.1. Registros de datos 

Los registros de datos son de 16 bits, aunque están divididos. lo que permite su acceso en 8 bits. Estos registros son de propósito general aunque todos tiene alguna función por defecto.

AX (acumulador) se usa para almacenar el resultado de las operaciones, es al único registro con el que se puede hacer divisiones y multiplicaciones. Puede ser accedido en 8 bits como AH para la parte alta (HIGH) y AL (LOW) para la parte baja. 

BX (registro base) almacena la dirección base para los accesos a memoria. También puede accederse como BH y BL, parte alta y baja respectivamente. 

CX (contador) actúa como contador en los bucles de repetición. CL (parte baja del registro) almacena el desplazamiento en las operaciones de desplazamiento y rotación de múltiples bits. 

DX (datos) es usado para almacenar los datos de las operaciones. 

2.2. Registros de segmento 

Los registros de segmento son de 16 bits (como ya se dicho antes) y contienen el valor de segmento. CS (segmento de código) contiene el valor de segmento donde se encuentra el código. Actúa en conjunción con el registro IP (que veremos más adelante) para obtener la dirección de memoria que contiene la próxima instrucción. Este registro es modificado por las instrucciones de saltos lejanos.

DS (segmento de datos) contiene el segmento donde están los datos. 

ES (segmento extra de datos) es usado para acceder a otro segmento que contiene más datos. 

SS (segmento de pila) contiene el valor del segmento donde está la pila. Se usa conjuntamente con el registro SP para obtener la dirección donde se encuentra el último valor almacenado en la pila por el procesador.

 2.3. Registros de índice Estos registros son usados como índices por algunas instrucciones. También pueden ser usados como operandos (excepto el registro IP). 

IP (índice de programa) almacena el desplazamiento dentro del segmento de código. Este registro junto al registro CS apunta a la dirección de la próxima instrucción. No puede ser usado como operando en operaciones aritmético/lógicas.

SI (índice de origen) almacena el desplazamiento del operando de origen en memoria en algunos tipos de operaciones (operaciones con operandos en memoria). 

DI (índice de destino) almacena el desplazamiento del operando de destino en memoria en algunos tipos de operaciones (operaciones con operandos en memoria). 

SP (índice de pila) almacena el desplazamiento dentro del segmento de pila, y apunta al último elemento introducido en la pila. Se usa conjuntamente con el registro SS. 

BP (índice de base) se usa para almacenar desplazamiento en los distintos segmentos. Por defecto es el segmento de la pila.

2.4. Registro de estado

El registro de estado contiene una serie de banderas que indican distintas situaciones en las que se encuentra el procesador

OF (desbordamiento) es el principal indicador de error producido durante las operaciones con signo. Vale 1 cuando: 

• La suma de dos números con igual signo o la resta de dos números con signo opuesto producen un resultado que no se puede guardar (más de 16 bits). 

• El bit más significativo (el signo) del operando ha cambiado durante una operación de desplazamiento aritmético. 

• El resultado de una operación de división produce un cociente que no cabe en el registro de resultado. 

DF (dirección en operaciones con cadenas) si es 1 el sentido de recorrido de la cadena es de izquierda a derecha, si es 0 irá en sentido contrario. 

IF (indicador de interrupción) cuando vale 1 permite al procesador reconocer interrupciones. Si se pone a 0 el procesador ignorará las solicitudes de interrupción.

TF (modo traza) indica al procesador que la ejecución es paso a paso. Se usa en la fase de depuración. 

SF (indicador de signo) solo tiene sentido en las operaciones con signo. Vale 1 cuando en una de estas operaciones el signo del resultado es negativo. 

ZF (indicador de cero) vale 1 cuando el resultado de una operación es cero. 

AF (acarreo auxiliar) vale 1 cuando se produce acarreo o acarreo negativo en el bit 3. 

PF (paridad) vale 1 si el resultado de la operación tiene como resultado un número con un número par de bits a 1. Se usa principalmente en transmisión de datos. 

CF (bit de acarreo) vale 1 si se produce acarreo en una operación de suma, o acarreo negativo en una operación de resta. Contiene el bit que ha sido desplazado o rotado fuera de un registro o posición de memoria. Refleja el resultado de una comparación

Comentarios

Entradas más populares de este blog

Fractal

Pila semántica en un analizador sintáctico