PDF de programación - Tema 3 Modos de Direccionamiento - Microprocesadores

Imágen de pdf Tema 3 Modos de Direccionamiento - Microprocesadores

Tema 3 Modos de Direccionamiento - Microprocesadoresgráfica de visualizaciones

Publicado el 20 de Febrero del 2021
497 visualizaciones desde el 20 de Febrero del 2021
247,7 KB
26 paginas
Creado hace 10a (07/01/2014)
DEPARTAMENTO DE ELECTRONICA

Microprocesadores
1121060
Tema 3
Modos de Direccionamiento.

Microprocesadores 1121060

Tema 3.
Modos de Direccionamiento.
1. Modos de direccionamiento
2. Formato de Instrucción
3. Ejemplo de Aplicaciones con todos los modos

de direccionamiento

Tema 3. Modos de Direccionamiento

Los Modos de Direccionamiento son las diversas formas con las
que se puede indicar a un µP donde debe encontrar o depositar un
dato, en una instrucción. Identifica los operandos de la operación a
realizar, fuente y destino de los datos sobre los que se operará.
Los operandos se pueden especificar por: un registro de la CPU,

una localidad de memoria, un puerto de Entrada/Salida o un dato
inmediato.

Existen dos grupos principales según los operandos se encuentren

en registros o en memoria: modos de Registro, y modos de
Memoria.

La dirección física de memoria o registro donde se encuentra

realmente el operando se llama Dirección Efectiva, y se representa
< ea >. Según el modo de direccionamiento utilizado, la CPU
tendrá que realizar unos cálculos distintos hasta obtener el valor
de dicha dirección efectiva.

Las instrucciones pueden contener hasta dos operandos que se

denominan Operando Fuente, el del lado derecho, y Operando
Destino, el del lado izquierdo. En estos casos, cada operando
tendrá su propio modo de direccionamiento.

Tema 3. Modos de Direccionamiento

Direccionamiento Inmediato.
Transfiere un byte o palabra de datos inmediato hacia

el operando destino. Este modo es usado para
inicializar registros o localidades de memoria y para
operara sobre ellos con valores constantes de datos.

Ej: MOV AX,0ABCDH

MOV BL,12H

Las instrucciones que usan el modo de

direccionamiento inmediato obtienen el dato como
parte de la instrucción.
B8 00 10 MOV AX,1000H

Este modo no opera con registros de segmento, por lo

que no se puede cargar un registro de segmento de
manera inmediata.

Tema 3. Modos de Direccionamiento

Direccionamiento por Registro.

Transfiere un byte o palabra desde un registro fuente

hasta un registro destino.

Ej. MOV AX,CX

El operando no requiere ninguna referencia de memoria.

INC BX

Nota: Los dos operandos no pueden ser registros de

segmento.

El registro de segmento de código (CS) nunca puede

utilizarse como destino.

No se permite el acceso entre registros de segmento ni de

distintos tamaños.

Tema 3. Modos de Direccionamiento

Direccionamiento Directo.
Transfiere un byte o palabra contenido en una

localidad de memoria en el segmento DS a un registro
de 8 o 16 bits. La localidad de memoria puede ser el
operando fuente o destino.

Ej: MOV AL,[1234H]
En el modo de direccionamiento directo, la dirección
de memoria se proporciona directamente como parte
de la instrucción (Puede ser a través de etiquetas, en
las cuales el programador no necesita conocer la
dirección numérica)
MOV AH, MEMBDS
8A 00 10 MOV AH,[MEMBDS]

AH[1000H]

Tema 3. Modos de Direccionamiento

Direccionamiento Indirecto.
El modo de direccionamiento directo se usa para acceder

localidades de memoria de manera no frecuente. Sin embargo
cuando una localidad de memoria debe ser leída o escrita
varias veces dentro de un programa, la búsqueda repetida de
la dirección lógica hace este modo ineficiente. El modo de
direccionamiento indirecto resuelve este problema
almacenando esta dirección de memoria en un registro base
(BX,BP)o un registro índice (SI o DI)

MOV [DI],BH
MOV [BP],DL

