modos de direccionamiento
DESCRIPTION
Metodos de DireccionamientoTRANSCRIPT
![Page 1: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/1.jpg)
MODOS DE DIRECCIONAMIENTO
NO. LISTA 21
7AM
RIVAS CHACÓN ANA CRISTINA
![Page 2: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/2.jpg)
“ESQUELETO DE UN PROGRAMA EN
ENSAMBLADOR”A continuación se presenta la estructura básica de
un programa en ensamblador con extensión .asm:
*model small: Existen diferentes segmentos que
determinan el tamaño de los segmentos. (tarea wiki
¿Cuáles son esos modelos y sus tamaños de
segmentos?)
*stack: Pila
*data: Segmento de datos variables, arreglos,
cadenas, matrices
*code: segmento de codigo
![Page 3: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/3.jpg)
mov ax, @data
mov ds, ax Instrucciones para
inicializar
push ds
….CODIGO DEL PROGRAMA
Código del programador
….
….
mov ax, 4c00h
Int 21h Instrucciones de
terminacion
End - - - - - - - - - - - segmento de codigo
![Page 4: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/4.jpg)
“DECLARACIÓN DE DATOS EN EL SEGMENTO DE
DATOS” Existen un conjuntos de directivas que nos
permiten declarar datos en el segmento de datos,
las directivas son las siguientes:
db= Define byte = 8 bits = 1 caracter
dw =Define palabra = 16 bits = 2 caracteres
dd = define doble palabra = 32 bits = 4 caracteres
No existen tipos de datos en el lenguaje
ensamblador a diferencia de los lenguajes de alto
nivel, lo que se realiza es para reservar espacios
de memoria.
![Page 5: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/5.jpg)
Sintaxis para declarar datos, cadenas, arreglos, matrices:
Nombre_Dato directiva valor(s)
Ejemplos:
1: se desea declarar una variable de contador de tipo byte inicializada a cero enel segmento de datos.
.data
contador db 0
2. Define una variable llamada carácter inicializada con el carácter “z”
.data
carácter db ‘z’
3. Declara una variable “promedio” inicializada con tu promedio general
.data
promedio db 87.82
![Page 6: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/6.jpg)
EVIDENCIA N. 4
Define los siguientes esqueletos de programas en ensamblador:
a. Guardar como p1.asm un documento creado en block de notas.
Define las siguientes variables inicializadas a cero: promedio, sumatoria,
contador_repe, contador_normal.
b. Guardar como p2.asm, declarando las siguientes variables:
+ un arreglo inicializado con 4 valores de tipo carater(los que sean)
+La variable “indice” inicializada a cero
+ un mensaje con tu nombre
![Page 7: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/7.jpg)
MODOS DE DIRECCIONAMIENTO
Son las formas en que se hace referencia a l memoria.
Varían de un autor a otro, se identifican entre 7u 8 modos de direccionamiento.
1.-DIRECCIONAMIENTO INMEDIATO
2.-DIRECCIONAMIENTO POR REGISTROS
3.-DIRECCIONAMIENTO DIRECTO
4.-DIRECCIONAMIENTO INDEXADO DIRECTO
5.-DIRECCIONAMIENTO RELATIVO A LA BASE
6.-DIRECCIONAMIENTO UNDIRECTO
7.-DIRECCIONAMIENTO BASE INDEXADO
Explicación de cada uno(se utilizara la instrucción MOV para su explicación).
1.-DIRECCIONAMIENTO INMEDIATO. Se le identifica cuando el operador fuente es una constante.
Ejemplos:
a) MOV AH, 34H
b) MOV BX, 0F989H
c) MOV CH, ´C´
INVALIDOS:
a) MOV CL, 9999H
b) MOV DH, ´AB´
![Page 8: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/8.jpg)
2. DIRECCIONAMIENTO POR REGISTROS. Se identifica cuando tanto el operando fuente como el
operando destino son registros válidos del microprocesador.
Ejemplos:
a) MOV AX, BX
b) MOV AH, AL
c) MOV CX, CL
d) MOV SI, DI
INVALIDOS:
a) MOV AH, BX
b) MOV DL, BP
![Page 9: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/9.jpg)
3. DIRECCIONAMIENTO DIRECTO. Se define cuando el operando fuente o el operando destino es
una variable declarando en el segmento de datos.
EJEMPLOS:
a) MOV DX, palabra
b) MOV datos, AX
c) MOV caracter, ch
INVALIDOS: No es permitido direccionar de variable a variable o de memoria a memoria.
a) MOV palabra, dato
b) MOV carácter, dato
c) MOV carácter, arreglo[0]
![Page 10: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/10.jpg)
P3.ASM
Diseñe un programa en ensamblador que utilice los primeros 3 modos de direccionamiento, haga
referencia a por lo menos 2 instrucciones para cada modo de direccionamiento.
NOTA: No repita los ejemplos vistos en clases.
![Page 11: Modos de direccionamiento](https://reader038.vdocumento.com/reader038/viewer/2022100603/55947bfb1a28ab1c558b47d0/html5/thumbnails/11.jpg)
4. DIRECCIONAMIENTO INDEXADO DIRECTO
Se identifica cuando el operador fuente u operando destino es una variable declarada en el segmento
de datos indexada por alguno de los registros índices ( SI,DI):
Ejemplos:
a) MOV arreglo[si], ´A´
b) MOV cl, vector[DI]
c) MOV vector[SI]