unidad 1 microprocesadores

Upload: javier-perez-yupan

Post on 21-Feb-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 Unidad 1 Microprocesadores

    1/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 1

    MICROPROCESADORES

    Universidad Nacional Federico

    VillarrealIng. Javier Barriga Hoyle

    Unidad 1

    Introduccin almicroprocesador

  • 7/24/2019 Unidad 1 Microprocesadores

    2/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 2

    Contenido

    1. Introduccin.

    2. Definicin y partes del microprocesador (P).

    3. Arquitectura interna del P 8086/8088.

    4. Arquitectura del sistema P.

    5. La memoria y el P.

    6. Modos de direccionamiento.

    7. Direccionamiento de la Pila.

    1. Introduccin al Procesador

    Actualmente casi cualquier equipo elctrico

    moderno contiene uno o se ha utilizado uno

    para su diseo.

    Ha revolucionado casi todos los aspectos denuestras vidas.

    Ha mejorado la funcionalidad de los sistemas

    actuales (Informtica, Biomdica, Comercio

    Electrnico, etc.) y a trado otros al mundo.

    Siendo la microcomputadora una de las

    principales aplicaciones de ste.

  • 7/24/2019 Unidad 1 Microprocesadores

    3/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 3

    1. Introduccin al Procesador

    El microprocesador surge como el primer

    CI altamente complejo, relativamente fcil

    de utilizar y totalmente estndar.

    Tubo

    de

    vaco

    Transistor

    uP

    8088

    Circuito Integrado

    1. Introduccin al Procesador

    La unin complejidad-programabilidad se

    ha extendido a dos famosos derivados del

    Microprocesador: Microcontrolador (C) y

    Procesador Digital de Seal (DSP).

    Microcontrolador

    DSP

    Procesador de voz

  • 7/24/2019 Unidad 1 Microprocesadores

    4/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 4

    1. Introduccin al Procesador

    Tambin ha sido aplicada exitosamente

    en el otro componente-paradigma

    totalmente diferente: la FPGA.

    FPGA

    2.1 Qu es un Procesador?

    Circuito integrado digital de alta escala deintegracin. Por ejemplo: Pentium IV. Tecnologa 0.13 micrones.

    Contiene aprox. 55 millones detransistores.

    Dimensin aprox. 130 mm2.

    Totalmente programable.

    Opera a grandes velocidades ( 3 GHz).

    Parte principal de las microcomputadoras.

  • 7/24/2019 Unidad 1 Microprocesadores

    5/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 5

    2.1 Qu es un Procesador?

    Se programa para realizar funciones especficas

    con los datos e instrucciones.

    Cuando se conecta a un dispositivo de E/S y

    memoria se tiene una microcomputadora.

    2.1 Qu es un Procesador?

    Otras aplicaciones:

    Controladores de buses industriales VME.

  • 7/24/2019 Unidad 1 Microprocesadores

    6/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 6

    2.1 Qu es un Procesador?

    Robtica y control numrico.

    2.1 Qu es un Procesador?

    Biosensores para el control de procesos

    biolgicos.

  • 7/24/2019 Unidad 1 Microprocesadores

    7/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 7

    2.2 Partes de un Procesador

    Unidad

    Aritmtico

    Lgico

    (ALU)

    Unidad

    de

    Registros

    Unidad

    de

    Control

    Figura 1. Elementos bsicos de un Microprocesador.

    2.2 Partes de un Procesador

    Unidad Aritmtico-Lgico (ALU):

    Realiza operaciones aritmticas como suma,

    resta y lgicas como NOT, AND, etc.

    Unidad de Registro: Almacenan temporalmente los datos cuando

    se ejecuta un programa.

    Unidad de Control:

    Genera las seales de temporizacin y

    control para la CPU y los elementos de E/S.

  • 7/24/2019 Unidad 1 Microprocesadores

    8/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 8

    2.2 Partes de un Procesador

    Funciones de la Unidad de control:

    Decodificar las instrucciones.

    Generar la secuencia de microinstrucciones y

    micrordenes asociadas a cada instruccin.

    Microinstruccin: Son cada una de las fases dela ejecucin de una instruccin.

    Micrordenes : Son cada una de las tareas en quese descompone una microinstruccin.

    Gestionar la aceptacin, por parte del P, de

    los comandos del bus de control.

    2.3 Buses de un Procesador

    Microprocesador

    Bus de datos

    Bus de control

    Bus de direcciones

    Figura 2. Buses de un Microprocesador.

  • 7/24/2019 Unidad 1 Microprocesadores

    9/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 9

    2.3 Buses de un Procesador

    Qu es un Bus? Son canales o hilos fsicos por donde fluye la

    informacin digital (0, 1) en forma de seales

    elctricas.

    Bus de datos: Bus bidireccional, sirve para enviar o recibir

    datos desde la memoria o dispositivo de E/S.

    Su tamao determina la arquitectura del

    microprocesador.

    2.3 Buses de un Procesador

    Bus de direccin: Bus unidireccional.

    Slo el P puede seleccionar alguna posicin

    de memoria o dispositivo de E/S. Su nmero de bits determina la capacidad dedireccionamiento. Por ejemplo, Si n es elnmero de bits:

    n = 10; 2n = 210 = 1024 = 1KB

    n = 20; 2n = 220 = 1048576 = 1MB

    n = 30; 2n = 230 = 1048576 = 1GB

  • 7/24/2019 Unidad 1 Microprocesadores

    10/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 10

    3. Arquitectura del P 8086/8088 P 8086:

    Registros de 16 bits.

    Bus de datos: 16 bits.

    Bus de direcciones: 20bits (220 = 1M).

    Memoria total: 1 MB

    Frecuencia: 5, 8 y 10MHz.

    Nmero transistores:29000 (3 micrones).

    Fabricacin: 8/6/78.

    uProcesador

    8086

    (16 bits)

    B. Datos

    B. Direccin

    B. Control

    16 bits

    20 bits

    3. Arquitectura del P 8086/8088

    P 8088: Registros de 16 bits.

    Bus de datos: 8 bits.

    Bus de direcciones de

    20 bits (220 = 1M). Memoria total: 1 MB.

    Frecuencia: 5 y 8 MHz

    Nmero transistores:29000 (3 micrones).

    Fabricacin: 1/6/79.

    uProcesador

    8088

    (16 bits)

    B. Datos

    B. Direccin

    B. Control

    8 bits

    20 bits

  • 7/24/2019 Unidad 1 Microprocesadores

    11/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 11

    3. Arquitectura del P 8086/8088

    AH AL

    BH BL

    CS

    DS

    SS

    ES

    BP

    SI

    CH CL

    DH DL

    AX

    BX

    CX

    DX

    SP

    DI

    Bus

    Control de programa

    Registros generales

    Cola de

    instrucciones

    EU: Unidad de ejecucin BIU: Unidad de interfaz del bus

    ALU: Unidad

    aritmtico - lgico

    CU: Unidad de

    control

    Registro de

    banderas

    IP: Puntero de

    instrucciones

    1

    23

    4

    Unidad

    de

    control

    del bus

    16 bits

    8 bits

    Figura 3. Arquitectura

    interna del uP Intel

    8086/8088.

    3.1 Caractersticas del Procesador

    Unidad de Ejecucin (EU): Ejecuta las instrucciones y las operaciones

    aritmticas y lgicas.

    Contiene la ALU, unidad de control (CU) yvarios registros.

    Unidad de Interfaz del Bus (BIU): Su funcin ms importante es manejar la

    unidad de control del bus, los registros de

    segmentos y la cola de instrucciones.

  • 7/24/2019 Unidad 1 Microprocesadores

    12/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 12

    3.1 Caractersticas del Procesador

    BIU (cont.): Enva las instrucciones y datos a la EU.

    Es capaz de adelantarse y buscar con

    anticipacin instrucciones, de manera que

    siempre haya una cola de instrucciones listas

    para ser ejecutadas.

    3.2 Registros programables

    Registro AX (acumulador): Se usa en instrucciones de multiplicacin,

    divisin y en ciertas instrucciones de carcterespecfico como entrada, salida y traduccin.

    Ejemplo1:

    MOV BX, 3450h ;BX = 3450hMOV AX, 100h ;AX = 100hMUL BX ;Multiplica AX * BX

    ;y el resultado lo almacena en:

    ;AX = Word LSB, y en DX = Word MSB.

    ;Entonces: AX = 5000h y DX = 0034h

  • 7/24/2019 Unidad 1 Microprocesadores

    13/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 13

    3.2 Registros programables Registro AX (cont.):

    Ejemplo 2:

    MOV BX, 100h ;BX = 100hMOV AX, 3450h ;AX = 3450hDIV BX ;Esta instruccin divide AX / BX

    ;Entonces: AX = 0034h y DX = 0050h

    Ejemplo 3:MOV DX, 0300h ; DX = 0300h, Direccin del puerto (IN)

    IN AL, DX ;AL = xxh, almacena dato del puerto.MOV DX, 0301h ; DX = 0301h, puerto de salidaMOV AL, 56h ; AL = 56hOUT DX, AL ; Se enva por el puerto el valor de AL

    3.2 Registros programables

    Registro BX (base):

    Se usa para direccionar memoria en modo de

    direccionamiento indirecto.

    Ejemplo 4:MOV BX, 0500h ; BX = 500h

    MOV AH, [BX] ;AH = 23h

    MOV AL, [BX+2] ;AL = 9Ch

    MOV CX, [BX+1] ; CX = 9C42h

    ADD AX, CX ;AX = AX+CX = BFDEh

    MOV 3[BX], AX ; [503] = BFDE

    23

    42

    9C

    500h

    501h

    502h

    503h

    504hDE

    BF

    Memoria

  • 7/24/2019 Unidad 1 Microprocesadores

    14/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 14

    3.2 Registros programables

    Registro CX (contador): Se emplea como contador en bucles y en

    operaciones de manejo de cadenas.

    Ejemplo 5:

    MOV BX, 808h ; BX = 0808hMOV AH, 0 ;AH = 0MOV CX, 5 ; CX = 5

    L1:ADD AH, [BX] ;AH = AH+[BX]INC BX ; BX = BX + 1LOOP L1 ; CX = CX -1

    ; CX = 0?, No, regresa a L1Memoria

    05

    23

    50

    808h

    809h

    80Ah

    80Bh

    80Ch16

    4E

    3.2 Registros programables

    Registro CX (cont.):

    Ejemplo 6:

    MOV CL, 3 ; CL = 3, veces a rotar.MOV AH, 11100100b ;AH = 0E4h.ROL AH, CL ;AH = 00100111b = 27h.MOV CL, 12 ; CL = 12, veces a rotar.MOV DX, 3456h ; DX = 3456hROR DX, CL ; DX = 4563hMOV CL, 8 ; CL = 8, veces a desplazar.SHR DX, CL ; DX = 0045hMOV CL, 4 ; CL = 4, veces a desplazar.SHL DX, CL ; DX = 0450h

  • 7/24/2019 Unidad 1 Microprocesadores

    15/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 15

    3.2 Registros programables

    Registro DX (datos auxiliar):

    Se emplea junto con AX en las operaciones

    de multiplicacin y divisin que involucran o

    generan datos de 32 bits.

    Para especificar la direccin del puerto en las

    operaciones de entrada (IN AL, DX) y salida

    (OUT DX, AL) de dispositivos perifricos.

    3.3 Registros segmentos

    Registro CS, DS, SS, ES:

    Figura 4. Registros segmentos del P 8086/8088.

    CS

    Segmento

    de Cdigo

    64K

    00000h

    FFFFFh

    IP

    DS

    Segmento

    de Datos

    DI

    SI

    BX

    SS

    Segmento

    de Pila

    SP

    BP

    ES

    Segmento

    Extra

  • 7/24/2019 Unidad 1 Microprocesadores

    16/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 16

    3.3 Registros segmentos

    Registro CS (segmento de cdigo):

    Indica la direccin de inicio del segmento.

    Es una parte de la memoria del computador.

    Contiene los programas y procedimientos

    utilizados por los programas.

    Est limitado a 64KB de longitud para el

    8086/8088 y a 4GB en 80386, 80486 yPentiums.

    3.3 Registros segmentos

    Registro DS (segmento de datos):

    Indica la direccin de inicio del segmento.

    Es una parte de la memoria del computador.

    Contiene los datos a usarse en el programa.

    Se accede a stos datos empleando los

    registros BX, SI o DI (Ej. mov ax, [bx+si]).

    Est limitado a 64K Bytes de longitud para el

    8086/8088 y a 4GB en 80386 hasta Pentiums

  • 7/24/2019 Unidad 1 Microprocesadores

    17/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 17

    3.3 Registros segmentos

    Registro SS (segmento de pila o stack): Indica la direccin de inicio del segmento.

    Es una parte de la memoria del computador.

    Contiene los datos a usarse por la pila (LIFO).

    Utiliza las instrucciones PUSH y POP.

    El registro SP apunta al ltimo dato ingresado

    Est limitado a 64K Bytes de longitud para el8086/8088 y a 4GB en 80386 hasta Pentiums

    El registro BP, tambin direcciona la pila.

    3.3 Registros segmentos

    Registro ES (segmento extra):

    Indica la direccin de inicio del segmento.

    Es una parte de la memoria del computador.

    Contiene los datos a usarse por el rea devideo y manejo de cadenas.

    Puede direccionarse con los registros BX, SI,

    DI o BP usando prefijos (Ej. mov ax, es:[bx]).

    Est limitado a 64K Bytes de longitud para el

    8086/8088 y a 4GB en 80386 hasta Pentiums

  • 7/24/2019 Unidad 1 Microprocesadores

    18/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 18

    3.4 Registros punteros

    Registro IP (puntero de instruccin):

    Marca el desplazamiento de la instruccin en

    curso dentro del segmento de cdigo.

    Opera exclusivamente con el registro CS:IP.

    Se actualiza cada vez que se ejecuta una

    instruccin de lectura o escritura.

    Siempre apunta a la prxima instruccin aejecutarse.

    3.4 Registros punteros

    Registro IP (cont.):Ejemplo:

    30AD:012030AD:012330AD:012530AD:0127

    BA0301B409CD21CD20

    MOV DX, 0103MOV AH, 09INT 21INT 20

    Direccin Cdigo de

    mquina

    Nemnicos

    del Assembler

    CS IP

  • 7/24/2019 Unidad 1 Microprocesadores

    19/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 19

    3.4 Registros punteros

    Registro SP (puntero de pila):

    Apunta a la cima de la pila en el segmento SS

    Se usa en las instrucciones PUSH y POP.

    PUSH AX ; SP = SP 2 (guarda dato en la pila)

    POP AX ; SP = SP + 2 (extrae dato de la pila)

    Registro BP (puntero base de pila)

    apunta a una zona dentro de la pila dedicada

    al almacenamiento de datos.

    Variables locales en los programas compilados.

    3.4 Registros punteros

    Registro SI (ndice fuente): Se utiliza en el modo de direccionamiento

    indirecto. MOV AH, [BX + SI] ;Lee un Byte de la memoria.

    MOV [SI], CX ; Enva dos Bytes a la memoria.

    Tambin se emplea para guardar un valor dedesplazamiento en operaciones de cadenas.

    CLD ; DF = 0, (incrementar SI)

    LEA SI, fuente ; SI = desplazamiento de fuente

    LODS fuente ; AL = fuente

  • 7/24/2019 Unidad 1 Microprocesadores

    20/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 20

    3.4 Registros punteros

    Registro DI (ndice destino):

    Se utiliza en direccionamiento indirecto.

    Se emplea operaciones de cadenas.

    CLD ; DF = 0, (incrementa SI y DI)

    LEA SI, fuente ; SI = direccin de fuente

    LEA DI, destino ; DI = direccin de destino MOV CX, 100 ; CX = 100 Bytes a mover

    REP MOVS [DI],[SI] ; mueve los elementos

    3.5 Registro flag

    Registro de estado o flags:

    CF (Carry Flag): Indica acarreo.

    Es lo llevamos en una suma o resta.

    OF (Overflow Flag): Indica desbordamiento.

    Resultado de una operacin no cabe en el

    tamao del operando destino.

    CFPFAFZFSFTFIFDFOF

    0123456789101112131415

    CFPFAFZFSFTFIFDFOF

    0123456789101112131415

  • 7/24/2019 Unidad 1 Microprocesadores

    21/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 21

    3.5 Registro flag

    Registro de estado o flags (cont.):

    ZF (Zero Flag): Indica resultado 0.

    En las operaciones o comparaciones.

    SF (Sign Flag): Indica el signo

    En las operaciones o comparacin negativa.

    PF (Parity Flag): Indicador de paridad. En operaciones aritmtico-lgicas indica que el

    nmero de bits a uno resultante es par.

    3.5 Registro flag

    Registro de estado o flags (cont.):

    AF (Auxiliary Flag):

    Para ajuste en operaciones BCD.

    DF (Direction Flag): Indica direccin.

    Manipulando bloques de memoria, indica el

    sentido de avance (ascendente/descendente).

    IF (Interrupt Flag): Indica interrupciones.

    Puesto a 1 estn permitidas.

  • 7/24/2019 Unidad 1 Microprocesadores

    22/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 22

    3.5 Registro flag

    Registro de estado o flags (cont.):

    AF (Auxiliary Flag):

    Para ajuste en operaciones BCD.

    DF (Direction Flag): Indica direccin.

    Manejo de cadenas, avance (up/down).

    IF (Interrupt Flag): Indica interrupciones. Puesto a 1 estn permitidas.

    TF (Trap flag): Ejecucin paso a paso.

    3.6 Resumen asignacin de punteros

    El P tiene asignado los punteros a cada

    segmento por defecto.

    Los registros punteros pueden emplearse

    en otros segmentos usando prefijos.MOV AX, SS:[BX]

    MOV CH, ES:[SI]

    MOV DX, DS:[BP]

    A continuacin se muestra un cuadro

    resumen.

  • 7/24/2019 Unidad 1 Microprocesadores

    23/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 23

    3.6 Resumen asignacin de punteros

    Prefijo*defectoPrefijoPrefijoDIPrefijodefectoPrefijoPrefijoSI

    PrefijodefectoPrefijoPrefijoBX

    PrefijoPrefijodefectoPrefijoBP

    NoNoSiNoSP

    NoNoNoSiIP

    ESDSSSCS

    Prefijo*defectoPrefijoPrefijoDIPrefijodefectoPrefijoPrefijoSI

    PrefijodefectoPrefijoPrefijoBX

    PrefijoPrefijodefectoPrefijoBP

    NoNoSiNoSP

    NoNoNoSiIP

    ESDSSSCS

    * Por defecto en el manejo de cadenas

    4. Arquitectura del sistema P

    Segn Vonn Newman, toda computadora

    debe tener:

    ROM RAM E/S

    Bus de direcciones

    Bus de datos

    Bus de control

    Memorias

    MICRO-

    PROCESADOR

    Figura 5. Arquitectura de un sistema basado en P.

  • 7/24/2019 Unidad 1 Microprocesadores

    24/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 24

    5. La memoria y el P

    Memoria Lgica:

    Es el sistema de memoria como lo ve el

    programador o usuario final.

    Realmente es la memoria instalada en la PC.

    Es el mismo en todos los microprocesadores

    INTEL y se numera por bytes.

    En la figura 6, se ilustra el mapa de lamemoria lgica de todos los miembros de la

    familia Intel.

    5. La memoria y el P

    1MB

    4 GB

    16 MB

    FFFFFFFFFE

    FFFFD

    000020000100000

    8 bits

    FFFFFF

    FFFFFEFFFFFD

    000002000001000000

    8 bits

    FFFFFFFFFFFFFFFEFFFFFFFD

    000000020000000100000000

    8 bits

    (a) (b) (c)

    Figura 6. Mapa de memoria lgica:(a) 8086/8088/80186;(b) 80286/80386SX;(c) 80386DX y 80486.

  • 7/24/2019 Unidad 1 Microprocesadores

    25/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 25

    5. La memoria y el P

    Memoria Fsica: Las memorias fsicas de los miembros de la

    familia Intel difieren en ancho. Es decir,depende del bus de datos del Procesador(Figura 7).

    La memoria del 8088 es de 8 bits de ancho,Las memorias del 8086, 80186, 80286 y

    80386SX tienen 16 bits de ancho; lasmemorias del 80386DX, 80486 y Pentium sonde 32 bits de ancho.

    5. La memoria y el P

    Memoria Fsica (cont.):

    La memoria est organizada en bancos de

    memoria:

    Procesador de 8 bits 1 banco de memoria. Procesador de 16 bits 2 bancos de memoria

    y se direccionan por bytes o words.

    Procesador de 32 bits 4 bancos de memoria

    y se direccionan como bytes, words o dobles

    words.

  • 7/24/2019 Unidad 1 Microprocesadores

    26/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 26

    5. La memoria y el P

    FFFFFFFFFEFFFFD

    1MB

    000020000100000

    8 bits

    FFFFFEFFFFFCFFFFFA

    8MB

    000004000002000000

    FFFFFFFFFFFDFFFFFB

    8MB

    000005000003000000

    Banco alto(banco impar)

    Microprocesador

    8088/8086

    Banco bajo(banco par)

    D15 - D8 D7 - D0

    Microprocesador 80186Microprocesador 80286Micropro cesador 80386SXMicropro cesador 80386LS (memoria de 32M byt e)

    Figura 7. Memoria fsica de los Procesadores.

    5. La memoria y el P

    Continuacin.

    FFFFFFFCFFFFFFF8FFFFFFF4

    1MB

    000000080000000400000000

    FFFFFFFDFFFFFFF9FFFFFFF5

    1MB

    000000090000000500000001

    FFFFFFFEFFFFFFFAFFFFFFF6

    1MB

    0000000A0000000600000002

    FFFFFFFFFFFFFFFBFFFFFFF7

    1MB

    0000000B0000000700000003

    Banco 3 Banco 2 Banco 1 Banco 0

    Microprocesador 80386DX

    Microprocesador 80486SX

    Microprocesador 80486DX

    Microprocesador PENTIUM

  • 7/24/2019 Unidad 1 Microprocesadores

    27/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 27

    5.1 La memoria en la Computadora

    Para acceder a la memoria se tiene 2

    formas:

    Modo real: Opera con memoria de 1 MB.

    Slo los P 8086/8088 operan en este modo.

    Modo protegido: Opera por encima de 1

    MB y con toda la memoria instalada. A partir de la 286 todos pueden operar en

    modo real o protegido.

    5.1 La memoria en la Computadora

    Toda computadora personal dispone de

    una memoria principal de 1 MB.

    Esta memoria fue usada por el P 8088 en la

    PC-XT.

    T.P.A

    640 KB

    Area sistema

    (BIOS)

    384 KB

    Memoria Extendida

    Modo real Modo protegido

    1 MB desde 8086 ==> P IVToda la memoria quetiene el computador

  • 7/24/2019 Unidad 1 Microprocesadores

    28/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 28

    5.2 Segmentacin de memoria

    Consiste en dividir la memoria de 1MB engrupos de 64KB (modo real).

    Cada grupo se asocia con un registro de

    segmento (CS, DS, SS, ES).

    La direccin de segmento define la direccininicial o base de cualquier grupo de 64 KB.

    El desplazamiento dentro del segmento loproporciona los registros punteros (IP, SI,

    DI, SP, BP).

    5.2 Segmentacin de memoria

    La direccin real o absoluta se calcula

    multiplicando por 16 (10h) el valor del

    registro de segmento y sumando el offset,

    obtenindose una direccin efectiva de 20bits. Esto es:

    direccin = segmento * 16 + offset

    o

    direccin = segmento * 10 + offset

  • 7/24/2019 Unidad 1 Microprocesadores

    29/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 29

    5.2 Segmentacin de memoria

    Ejemplo: Si CS = 1000H e IP = 450H,

    ubicar la direccin real.

    00000h

    10000h

    10450h

    1FFFFh

    FFFFFh

    CS = 1000h

    desp = 0450h64K

    Direccin real = (1000h *10h) + 450h

    = 10450h

    5.2 Segmentacin de memoria

    DOS ycontroladores

    00000h

    Cdigo

    Datos

    Pila

    FFFFFh

    Memoria

    0908Fh090F0h

    0A0EFh0A0F0h

    0A27Fh0A280h

    0A47Fh0A480h

    SS=0A28h

    DS=0A0Fh

    CS=090Fh

    Cdigo

    Datos

    Pila

    (a) (b)

    Memoria

    Ejemplo: Un programa requiere1000h bytes de memoria para sucdigo, 109h bytes para los datos

    y 200h bytes para la pila.

    Nota: Las memorias se traslapan

  • 7/24/2019 Unidad 1 Microprocesadores

    30/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 30

    6. Modos de direccionamiento

    Son los distintos modos de acceder a los

    datos en memoria por parte del P.

    Sintaxis: (2 operandos)

    INSTRUCCIN DESTINO, FUENTE

    MOV AX, CX

    Donde, DESTINO indica donde se deja el resultado

    de la operacin, FUENTE indica donde se encuentra

    el dato o registro a cargar.

    6. Modos de direccionamiento

    Sintaxis: (1 operando)INSTRUCCIN DESTINO

    MUL AXDIV CXPUSH BX

    Sintaxis: (0 operandos)INSTRUCCIN

    CLISTIPUSHF

  • 7/24/2019 Unidad 1 Microprocesadores

    31/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 31

    6.1 Direccionamiento inmediato El operando fuente es una constante.

    Ejemplos:

    MOV AX,1000 ; AX = 03E8h

    MOV BX,500h ; BX = 0500h

    ADD CX,0F45Ah ; CX = CX + F45A

    SUB BX,100 ; BX = BX 64

    MOV AH, 255 ; AH = FFhADD DL,0A5h ; DL = DL + A5

    NOTA: Cuando una constante empieza con una letra

    (A,B,C,D,E o F), se debe anteponer un cero.

    6.2 Direccionamiento por registro

    Los operandos son registros de igual tamao.

    Ejemplos:

    MOV AX,BX ; AX = BX

    MOV DS,AX ; DS = AXADD CX,DX ; CX = CX + DXSUB BH,BL ; BH = BH BLXCHGAH,AL ; intercambia valores entre ellos

    MOV AX,BLADD BH,CX

    SUB DX,AL

    No se puede direccionar

    porque son de diferentes

    tamaos

  • 7/24/2019 Unidad 1 Microprocesadores

    32/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 32

    6.3 Direccionamiento directo Cualquier operando es una constante que

    referencia a memoria.

    Ejemplos:

    MOV AX,[500h] ; AX = word que est en [0500h]

    MOV BX,[14A0h] ; BX = word que est en [14A0h]MOV AH,[1000] ; AH = byte que est en [03E8h]ADD CH,[100] ; CH = CH + byte [0064h]

    MOV [255],BX ; [00FFh] se almacena BXADD [1000H],AL ; [1000h] [1000h] + AL

    6.4 Dir. Indirecto por registro

    Cualquier operando es un registro quereferencia a memoria.

    Ejemplos:MOV AX, [BP] ; AX word [BP] direccin real = SS*10 + BP

    MOV ES:[DI], AH ; [DI] byte AH direccin real = ES*10 + DI

    MOV CX, [BX] ; CX word [BX] direccin real = DS*10 + BX

  • 7/24/2019 Unidad 1 Microprocesadores

    33/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 33

    6.5 Dir. Base ms Indice La direccin referenciada se encuentra

    sealada por un registro Base + un registroIndice.

    Ejemplos:MOV AX, [BP+SI] ; AX word [BP+SI] direccin real = SS*10 + BP + SI

    MOV ES:[BX+DI], AH ; [BX+DI] byte AH direccin real = ES*10 + BX + DI

    MOV CX, [BX][SI] ; CX word [BX+SI] direccin real = DS*10 + BX + SI

    6.6 Dir. Relativo por registro

    La direccin se encuentra sealada por unregistro Base o Indice + un desplazamiento.

    Ejemplos:

    MOV AX, [BX+1000h] ; AX

    word [BX+1000h] direccin real = DS*10 + BX + 1000h

    MOV ES:[DI+500], AH ; [DI+01F4h] byte AH direccin real = ES*10 + DI + 01F4h

    MOV DX, tabla[SI] ; DX word [tabla+SI] direccin real = DS*10 + tabla + SI

  • 7/24/2019 Unidad 1 Microprocesadores

    34/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 34

    6.7 Dir. Relativo base + indice La direccin solicitada se encuentra sealada

    por un registro Base + reg. Indice + un offset.

    Ejemplos:

    MOV AX, [BX+SI+desp] ; AX word [BX+SI+desp] direccin real = DS*10 + BX + SI + desp

    MOV SS:desp[BP][SI], DL ; [BP+SI+desp] byte DL

    direccin real = SS*10 + BP + SI + desp

    MOV DX, tabla[BX+DI] ; DX word [tabla+BX+DI] direccin real = DS*10 + BX + tabla + DI

    7. Direccionamiento de pila

    La pila es un bloque de memoria deestructura LIFO (Last Input First Output).

    Se direcciona mediante desplazamientos

    desde el registro SS. Las posiciones individuales dentro de la

    pila se calculan sumando al contenido delsegmento de pila SS un desplazamientocontenido en el registro puntero de pilaSP.

  • 7/24/2019 Unidad 1 Microprocesadores

    35/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 35

    7. Direccionamiento de pila

    Todos los datos que se almacenan en la

    pila son de longitud palabra (16 bits).

    Para acceder a la pila se usa:

    PUSH R16 ; puntero SP decrementa en dos.

    POP R16 ; puntero SP incrementa en dos.

    El registro BP suele utilizarse para apuntara una cierta posicin de la pila, trabaja

    similar al BX en DS.

    7. Direccionamiento de pila

    La pila es utilizada frecuentemente al

    principio de una subrutina para preservar

    los registros que no se desean modificar;

    al final de la subrutina se recuperan enorden inverso al que fueron depositados.

    La pila permite que algunas subrutinas

    llamen a otras, que a su vez pueden

    llamar a otras y as sucesivamente.

  • 7/24/2019 Unidad 1 Microprocesadores

    36/37

    Microprocesadores

    Ing. Javier Barriga Hoyle 36

    7. Direccionamiento de pila

    En la pila se almacenan las direcciones deretorno (Ej. call delay).

    Los compiladores de los lenguajes de altonivel la emplean tambin para pasar losparmetros de los procedimientos y paragenerar en ella las variables automticas

    (variables locales que existen durante laejecucin del subprograma y se destruyeninmediatamente despus).

    7. Direccionamiento de pila

    F3

    21

    Memoria

    Situacin inicialAX = 1234h

    14C0:1026

    SS:SP34

    12

    F3

    21

    Memoria

    Despus de

    PUSH AXAX = 1234h

    14C0:1024

    SS:SP

    F3

    21

    Memoria

    Despus de

    POP AXAX = 1234h

    14C0:1026

    SS:SP

    Figura 8. Manejo de la pila.

  • 7/24/2019 Unidad 1 Microprocesadores

    37/37

    Microprocesadores

    7. Direccionamiento de pila

    Programa ejemplo de manejo de la pila:

    PUSH AX ;se guarda en la pila AX

    PUSH BX ;se guarda en la pila BX

    PUSH CX ;se guarda en la pila CX

    POP CX ;se recupera de la pila CXPOP BX ;se recupera de la pila BX

    POP AX ;se recupera de la pila AX

    Area de un programa donde pueden

    reutilizar los registros AX, BX y CX

    7. Direccionamiento de pila

    Programa ejemplo: procedimiento delay

    delay PROC NEAR ; inicia procedimiento delay

    PUSH CX ; se apila el valor de CX0MOV CX, 0FFFFh ; CX1 FFFFh

    L2: PUSH CX ; se apila el valor de CX1MOV CX, 1000h ; CX2 1000h

    L1: LOOP L1 ; decrementa CX2 hasta que sea ceroPOP CX ; recupero valor de CX1LOOP L2 ; decrementa CX1 hasta que sea ceroPOP CX ; se desapila el valor de CX0RET ; retorna al programa principal

    delay ENDP ; fin del procedimiento delay