8B 04
FF 25
FE 46 00
FF 0F

MOV AX, [SI] AL[SI]; AH[SI+1]
JMP [DI] IP[DI+1:DI]
INC BYTE PTR[BP] [BP][BP] + 1
DEC WORD PTR[BX]b [BX+1:BX][BX+1:BX]-1

Tema 3. Modos de Direccionamiento

Direccionamiento Base mas Indice.
Transfiere un byte o palabra entre un registro y una

localidad de memoria direccionada por la suma de un
registro base más un registro índice.

Este modo es usado para el acceso a tablas.
Ej. MOV AX,[BX+DI]
En muchos casos, el registro base retiene la dirección
de inicio de un arreglo de memoria, y el registro índice
retiene la posición relativa de un dato en un arreglo.

AH[BX+SI+1], AL[BX+SI];
8B 00 MOV AX,[BX+SI]
IP[BX+DI+1:BX+DI];
FF 21 JMP [BX+DI]
FE 02 INC BYTE PTR[BP+SI] [BP+SI][BP+SI]+1 ;
FF 0B DEC WORD PTR[BP+DI] [BP+DI+1:BP+DI][BP+DI+1:BP+DI]-1

Tema 3. Modos de Direccionamiento

Ej. Si se desea direccionar

los elementos en un
arreglo de datos
localizados en el segmento
de datos en la localidad
ARRAY. Se requiere cargar
BX con la dirección ARRAY
y DI con el número del
elemento del arreglo que
se desea acceder.

MOV BX, OFFSET ARRAY
MOV DI,3
MOV AL,[BX+DI]

DI

Elemento

+

BX
ARRAY

ARRAY + 5
ARRAY + 4
ARRAY + 3
ARRAY + 2
ARRAY + 1
ARRAY

MOV AL,[BX+DI]

Tema 3. Modos de Direccionamiento

Direccionamiento Relativo a Registro
Transfiere un byte o palabra entre un registro y una localidad de
memoria direccionada por un registro base o un registro índice
más un desplazamiento.

Si la localidad de memoria se direcciona por la suma de un

registro base y un desplazamiento, también se conoce como
direccionamiento basado.

Ej. MOV AX,[BX+10H]
Si la localidad de memoria se direcciona por la suma de un
registro índice y un desplazamiento, también se conoce
como direccionamiento indexado.

Ej. MOV AX,[SI+500H]

MOV AX,[BX+4]
MOV AX,ARRAY [SI]
MOV LIST[BP],CL
MOV ARRAY[DI],AL

Tema 3. Modos de Direccionamiento

Direccionamiento Relativo Base más

índice.

Transfiere un byte o palabra entre un

registro y la localidad de memoria
direccionada por un registro base más un
registro índice más un desplazamiento.

Ej. MOV AX, [BX+SI+100H]
MOV AX, ARRAY[BX+DI]

MOV LIST[BP+DI],CL


Tema 3. Modos de Direccionamiento

Este tipo de

direccionamiento es
usado comúnmente para
direccionar arreglos de
datos en memoria de dos
dimensiones (matrices).

MOV BX, OFFSET MATRIZ
MOV DI,8
MOV AL,[BX+DI+2]

2
columna

+

DI=8
Renglón

+

a2,3
a2,2
a2,1
a2,0
a1,3
a1,2
a1,1
a1,0
a0,3
a0,2
a0,1
a 0,0

BX
MATRIZ

Renglón 2

Renglón 1

Renglón 0

MOV AL,[BX+DI+2]

Selecciona elemento a2,2

a0,0 a0,1 a0,2 a0,3
a1,0 a1,1 a1,2 a1,3
a2,0 a2,1 a2,2 a2,3

Tema 3. Modos de Direccionamiento

Modo de direccionamiento de string
En computación un string (cadena) es una secuencia

de bytes o palabras almacenadas en memoria. Una
tabla de datos es un ejemplo de string. Debido a su
importancia el 8086 tiene algunas instrucciones
diseñadas específicamente para manejar strings
(cadenas) de caracteres.

Estas instrucciones tienen un modo de

