Está en la página 1de 4

Modos de direccionamiento

Son medios que facilitan la tarea de programacin, permitiendo el acceso a los datos
de una manera natural y eficiente.
Estos indican al procesador como calcular la direccin absoluta (real o efectiva) donde
se encuentran los datos.
1.- Direccionamiento de Registro: Los operandos o datos se encuentran en registros
No se necesita calcular la Dir. Absoluta.
P.e. ADD BX, CX
MOV BX, AX
SUB DX, BX
2.- Direccionamiento inmediato : El operando es un nmero que forma parte de la
instruccin. No se necesita calcular la dir absoluta.
P.C. ADD BX, 2h
SUB CX, 100h
MOV dx, 30h.
3.- Modo directo: La direccin del operando viene incluida en la instruccin , aqu el
procesador calcula la direccin real ([DS]+Dir)
P.e:
ADD AX, [100]
ADD AL, [101]
MOV CX, [201]

DS + 100
DS + 101
DS + 201

Direccin real
(absoluta o efectiva)

MOV AX, DATO


Al ensamblarlo se tiene la instruccin :
MOV AX, [xxxx]

4.- Direccionamiento indirecto: La direccin del operando viene indicada


indirectamente en los registros SI, BX, DI, BP
P.e: ADD AX, [DI]
ADD AL, [SI]
MOV AX, [BX]
SUB CX, [BP]

ES + DI
DS +SI
DS + BX
SS + BP

MOV BX, OFFSET DATO (LEA BX, DATO)


MOV AX,[BX]
Al ensamblar se tiene :

MOV BX, xxxx


MOV AX, [BX]

5.- Direccionamiento Indexado (indexado directo): El procesador calcula la


direccin efectiva (real o absoluta sumando a DS o a ES SI o DI respectivamente) ms
un desplazamiento.
P.e.
DS
Direccin real = DS + SI + Desplazamiento
}Desplazamiento
ADD AX, [SI + 70]
SI
DS + SI + 70H

MOV SI,2
MOV AX, DATO [SI]
Al ensamblar:
MOV SI,0002
MOV AX,[SI+xxxx]

6.- Direccionamiento de Base: Se involucran los registros BX (asociado con DS) O BP


(Asociado con SS) y un desplazamiento.
DS
P.e
BX

ADD AL, [BX+7]


Direccin real = DS+BX+7
} Desplazamiento

MOV BX, OFFSET DATO (LEA BX, DATO)


MOV AX,[BX+2]
Al ensamblar se tiene :

MOV BX, xxxx


MOV AX, [BX+0002]

LEA SI,CONTENIDO+BX
Al ensamblar se tiene :
LEA SI, [BX+xxxx]

LEA SI, [CONTENIDO+BX]


Al ensamblar se tiene :
LEA SI, [BX+xxxx]

7.- Direccionamiento de base indexado o indexado con base. Involucra SI y BX ms


un desplazamiento.
DS
MOV AL, [BX + SI +20]
Dire- real = DS+BX+SI+20
BX
}Desplazamiento

SI

MOV BX, OFFSET DATO


MOV SI, 8
MOV AX, [BX][SI+2]
Al ensamblar se tiene:
MOV BX, xxxx
MOV SI, 0008
MOV AX,[BX+SI+xx]

Ejemplo 1: Suponga que se desea sumar n nmeros que se encuentran almacenados en


memoria a partir de la localidad 101 donde el contador tambin est en memoria en la
localidad 100.
DS
100
101
Apuntada

BX

102

Apuntadores a DS = SI, BX
Contador = CH
Suma = AH

Contador
n1

Apuntador = BX

n2
-

Inicio
BX
CH
AH

Escribir
AH

FIN

Si

101
[100]
0

CH 0

No

Ciclo:

AH
BX
CH

AH+[BX]
BX+1
CH-1

MOV BX, 101


MOV CH, [100]
MOV AH, 0
CMP CH, 0
JLE FIN
ADD AH, [BX]
INC BX,
DEC CH
JMP Ciclo
FIN: NOP

Ejemplo 2: Programa que lee caracteres hasta dar un punto, cuenta cuantos caracteres
numricos se insertan, almacena la cuenta en de la direccin 100 del DS y a partir de la
direccin 101 almacena las maysculas ledas.

LEER:

ESPUNTO:

ESLETRA:

FIN:

MOV CH,0
MOV BX,101
CALL LEE_CAR
CMP AL,30
; Caracter igual a 0
JL ESPUNTO
CMP AL,39
; Caracter igual a 9
JG ESLETRA
INC CH
JMP LEER
CMP AL,2E ; Carcter igual a un punto .
JNZ LEER
MOV [100],CH
JMP FIN
CMP AL,41
; Carcter igual a A
JL LEER
CMP AL,5A
; Carcter igual a Z
JG LEER
MOV [BX],AL
INC BX
JMP LEER
NOP

También podría gustarte