You are on page 1of 5

Registros

Registros de propósito general

AH
BHALAX (Acumulador) CH DH Registros índices BL CL DL BX (Base) CX (Contador) DX (Datos)

SI Source Index (Índice origen)DI Destination Index (Índice Destino) BP Base Pointer (Puntero Base) SP Stack Pointer (Puntero de Pila) Registro de Bandera -ODITSZ-A-P-CFlags (Banderas)R e gi st r o s d e S e g m e n t o sCS Code Segment (Segmento de Código)DS ES SS Registro apuntador de instrucciones Instruction Pointer Data Segment (Segmento de Datos) ExtraSegment (Segmento Extra) Stack Segment (Segmento de Pila)

IP

y se emplean para controlar instrucciones en ejecución. BX. Registro CX: El registro CX es conocido como el registro contador. es utilizado para operaciones que implican entrada/salida y la mayor parte de la aritmética. Los registros del procesador. y las operaciones de multiplicación y división con cifras grandes suponen al DX y AX trabajando juntos. EX y DX son los caballos de fuerza del sistema. se dedican a almacenar posiciones de memoria ya que el acceso a los registros es mucho mas rápido que los accesos a memoria. [editar] Registros de Propósito General Los registros de propósito general AX. pero ampliados a 16 bits. haciendo más difícil la organización de los registros para emplearlos con valores temporales. Los registros de datos se usan a veces de forma implícita por las instrucciones. Registro BX: El registro BX es el registro base. Dado que estos registros se pueden utilizar "como deseamos" (dentro de la tipologia de los datos). Registro AX: El registro AX es el registro acumulador. Algunas operaciones de entrada/salida requieren su pulso. . y de hecho son compatibles a nivel de ensamblador con el i8080. Registro DX: El registro DX es el registro de datos. y es el único registro de propósito general que puede ser un índice para direccionamiento indexado. existe una definición para cada uno de ellos según la función que desarrollen y es recomendable utilizar-los adecuadamente según esa definición . El conjunto de registros también es similar al del i8080. Tanto el i8086 como el i8088 tienen cuatro registros generales de 16 bits. [editar] Registros Índice Los registros SI y DI disponibles para direccionamiento indexado y para sumas y restas. optimizando así el código. y tienen cuatro registros índice de 16 bits (incluyendo el puntero de pila). Los registros son direccionables por medio de un nombre. CX.Modelo de los registros Los registros del i8086 e i8088 se basaron en el diseño del Intel 8080 y el Intel 8085. Puede contener un valor para controlar el número de veces que un ciclo se repite o un valor para corrimiento de bits. manejar direccionamiento de memoria y proporcionar capacidad aritmética. que también pueden ser accedidos como ocho registros de 8 bits. Son únicos en el sentido de que se les puede direccionar como una palabra o como un byte. ya que algunas instrucciones del procesador 8086 se utilizan solamente para un registro específico. También es común emplear el BX para cálculos.

de los cuales nueve sirven para indicar el estado actual de la máquina y el resultado del procesamiento. Registro BP: El apuntador base de 16 bits facilita la referencia de parámetros.AF . la posición 0 la encontraremos a la derecha y la posición 15 a la izquierda. . [editar] Registros Apuntadores Los registros SP (apuntador de pila) y BP (apuntador base) están asociados con el registro SS y permiten al sistema acceder a datos en el segmento de la pila. Registro SP: El apuntador de 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.. es decir. [editar] Registros de Banderas Es un registro de 16 bits. El SI está asociado con el registro DS. Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. El DI está asociado con el registro ES. Veamos como se reparten y que bits son los que sirven para indicar el estado actual de la máquina tal y como hemos comentado anteriormente: Debemos tener en cuenta que esta tabla contiene 16 posiciones (de 0 a 15). Muchas instrucciones aritméticas y de comparación cambian el estado de las banderas y apoyándose de ellas determinan la acción subsecuente. los cuales son datos y direcciones transmitidos vía la pila.OF DF IF TF SF ZF .CF Los bits de las banderas son las siguientes: .PF . El sistema maneja de manera automática este registro..Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas de caracteres.. que son los 16 bits del registro de banderas y que por convenio los bits de un registro se ordenan de derecha a izquierda.