direccionamiento especial y usan a DS:SI para
apuntar al string fuente y a ES:DI para apuntar al
string destino.

MOVSB mueve el byte del dato fuente a la localidad

destino. SI y DI se incrementan o decrementan
automáticamente dependiendo del valor de la bandera
D.

Tema 3. Modos de Direccionamiento

Mnemónico
general
Op-code
Operando

STOSB

STOSW

LODSB

LODSW

Instrucciones de Cadena (string)

Código
Objeto

Mnemónico

Segmento
de memoria

Operación
simbólica

Descripción

AA

AB

AC

AD

STOSB

Extra

STOSW

Extra

LODSB

Datos

LODSW

Datos

ES:[DI]AL
Si DF=0, DIDI+1
Si DF=1, DIDI-1
ES:[DI] AL
ES:[DI+1] AH
Si DF=0, DIDI+2
Si DF=1, DIDI-2
AL DS:[SI]
Si DF=0,SISI+1
Si DF=1, SISI-1
ALDS:[SI]
AHDS:[SI+1]
Si DF=0, SISI+2
Si DF=1, SISI-2

Transfiere un byte o palabra del registro
AL o AX a la cadena direccionada por
DI en el segmento extra; Si DF=0,
incrementa DI,
contrario
decrementa DI; las banderas no son
afectadas.

de

lo

Transfiere un byte o palabra de la
cadena direccionada por SI en el
segmento de datos al registro AL o AX;
Si DF=0, incrementa SI, de lo contrario
decrementa SI; las banderas no son
afectadas.

Tema 3. Modos de Direccionamiento

Direccionamiento
Inmediato
Registro
Directo
Indirecto a registro

Indexado

Basado

Base mas índice

Relativo base mas

índice

String

Cod. Ob.
B8 00 10
8B D1
8A 00 10
8B 04
FF 25
FE 46 00
FF 0F
8B 44 06
FF 65 06
8B 46 02
FF 67 02
8B 00
FF 21
FE 02
FF 0B
8B 40 05
FF 61 05
FE 42 05
FF 4B 05
A4

Mnemónico
MOV AX,1000H
MOV DX,CX
MOV AH,[MEMBDS]
MOV AX, [SI]
JMP [DI]
INC BYTE PTR[BP]
DEC WORD PTR[BX]
MOV AX,[SI+6]
JMP [DI+6]
MOV AX,[BP+2]
JMP [BX+2]c
MOV AX,[BX+SI]
JMP [BX+DI]
INC BYTE PTR[BP+SI]
DEC WORD PTR[BP+DI]
MOV AX,[BX+SI+5]
JMP [BX+DI+5]
INC BYTE PTR[BP+SI+5]
DEC WORD PTR[BP+DI+5]
MOVSB

Segmento
Código
Dentro del CPU
Datos
Datos
Datos
Stack
Datos
Datos
Datos
Stack
Datos
Datos
Datos
Stack
Stack
Datos
Datos
Stack
Stack
Extra, Datos

Operación simbólica
AH10H; AL 00
DXCX
AH[1000H]
AL[SI]; AH[SI+1]
IP[DI+1:DI]
[BP][BP] + 1
[BX+1:BX][BX+1:BX]-1
AL[SI+6]; AH[SI+7]
IP [DI+7:DI+6]
AL[BP+2]; AH[BP+3]
IP[BX+3:BX+2]
AL[BX+SI]; AH[BX+SI+1]
IP[BX+DI+1:BX+DI]
[BP+SI][BP+SI]+1
[BP+DI+1:BP+DI][BP+DI+1:BP+DI]-1
AL[BX+SI+5]; AH[BX+SI+6]
IP[BX+DI+6:BX+DI+5]
[BP+SI+5][BP+SI+5]+1
[BP+DI+6:BP+DI+5][BP+DI+6:BP+DI+5]-1
ES:[DI]DS:[SI]
Si DF=0, entonces SISI+1; DIDI+1
Si DF=1, entonces SI(cid:
  • Links de descarga
http://lwp-l.com/pdf18874

Comentarios de: Tema 3 Modos de Direccionamiento - Microprocesadores (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad