Académique Documents
Professionnel Documents
Culture Documents
LABORATORIO DE MICROPROCESADORES
PRACTICA # 02
Modos de Direccionamiento
Alumno:
Gabriel Romn Lanez
Tutor:
Carlos Saldaa
Grupo :4
Paralelo :1
El CPU puede acceder operandos (datos) de varias maneras que se denominan modos de
direccionamiento. El nmero de modos de direccionamiento se determina cuando el
procesador se disea y no puede cambiarse. Los modos de direccionamiento son:
1. por registro
2. inmediato
3. directo
4. indirecto
5. base+ relativo
6. indexado+ relativo
7. base indexado + relativo
Debe notarse que los registros fuente y destino deben coincidir en tamao. Por ejemplo,
MOV CL, AX marca error porque la fuente y destino son de distinto tamao. L(1,0) X
(bits)
Direccionamiento inmediato:
Con este modo de direccionamiento el operando fuente es una constante. Cuando la
instruccin se ensambla el operando (dato) se ubica inmediatamente despus del cdigo
de operacin de la instruccin. Por esta razn, este direccionamiento se ejecuta muy
rpido. Este modo de direccionamiento no se usa para cargar informacin en los
registros de segmento y en el registro de banderas, pero s en todos los dems registros.
Ejemplos:
MOV AX, 2550H; carga 2550H em registro AX
MOV CX, 625; carga el valor decimal 625 en CX
MOV BL, 40H; carga 40H en BL.
Para cargar informacin en los registros de segmento, primero se mueve el dato a uno
de los registros de propsito general y de aqu se carga el registro de segmento.
Ejemplo:
Direccionamiento Directo:
En este modo de direccionamiento el dato reside en alguna localidad de memoria cuya
direccin se ubica inmediatamente despus del cdigo de operacin de la instruccin, es
decir, ahora la direccin del dato forma parte del cdigo de mquina de la instruccin.
Esta direccin es un desplazamiento desde el origen del segmento, para calcular la
direccin fsica multiplicamos DS por 16 y luego sumamos este desplazamiento.
Ejemplo:
MOV DL, [2400]; mueve contenido de memoria DS: 2400H a DL
MOV [0500], AX; mueve contenido de AX a memoria DS: 0500H
Ejercicio #2:
Con debug genere cdigo de mquina de:
NOP Respuesta: 90 # de bytes: 1
MOV [3518], AX Respuesta: a31835 # de bytes: 3
MOV CL, [3518] Respuesta: 8a0e1835 # de bytes: 4
MOV DX, [3518] Respuesta: 8b161835 # de bytes: 4
Direccionamiento Indirecto:
En este modo de direccionamiento, la direccin de la localidad de memoria del
operando reside en un registro. Los registros usados para este propsito son SI, DI, y
BX. Estos registros actan como punteros, y como tales siempre guardan el
desplazamiento de direccin de la localidad de memoria que almacena el operando
(dato), este desplazamiento se combina con DS para generar la direccin fsica.
Ejemplos:
MOV AL, [BX]; carga AL con el contenido de memoria apuntada por DS: BX. Note
; que BX est entre corchetes.
MOV CL, [SI]; transfiere contenido de memoria DS: SI a registro CL
MOV [DI], AH; carga memoria DS:DI con el contenido de AH
Ejercicio #3:
Com debug obtenga cdigo de maquina de:
MOV AL, [BX] Respuesta: 8a07 # de bytes: 2
MOV [DI], AH Respuesta: 8825 # de bytes: 2
MOV AX, [SI] Respuesta: 8b04 # de bytes: 2
Con comando P, ejecute el programa paso a paso. Con cada instruccin examine los
registros del CPU y tambin el valor de los operandos que se encuentran en la memoria
de datos para aquellas instrucciones que hacen referencia a operandos en memoria.
Luego llene la tabla ilustrada en la siguiente pgina.
r
Calcule la direccin efectiva EA asociada con el operando destino en cada una de las
cuatro instrucciones del programa que se acaba de ejecutar y que se muestran en la
tabla. Con comando D visualice el contenido de memoria y llene la tercera columna de
la tabla con el valor del operando destino.
Ejercicio #6:
Con el comando A CS: 0100 ingrese al segmento de cdigo las instrucciones
siguientes:
CS: 0100 NOP
CS: 0101 MOV AX, 2000
CS: 0104 MOV DS, AX
CS: 0106 MOV AL, 5
CS: 0108 MOV CL, 0A
CS: 010A ADD AL, [0100]
CS: 010E DEC CL DECREMENTAR
CS: 0110 JNZ 010 INSTRUCCION JUMP IF NOT ZERO
CS: 0112 MOV BH, AL
CS: 0114 MOV [0101], AL
CS: 0118 INT 3 ; BREAKPOINT
CS: 0119 NOP
Con comando E ingrese a memoria el dato siguiente:
DS: 0100 0A
DS: 0101 FF
Corra el programa: -G = 100 ENTER.
Recomendaciones:
Antes de comenzar a programar hay que tener en cuenta las definiciones de cada
segmento y partes del CPU y registros de propsito general para no tener
ninguna confusin.
Practicar varias veces y varios ejemplos para no tener ninguna duda de la
implementacin de ciertas funciones y comandos especiales
Investigar las nuevas definiciones y profundizar ms los conocimientos.