segmentacion

28
 Arquitectur a del 8086/8088 Organización de Computadoras El 8086

Upload: heribertobretado

Post on 12-Oct-2015

8 views

Category:

Documents


0 download

TRANSCRIPT

  • 5/22/2018 Segmentacion

    1/28

    Arquitectura del 8086/8088

    Organizacin de ComputadorasEl 8086

  • 5/22/2018 Segmentacion

    2/28

    Arquitectura en pipeline Los procesadores previos al 8086, estaban limitados en

    su desempeo por la necesidad de realizar los dospasos principales de ejecucin del procesador:Fetch/Execute, en forma secuencial. Es decir, no se puede

    ejecutar una instruccin hasta que se traiga de memoria (Fetch);y no podan traerse instrucciones de memoria mientrasejecutaba una instruccin, pues el procesador estaba ocupado.

    Resumiendo, un alto porcentaje del tiempo, elprocesador estaba ocupado haciendo Fetch, cuando su

    funcin debiera ser ejecutar las instrucciones. Lacapacidad de ejecutar instrucciones slo se ocupaba enun bajo porcentaje.

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    3/28

    Arquitectura en pipeline Para solucionar sto, Intel desarroll la arquitectura en

    pipelinedelFetch/Execute, en la cual simplemente sedivide la tarea en dos secciones:

    una encargada del Fetch (BIU)

    y otra del Execute (EU). De esta manera, existen circuitos separados para

    cada funcin, los cuales trabajan en paralelo. Si bien el proceso an es secuencial, solamente al

    principio se requiere desperdiciar tiempo en el Fetch. A partir de ah, Fetch va adelante delExecute, y trae

    instrucciones al procesador mientras este ejecuta lasanteriores.

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    4/28

    Arquitectura del 8086/8088

    El 8086

    Estos microprocesadorestiene 2 procesadoresconectados internamente,estos procesadores son:

    EUUnidad de ejecucin(Execution Unit).

    BIUUnidad de interfaz con elBus (Bus Interface Unit).

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    5/28

    La unidad de ejecucin (EU)

    La unidad de ejecucin (EU) se encarga de realizar las operacionesaritmticas y lgicas, adems de proporcionar las direccioneslgicas al BIU --una direccin lgica est formada de dosdirecciones, la primera indica el segmento en el cual se esttrabajando y la otra indica el offset, o desplazamiento, de estesegmento; esto es segment:offset --.

    La EU tiene una unidad aritmtica lgica (ALU) de 16 bits, unregistro de banderas y un conjunto de registros de propsitogeneral. El registro de banderas contiene 6 banderas de estado(que la EU manipula para indicar el estado del resultado de una

    operacin lgica o aritmtica) y 3 banderas de control que sepueden manipular por los programas para alterar las operacionesdel procesador .

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    6/28

    La Unidad de Interfasecon el Bus (BIU)

    Es la responsables de la comunicacin externa delprocesador. Esta unidad de proceso se encarga detraducir las direcciones lgicas a direcciones fsicas de

    la memoria con ayuda de los registros de segmento DS,SS, ES, CS e IP.

    Para convertir una direccin lgica en una direccinfsica el BIU corre el valor del registro de segmento 4posiciones a la izquierda (que es equivalente amultiplicar por 16h) y suma el valor del offsetparaobtener un valor de 20 bits necesarios, como se muestraen la figura.

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    7/28

    MODELO DE PROGRAMACIN

    DEL 8086.

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    8/28

    El modelo de programacin del 8086

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    9/28

    Registros de datos o de propsito

    generalAX, BX, CX, DX: pueden utilizarse bien como registros de 16 bits ocomo dos registros separados de 8 bits (byte superior e inferior) cambiandola X por H o L segn queramos referirnos a la parte alta o bajarespectivamente. Por ejemplo,

    AX se descompone en AH (parte alta) y AL (parte baja). Evidentemente,

    cualquier cambio sobre AH o AL altera AXAX = Acumu lador .

    Es el registro principal, es utilizado en las instrucciones de multiplicacin ydivisin y en algunas instrucciones aritmticas especializadas, as como enciertas operaciones de carcter especfico como entrada, salida ytraduccin. Obsrvese que el 8086 es suficientemente potente para realizarlas operaciones lgicas, la suma y la resta sobre cualquier registro dedatos, no necesariamente el acumulador.

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    10/28

    Registros de propsito general

    El 8086

    BX = Base.Se usa como registro base para referenciar direcciones de memoria

    con direccionamiento indirecto, manteniendo la direccin de la base ocomienzo de tablas o matrices. De esta manera, no es preciso indicar unaposicin de memoria fija, sino la nmero BX(as, haciendo avanzar deunidad en unidad a BX, por ejemplo, se puede ir accediendo a un granbloque de memoria en un bucle).

    CX = Con tador.Se utiliza comnmente como contador en bucles y operaciones

    repetitivas de manejo de cadenas. En las instrucciones de desplazamiento yrotacin se utiliza como contador de 8 bits.

    DX = Datos .Usado en conjuncin con AX en las operaciones de multiplicacin ydivisin que involucran o generan datos de 32 bits. En las de entrada ysalida se emplea para especificar la direccin del puerto E/S.

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    11/28

    Registros de segmento:Definen reas de 64 Kb dentro del espacio de direcciones de 1 Mb del 8086. Estas

    reas pueden traslaparse total o parcialmente. No es posible acceder a una posicinde memoria no definida por algn segmento: si es preciso, habr de moverse alguno.

    CS = Registro de segmento d e cdigo (cod e segment) .Contiene la direccin del segmento con las instrucciones del programa. Los

    programas de ms de 64 Kb requieren cambiar CS peridicamente.

    DS = Registro de segmento d e datos (data segment).Segmento del rea de datos del programa.

    SS = Registro de segmento de pila (stack segm ent).Segmento de pila.

    ES = Registro de segm ento extra (extra segment).Segmento de ampliacin para zona de datos. Es extraordinariamente til

    actuando en conjuncin con DS: con ambos se puede definir dos zonas de 64 Kb,tan alejadas como se desee en el espacio de direcciones, entre las que se puedenintercambiar datos

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    12/28

    Registros punteros de pila

    SP = Pun tero de pi la (stack po inter).Apunta al inicio de la pila. Utilizado en las

    instrucciones de manejo de la pila.BP = Puntero b ase (base po inter).

    Es un puntero de base, que apunta a una zona dentrode la pila dedicada al almacenamiento de datos (variables locales yparmetros de las funciones en los programas compilados).

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    13/28

    Puntero de instrucciones o contador deprograma

    El 8086

    IP = Pun tero de instru ccin (instr uc t ion po inter).Marca el desplazamiento de la instruccin en curso dentro del segmento de

    cdigo. Es automticamente modificado con la lectura de una instruccin.

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    14/28

    Registros ndices:

    El 8086

    SI = nd ice fuente (sour ce index ).Utilizado como registro de ndice en ciertos modos de

    direccionamiento indirecto, tambin se emplea para guardar un

    valor de desplazamiento en operaciones de cadenas.

    DI = nd ice d estino (des tinatio n ind ex).Se usa en determinados modos de direccionamiento indirecto

    y para almacenar un desplazamiento en operaciones con cadenas.

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    15/28

    Registro de estadoo de indicadores (flags)

    El 8086

    Es un registro de 16 bits de los cuales 9 son utilizados para indicardiversas situaciones durante la ejecucin de un programa.

    Los bits 0, 2, 4, 6, 7 y 11 son indicadores de condicin, que reflejanlos resultados de operaciones del programa

    los bits del 8 al 10 son indicadores de control y el resto no se

    utilizan. Estos indicadores pueden ser comprobados por las instrucciones de

    salto condicional, lo que permite variar el flujo secuencial delprograma segn el resultado de las operaciones.

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    16/28

    Bit

    Seala desbordamiento aritmticoDesbordamiento (Overflow Flag")OF

    Indica la direccin de las operaciones.Direccin ("Direction Flag")DF

    Este bit controla el estado del sistema deinterrupciones enmascarables . Cuando estactivo (1) permite las interrupciones; elestado inactivo (0) las deshabilita.

    Interrupcin ("Interrupt Flag")IF

    Si est activo, el procesador generaautomticamente una interrupcin despusde la ejecucin de cada instruccin, lo quepermite controlar paso a paso la ejecucin delprograma. Este bit debe estar normalmenteinactivo (a 0).

    Detencin ("Trap Flag")TF

    Si est activo indica que el resultado deoperacin o de comparacin son negativos.

    Signo ("Sign Flag")SF

    Est activo si el resultado de operacin escero o resultado de comparacin igual.Cero ("Zero Flag")ZF

    Indicador de ajuste en operacionesaritmticas con cantidades BCD

    Acarreo auxiliarAF

    Si est activo Indica un nmero par de bitsactivos (bits cuyo contenido es 1). Estainformacin es til cuando el procesadorcontrola transmisiones de datos.

    Paridad ("Parity Flag")PF

    Indicador de arrastre del bit de mayor orden,que puede ocurrir en las operacionesaritmticas suma y resta.Acarreo ("Carry Flag")CF

    UsoIndicador de:

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    17/28

    NV ("No overflow")OV ("Overflow")DesbordamientoOF

    UP incrementoDN ("Down") decrementoDireccinDF

    DI ("Disabled Interrupt") desactivadaEI ("Enabled Interrupt") activaInterrupcinIF

    PL ("Plus") positivoNG ("Negative") negativoSignoSF

    NZ ("No Zero")ZR ("Zero")CeroZF

    NA ("No Auxiliar")AC ("Auxiliar Carry")Acarreo auxiliarAF

    PO ("Parity Odd") paridad imparPE ("Parity Even") paridad parParidadPF

    NC ("No Carry")CY ("Carry yes")AcarreoCF

    Indicativo si bit 0Indicativo si bit 1Indicador de:Bit

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    18/28

    El 8086

    Segmentacin de la Memoria en el 8086

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    19/28

    SEGMENTACIN

    El 8086

    Direccin lgica

    Registro de segmentoDesplazamiento

    Direccin de segmento

    Direccin fsica

    CPU

    SEGMENTO

    Memoria

    0

    FFFFF

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    20/28

    Segmento de Memoria

    Un segmento es un reacontinua de memoria que puede

    tener hasta 64K-bytes, quedebe comenzar en una localidadde memoria cuya direccin sealmite de 16 bytes (cantidaddenominadaprrafo) y quepuede traslaparse con otros

    segmentos.

    SEGMENTO

    Memoria

    0

    FFFFF

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    21/28

    El segmento de cdigo(tiene como base elcontenido del registro CS).

    En este segmento se encuentran lasinstrucciones que forman el programa. Para

    acceder a los datos contenidos en l, se usa elregistro IP como desplazamiento.

    El segmento de datos(que tiene como base elregistro DS).

    Contiene los datos que utiliza el programa(variables, etc.) Para acceder a los datoscontenidos en l, se suele utilizar los registrosSI y DI como desplazamiento.

    El 8086

    Segmentos de Memoria

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    22/28

    Segmentos de Memoria- El segmento de pi la (con SS como base).- En l se desarrolla la pila del programa, utilizada para

    almacn temporal de datos, llamadas a funciones, etc.Debe estar presente en todos los programas EXE de

    forma obligada. Se utiliza el registro SP para acceder alos datos de este segmento.

    - El segmento extra (con ES como base).- Su uso es opcional, y en l se encuentra un segmento

    definido por el usuario y que, regularmente, contienedatos adicionales. Al igual que ocurre con el segmentode datos, para acceder a los datos contenidos en l, sesuelen utilizar los registros SI y DI.

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    23/28

    SEGMENTACIN

    El 8086

    CS

    DS

    SS

    ES

    STACK

    SEGMENTO EXTRADE DATOS

    SEGMENTO DEDATOS

    SEGMENTO DECDIGO

    CS

    OTRO SEGMENTO

    SEGMENTO DECDIGO

    PROGRAMA

    MEMORIAMEMORIA

    TRASLAPE DE SEGMENTOS

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    24/28

    SEGMENTACIN

    El 8086

    02000

    SEGMENTO DECDIGORELOCALIZADO

    SEGMENTO DECDIGO EN CURSO

    PROGRAMA

    MEMORIA

    Relocalizacin de un programa usando el registro CS

    PROGRAMA

    600

    1A300600

    nuevo (CS)=1A30

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    25/28

    El 8086

    Cada localidad de memoria tiene dos tipos de direcciones :Direccin Fsica y Direccin Lgica o efectiva

    Una direccin Fsica es el valor nico de 20 bits que identifica lalocalizacin de cada byte en el espacio de memoria de 1 Mbyte.

    Los programas tratan con direccin Lgicas mas que con la direccinFsica.

    Para cualquier localidad de memoria, el valor base del segmentoubica el primer byte del contenido del segmento y el valor del offset

    es la distancia, en bytes , de la localizacin destino del principio delsegmento.

    Los valores de la base del Segmento y del offset son cantidades nosignadas de 16 bits; la direccin del byte ms bajo del segmentotiene un offset 0.

    Direccin Fsica y Direccin Lgica

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    26/28

    Formacin de una Direccin Fsica

    El 8086

    4 bitsDireccin desegmento

    Direccin efectiva,lgica u offsetdesplazamiento

    Direccin fsica

    EL REGISTRO DESEGMENTO SEDESPLAZA 4 BITSHACIA LAIZQUIERDA(MULTIPLICACINx16 o 10H)

    20 BITS

    0000

    Siempre que una memoria es accesada , se genera unadireccin fsica a partir de la direccin lgica.

    +

    Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    27/28

    Formacin de una Direccin Fsica

    El 8086Organizacin de Computadoras

  • 5/22/2018 Segmentacion

    28/28

    Formacin de una Direccin Fsica

    El 8086

    Por Ejemplo:

    Si la direccin base del segmento es2915h, entonces las direcciones eneste segmento inician en 2915:0000y van hasta 2915:FFFF

    Organizacin de Computadoras