Sei sulla pagina 1di 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] DS + 100 Direccin real
ADD AL, [101] DS + 101 (absoluta o efectiva)
MOV CX, [201] DS + 201

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] ES + DI
ADD AL, [SI] DS +SI
MOV AX, [BX] DS + BX
SUB CX, [BP] 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 ADD AL, [BX+7]
Direccin real = DS+BX+7
P.e } Desplazamiento
BX


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

SI }Desplazamiento


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 Apuntadores a DS = SI, BX
Contador = CH
101 Suma = AH
Apuntada Apuntador = BX
BX 102






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



Contador
n1

n2

-

-
BX 101
CH [100]
AH 0
Escribir
AH
AH AH+[BX]
BX BX+1
CH CH-1
FIN

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.

MOV CH,0
MOV BX,101
LEER: 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
ESPUNTO: CMP AL,2E ; Carcter igual a un punto .
JNZ LEER
MOV [100],CH
JMP FIN
ESLETRA: 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
FIN: NOP

Potrebbero piacerti anche