You are on page 1of 11

Modos de direccionamiento

No. Lista 36 8:00 9:00 Ensamblador Cruz Antonio Tenorio Diaz

Esqueleto de un programa ensamblador


Tipo de modelo de un programa Model small en ensamblador determina el tamao Stack Segmento pila de los segmentos Data Segmento de datos Aqu se declaran: Variables Code Arreglos Mov ax,@data Matrices Movds,ax Inicializacion cadenas Push ds Codigo del programa Mov ax,4c00h Finalizacion Int 21h end

Declaracio de datos en el segmento de datos


Directivas:
Db = define byte =8 bits = 1 carcter Dw = define palabra = 16 bits = 2 caracteres Dd = define doble palabra = 32 bits = 4 caracteres No existen tipos de datos en lenguaje ensamblador a diferencia de los lenguajes de alto nivel, lo que se realiza es para reservar espacios de memoria.
Sintaxis para declarar datos, cadenas, arreglos y matrices: Nombre_Dato directiva valor(s)

Ejemplos
1.- se desea declarar una variable contador de tipo byte inicializada a cero en el segmento de data .data Db contador 0 2.- define una variable llamada carcter inicializada con el carcter Z .data carcter db z 3.- declara una cariable promedio inicializada con tu promedio general .data promedio dw 89.99

Evidencia No.4
Define los siguientes esqueletos de programas en ensamblador
A. Guardar como p1.asm un documento creado en un block de notas B. Define las siguientes variables inicializadas a cero: promedio, sumatoria, contador_repe, contador_normal

Guardar como p2.as, declarando las siguientes variables


Un arreglo inicializando con 4 valores de tipo carcter La variable ndice inicializada a cero Un mensaje con tu nombre

Modos de direccionamieto
Son las formas que hacen referencia a la memoria Varian de autor a autor, se identifican entre 7 u 8 modos de direccionamiento
1. 2. 3. 4. 5. 6. 7. DIRECCIONAMIENTO INMEDIATO DIRECCIONAMIENTO POR REGISTROS DIRECCIONAMIENTO DIRECTO DIRECCIONAMIENTO INDEXADO IDRECTO DIRECCIONAMIENTO RELATICO A LA BASE DIRECCIONAMIENTO INDIRECTO DIRECCIONAMIENTO BASE INDEXADO

Explicacion de cada uno: (se utilizara la instruccin MOV para su explicacion)


1. DIRECCIONAMIENTO INMEDITO. Se le identifica cuando el operando fuente es una constante:

a) VALIDOS
a) b) c) MOV AH, 34H MOV BX,0F989H MOV CH,C

b) INVALIDOS
a) b) c) MOV CL,9999H MOV DH,A MOV A,BL

2. DIRECCIONAMIENTO POR REGISTROS. Se identifica cuando tanto el operador fuente como el operador destino son registros validos del microprocesador a) VALIDOS
a) b) c) d) MOV AX, BX MOV XH,AL MOV CX,CL MOV SI,DI

b) INVALIDOS
a) b) c) MOV AH,BX MOV DL,BP MOV CL,CX

3. DIRECCIONAMIENTO DIRECTO. Se identifica cuando


tanto el operador fuente o el operador destino es una variable declarado en el segmento de datos
a) VALIDOS
a) b) c) MOV DX,PALABRA MOV DATOS,AX MOV CARCTER,CH

b)

INVALIDOS. No es permitido direccionar de variable a variable o de memoria a memoria


a) b) c) d) MOV PALABRA,DATOS MOV CARCTER,DATOS MOV CARCTER,ARREGLO[0] MOV PALABRA,PALABRA

Ejemplos
Disee un programa en ensamblador que utilice los primeros 3 modos de direccionamiento, haga referencia a por lo menos 2 instrucciones Disee un programa en ensamblador que declare 3 arreglos de 4 elementos cada uno, los 2 primeros arreglos inicializado con cualquier conjunto de caracteres. Pasar el contenido del primer vector al tercer vector y el contenido del segundo vector al primer vector . Identifica por medio de comentarios el modo de direccionamiento utilizado en cada instruccin

3. DIRECCIONAMIENTO INDEXADO DIRECTO. Se identifica cuando tanto el operador fuente u el operador destino es una variable declarado en el segmento de datos indexado por alguno de los registros ndices (SI, DS)
a) VALIDOS
a) b) c) MOV ARREGLO[SI],A MOV CL,VECTOR[DI] MOV VECTOR[SI]

b)

INVALIDOS. No es permitido direccionar de variable a variable o de memoria a memoria


a) b) c) d) MOV PALABRA,DATOS MOV CARCTER,DATOS MOV CARCTER,ARREGLO[0] MOV PALABRA,PALABRA

You might also like