La bandera DF se controla con las instrucciones STD y CLD. indica la dirección de una instrucción que es buscada para su ejecución. desbordamiento): Indica desbordamiento del bit de mayor orden después de una operación aritmética de números con signo (1=existe overflow. IF (interrupción): Indica que una interrupción externa sea procesada o ignorada (1=habilita la interrupción. PF (paridad): Indica paridad par o impar en una operación de datos de ocho bits (0=paridad impar. para aritmética especializada. genera una referencia a la localidad de un byte específico en el segmento de datos. [editar] Registros de Segmento Definen áreas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. AF (acarreo auxiliar): Contiene un acarreo externo del bit 3 en un dato de 8 bits. No es posible acceder a una posición de memoria no definida por algún segmento: si es preciso. Para propósitos de programación normal.OF (overflow. Esta dirección. no se toma en cuenta esta bandera. más un valor de desplazamiento en el registro apuntador de instrucción (IP). ZF (cero): Indica el resultado de una operación aritmética o de comparación (0=resultado diferente de cero. Esta dirección de segmento. también almacena el contenido del último bit en una operación de corrimiento o de rotación. . Estas áreas pueden solaparse total o parcialmente. CF (acarreo): Contiene el acarreo de los bits de mayor orden después de una operación aritmética. más un valor de desplazamiento en una instrucción. 1=resultado igual a cero). Registro CS: El DOS almacena la dirección inicial del segmento de código de un programa en el registro CS. 1=paridad par). 0=no existe overflow). Para operaciones sin signo. 0=deshabilita la interrupción). habrá de moverse alguno. Registro DS: La dirección inicial de un segmento de datos de programa es almacenada en el registro DS. no se necesita referenciar el registro CS. 1=negativo). DF (dirección): Controla la selección de incremento o decremento de los registros SI o DI en las operaciones con cadenas de caracteres (1=decremento automático. TF (trampa): Permite la operación del procesador en modo de depuración (paso a paso) SF (signo): Contiene el signo resultante de una operación aritmética (0=positivo. El estado de la bandera IF se controla con las instrucciones STI y CLI. 0=incremento). Esta bandera se prueba con las instrucciones DAA y DAS para ajustar el valor de AL después de una suma o resta BCD.

Esta dirección de segmento. no se necesita referenciar el registro SS. y de hecho. En lugar de suministrar los bits faltantes. este esquema de registros solapados hace difícil expandir el mapa de memoria a más de 1 MB. Peor aún. Esto suele ser considerado como un mal diseño. ya que sus registros son de 16 bits. indica la palabra actual en la pila que está siendo direccionada. e incluso útil en el lenguaje ensamblador. La mayoría de las instrucciones solo pueden acceder a una posición de memoria. es necesario emplear registros de segmento para acceder a toda la memoria. [editar] Patillaje . por lo que un operando debe ser forzosamente un registro. El resultado se almacena en uno de los operandos. Debido a que estos procesadores pueden direccionar hasta 1 MB de memoria. El registro ES está asociado con el registro DI (Índice). como la mayoría de los procesadores segmentados. provoca confusión cuando se hace un uso extensivo de los punteros (como en el lenguaje C). Registro ES: Algunas operaciones con cadenas de caracteres utilizan el registro extra de segmento para manejar el direccionamiento de memoria. aunque puede ser aceptable. Por el contrario.Registro SS: El registro SS permite la colocación en memoria de una pila. ES y SS). que se pueden establecer a partir de los registros índice. el i8086 y el i8088 desplazan un registro de segmento 4 bits hacia la izquierda y lo suman a la dirección de memoria. más un valor de desplazamiento en el registro del apuntador de la pila (SP). para almacenamiento temporal de direcciones y datos. esto se cambió en el Intel 80286. Un programa que requiere el uso del registro ES puede inicializarlo con una dirección de segmento fgdf]] de 64 Kbytes e interrupciones vectorizadas fijas. DS. siendo el resultado la dirección efectiva. debido a que es posible que dos punteros con diferentes valores apunten a la misma dirección de memoria. Los i8086 e i8088 presentan cuatro registros de segmento (CS. El DOS almacena la dirección de inicio del segmento de pila de un programa en el registro SS. Para propósitos de programación normal. para lo que son necesarios 20 bits.