2. “ESQUELETO DE UN PROGRAMA EN
AE cNoSnAtinMuBaLcAióDnO sRe” 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
3. 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
4. “DECLARACIÓN DE DATOS EN EL SEGMENTO DE
ExiDstAeTnO uSn” 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.
5. 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 en
el 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
6. 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
7. 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´
8. 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
9. 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]
10. 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.
11. 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]