Documente Academic
Documente Profesional
Documente Cultură
Direccionamiento
Direccionamiento
Direccionamiento
Direccionamiento
Direccionamiento
Direccionamiento
por registro
inmediato
directo
indirecto
base relativo
indexado relativo
NOTA: Recuerde que cada grupo (2 estudiantes) debe crear una carpeta de trabajo
para cada prctica.
En directorio C: crear carpeta de trabajo P#G#, donde:
P es por Paralelo
# es nmero de paralelo
G es por Grupo
# es nmero de grupo
Por ejemplo: La carpeta P1G5 pertenece al Paralelo #1 Grupo #5, carpeta temporal
de trabajo para la prctica del da, la misma que deber ser borrada al finalizar la
prctica.
INTRODUCCIN
El CPU puede acceder operandos (datos) de varias formas que se
conocen como 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
2
3
4
5
6
7
por registro
inmediato
directo
indirecto
base+ relativo
indexado+ relativo
base indexado + relativo
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, [0200]; mueve contenido de memoria DS: 0200H a DL
MOV [0210], AX; mueve contenido de AX a memoria DS: 0210H
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 AX, [BP]; carga AX con el contenido de memoria apuntada por
SS: BP.
MOV CL, [SI]; transfiere contenido de memoria DS: SI a registro CL
MOV [SI], AH; carga memoria DS: SI con el contenido de AH
Direccionamiento Base Relativo:
En este modo de direccionamiento, la direccin efectiva del dato se
calcula sumando a BX BP un valor numrico. Por defecto el
segmento de BX es DS y de BP es SS. Por ejemplo:
MOV CX, [BX]+10; mueve DS: BX+10 y DS: BX+10+1 a registro CX.
; PA=DSx16 + BX+10 para LSB.
; PA=DSx16 + BX+10+1 para MSB.
MOV AL, [BP]+5; mueve SS: BP+5 a registro AL.
; PA=SSx16 + BP+5
Para el ensamblador las tres instrucciones
equivalentes
MOV AL, [BP]+5
MOV AL, [BP+5]
MOV AL, 5[BP].
Direccionamiento Indexado Relativo:
siguientes
son
PRCTICA LABORATORIO
Usando el programa DEBUG resolver los ejercicios siguientes, en lo
posible documente su trabajo mediante fotos de pantalla (use tecla
Imprimir Pantalla).
EJERCICIO 1:
Con Debug (comando A ensambla, comando U desensambla) obtenga
cdigo de mquina de las instrucciones siguientes:
MOV AX, 2EA9 Respuesta: _____________
# de bytes: _________
ADD AX, 346C Respuesta: _____________
# de bytes: _________
MOV CX, AX
Respuesta: _____________
#
de
bytes:
_________
MOV DH, AH
Respuesta: _____________
# de bytes: _________
MOV AH, 9B
Respuesta: _____________
# de bytes: _________
EJERCICIO 2:
Con debug genere cdigo de mquina de:
NOP
Respuesta: __________
MOV [0200], AX
Respuesta: __________
MOV CL, [0150]
Respuesta: __________
MOV BX, [5614]
Respuesta: __________
#
#
#
#
de
de
de
de
bytes:
bytes:
bytes:
bytes:
____
____
____
____
EJERCICIO 3:
Ensamble el siguiente programa en CS: 100 y ejecute paso a paso
con P.
NOP
MOV AX, 1500
MOV DS, AX
MOV AX, CDEF
MOV SI, 0200
MOV [SI], AX
INT 20
NOP
La instruccin MOV [SI], AX transfiere una palabra (dos bytes) a la
memoria de datos, llene la tabla con la direccin lgica y el contenido
de cada localidad de memoria afectada por su ejecucin, aplique el
ordenamiento del pequeo indio. Para visualizar datos use el
comando D.
Contenido de memoria
Direccin menor
Direccin mayor
EJERCICIO 4:
Ensamble en CS: 100 el siguiente segmento de programa:
MOV AX, 1300
MOV DS, AX
MOV AX, 2000
MOV SS, AX
MOV BX, 0200
MOV SI, 0600
MOV BP, 0300
MOV AX, 678D
MOV [BX] +6, AX
INC
AX
MOV [SI]+8, AX
ADD AX, 7
INC
AX
MOV [BP]+10, AX
INT 20
[BX] +6, AX
MOV
[SI]+8, AX
MOV
AX
[BP]+10,
Direccin Lgica de
Operando Destino
Contenido de Memoria
(operando destino dos
bytes)
DS: EA
*EA=BX+6=
DS: EA
*EA=SI+8=
SS: EA
*EA=BP+10=
EJERCICIO 6:
0100
0101
0104
0106
0108
010B
010D
0110
0112
0114
0118
NOP
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
ADD
DEC
AX, 1000
DS, AX
AL, 0A
[0150], AL
AL, CC
[0151], AL
AL, 20
CL, 0A
AL, [0150]
CL
CS:
CS:
CS:
CS:
CS:
CS:
CS:
011A
011C
011E
0121
0125
0129
012A
JNZ
MOV
MOV
MOV
SUB
INT
NOP
FN DE PRCTICA