segunda_clase microprocesadores

Upload: fernandoquisaguano

Post on 01-Mar-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    1/9

    MODOS DEMODOS DE

    DIRECCIONAMIENTODIRECCIONAMIENTO

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    2/9

    MODOS DE DIRECCIONAMIENTO:1.- MODOS DE DIRECCIONAMIENTO DE MEMORIA DE PROGRAMA:

    La bsqueda de una instruccin es hecha con CS+IP. Por lo tanto,las instrucciones dejumpjump y callcall pueden modificar el contenido del

    registro IP de tres maneras:a) Direccionamiento relativo (programa)

    Un desplazamiento de 8 bits o 16 bits, de forma inmediata esadicionado al IP (adicin binaria con seal).

    b) Direccionamiento directo (programa)

    Los valores de IP o de IP y CS son especificadas en la instruccinde forma inmediata. Esta operacin es clasificada como salto near

    o salto far.Near: altera IP (dentro del segmento)

    Far: altera IP y CS (fuera del segmento)

    c) Direccionamiento indirecto (programa)

    El dato en la memoria es interpretado como una direccin para unjump o call. Puede ocurrir de las dos formas.

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    3/9

    MODOS DE DIRECCIONAMIENTO:

    2.- MODOS DE DIRECCIONAMIENTO DE LA MEMORIA DEDATOS:

    Modo inmediato: El operando es una constante situada detrs delcdigo de la instruccin.

    mov AX,0fffh

    El nmero hexadecimal 0fffh es la constante numrica. Al trabajarcon ensambladores, se pueden definir smbolos constantes:

    dato EQU 0fffh ; smbolo constante

    MOV AX,dato

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    4/9

    MODOS DE DIRECCIONAMIENTO:

    Modo directo: El operando est situado en la direccin indicada enla instruccin relativa al segmento. El byte o bytes que sigue alcdigo OP de la instruccin dan el desplazamiento de 8 o 16 bits,

    que sumando al registro DS, determina la direccin efectiva.MOV AX,[57d1] ;

    MOV AX,dato

    MOV AX,ES:datodato DW 1234h ; variable del programa

    En el segundo ejemplo se indica de forma explcita el segmento

    tratndose del segmento ES.

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    5/9

    MODOS DE DIRECCIONAMIENTO:

    Modo de direccionamiento por registro: Los operandos, de igual

    tamao, estn contenidos en los registros indicados en la instruccin:

    MOV DX,AX

    MOV AH,AL

    Modo de direcionamiento indexado: es obtenido con el uso de SI (en

    el segmento de datos) o DI (en el segmento extra) como indexador:ADD AX, [SI]+yyzzh

    Modo de direccionamiento indirecto: El operando se encuentra en una

    direccin sealada por un registro de segmento ms un registro base

    (BX/BP) o ndice (SI/DI)

    MOV AX, [BP] ;AX=[SS*16+BP]

    MOV ES:[DI],AX ;[ES*16+DI]=AX

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    6/9

    MODOS DE DIRECCIONAMIENTO:

    Modo de direccionamiento con base e ndice: El operandose encuentra en una direccin especificada por la suma de un

    registro de segmento, uno de base, uno de ndice yopcionalmente un desplazamiento de 8 o de 16 bits:

    MOV AX,ES:[BX+DI+DESP] MOV AX,ES:desp[BX][DI]

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    7/9

    MODOS DE DIRECCIONAMIENTO:

    MOV AL,BH

    MOV AL,22H MOV AL,[2499H]

    MOV AL,[BX]

    MOV AL,[BX]+10MOV AL,[BP]+5

    :

    MOV AL,[SI]+8

    MOV AL,[DI]+20

    MOV AL,[BX][SI]+10

    MOV AL,[BX][DI]+5

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    8/9

    NOTAS IMPORTANTES:

    Las instrucciones se encuentran siempre en el

    segmento de cdigo. IP apunta siempre a la siguiente instruccin a ser

    ejecutada en CS:IP.

    Los datos casi siempre estn en el segmento de datos,sin embargo se puede ubicar en cualquier segmento conoverride. Ejemplos:

    MOV AX,ES:[BX] dato en ES

    MOV AX,[BP] dato en SS: BP MOV AX,DS: [SI] dato en DS:SI

    MOV AX,[BX] dato en DS:BX

  • 7/26/2019 SEGUNDA_CLASE microprocesadores

    9/9

    EJERCICIOS

    MOV AX,58FCH

    MOV SI,6678H

    MOV DS,2341H

    MOV BH,99H MOV BL,7F3H

    Sumar 16H mas ABH y poner el resultado en

    el registro AX.