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

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

El sistema maneja de manera automática este registro.. los cuales son datos y direcciones transmitidos vía la pila. que son los 16 bits del registro de banderas y que por convenio los bits de un registro se ordenan de derecha a izquierda.PF . 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.OF DF IF TF SF ZF ..Registro SI: El registro índice fuente de 16 bits es requerido por algunas operaciones con cadenas de caracteres.. El SI está asociado con el registro DS. Registro BP: El apuntador base de 16 bits facilita la referencia de parámetros. Registro DI: El registro índice destino también es requerido por algunas operaciones con cadenas de caracteres. es decir. [editar] Registros de Banderas Es un registro de 16 bits. [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. . la posición 0 la encontraremos a la derecha y la posición 15 a la izquierda.AF . de los cuales nueve sirven para indicar el estado actual de la máquina y el resultado del procesamiento. 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.CF Los bits de las banderas son las siguientes: .

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

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

Sign up to vote on this title
UsefulNot useful