Registros del Procesador
Registro Apuntador de Instrucciones (IP)
El registro apuntador de instrucciones (IP) de 16 bits contiene el desplazamiento de dirección de la siguiente instrucción que se ejecuta.
Registros de Pila y Base (SP y BP)
Los registros SP (apuntador de la pila) y BP (apuntador de base) están asociados con el registro SS y permiten al sistema acceder datos en el segmento de la pila.
Registro SP (Apuntador de Pila)
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.
Registro BP (Apuntador de Base)
El BP de 16 bits facilita la referencia de parámetros, los cuales son datos y direcciones transmitidos vía pila.
Registros Índice (SI y DI)
Los registros SI y DI están disponibles para direccionamiento indexado y para sumas y restas.
Registro SI (Índice Fuente)
El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas (de caracteres).
Registro DI (Índice Destino)
El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres.
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.
Banderas Comunes (Familia 8086)
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.
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.
Segmentación de Memoria
Concepto de Segmento
Un segmento es un área especial en un programa que inicia en un límite de un párrafo, esto es, en una localidad divisible entre 16, o 10 hexadecimal.
Un segmento en modo real puede ser de hasta 64K. Se puede tener cualquier número de segmentos.
Tipos de Segmentos
Segmento de Código (CS)
El segmento de código (CS) contiene las instrucciones de máquina que son ejecutadas. Comúnmente, la primera instrucción ejecutable está en el inicio del segmento, y el sistema operativo enlaza a esa localidad para iniciar la ejecución del programa.
Segmento de Datos (DS)
El segmento de datos (DS) contiene datos, constantes y áreas de trabajo definidos por el programa. El registro DS direcciona el segmento de datos.
Segmento de Pila (SS)
La pila contiene los datos y direcciones que usted necesita guardar temporalmente o para uso de sus «llamadas» a subrutinas. El registro de segmento de la pila (SS) direcciona el segmento de la pila.
Desplazamiento
En un programa, todas las localidades de memoria están referidas a una dirección inicial de segmento.
Campo de Operación y Ciclo de Instrucción
Campo de Operación de una Instrucción
El campo de operación de una instrucción especifica la operación que se va a ejecutar.
Ciclo de Instrucciones de la Unidad de Control
La unidad de control de una computadora está diseñada para recorrer un ciclo de instrucciones que se divide en tres fases principales:
- Búsqueda de la instrucción de la memoria.
- Decodificar la instrucción.
- Ejecutar la instrucción.
Modos de Direccionamiento
Propósito de los Modos de Direccionamiento
Las computadoras utilizan técnicas de modo de direccionamiento para acomodar una o ambas de las siguientes consideraciones:
- Proporcionar al usuario versatilidad de programación.
- Reducir la cantidad de bits en el campo de direccionamiento de la instrucción.
Tipos de Modos de Direccionamiento
Modo Implícito
En este modo se especifican los operandos en forma implícita en la definición de la instrucción.
Modo Inmediato
En este modo se especifica el operando en la instrucción misma. En otras palabras, una instrucción de modo inmediato tiene un campo de operando, en lugar de un campo de dirección.
Modo de Registro
En este modo, los operandos están en registros que residen dentro de la CPU. Se selecciona el registro particular de un campo de registro en la instrucción. Un campo de k bits puede especificar cualquiera de 2k registros.
Modo Indirecto por Registro
En este modo la instrucción especifica un registro en la CPU cuyo contenido proporciona la dirección del operando en la memoria.
Modo de Direccionamiento Directo
En este modo la dirección efectiva es igual a la parte de dirección de la instrucción. El operando reside en memoria y su dirección la proporciona en forma directa el campo de dirección de la instrucción.
Modo de Direccionamiento Indirecto
En este modo, el campo de dirección de la instrucción proporciona la dirección donde se almacena la dirección efectiva en la memoria.
Modo de Direccionamiento Indexado
En este modo el contenido de un registro índice se suma a la parte de dirección de la instrucción para obtener la dirección efectiva.