ESQUELETO DE UN
PROGRAMA EN
ENSAMBLADOR
N.L 32
ROMERO HERNÁNDEZ GABRIELA
VERÓNICA.
HORA: 8:00-9:00AM
• A continuación se presenta la estructura básica de un
programa en ensamblador con extensión .asm.
• Tipo de modelo de un programa en ensamblador.
• .model stall
Segmento
• .stack
de pila
• .data Segmento
de Datos
Determina el
tamaño de los
segmentos.
Se declaran
Variables, Arreglos,
Matrices, Cadenas
• Code
mov ax,@data
mov ds,ax
push ds
…codigo programa
mov ax, 4c00h
int ah
end
Inicialización
Finalización
Segmento
de
Código
DECLARACION DE DATOS EN EL
SEGMENTO DE DATOS.
• DIRECTIVAS.
db= define byte= 8bits= 1 Carácter.
dw= define palabra= 16bits= 2 Caracteres.
dd= define doble palabra= 32bits= 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, matrices.
Segmento
Nombre_Dato directiva calor(es)
de Datos
Ejemplo:
Se desea declarar 1 variable contador de tipo byte
inicializada a cero en el segmento de datos.
.data
contador db 0
• 2) Define una variable llamada “Caracter” inicializada
con el carácter “Z”.
.data
carácter db ‘z’
3) Declara una variable “promedio” inicializada con tu promedio
general
.data
promedio dw 84.25
MODOS DE DIRECCIONAMIENTO.
Son las formas en que se hace referencia a la memoria.
Varian de autor a autor, se identifican entre 7 u 8 modos de direccionamiento.
1. Direccionamiento inmediato.
2. Direccionamiento por registros.
3. Direccionamiento directo
4. Direccionamiento indexado directo
5. Direccionamiento relativo a base
6. Direccionamiento indirecto
7. Direccionamiento base indexado
Explicación de cada uno, (se utilizara la instrucción MOV para la explicación).
1. Direccionamiento inmediato. Se identifica cuando el operando 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
• C) mov ‘A’, BL’
• 2. Direccionamiento por registros. Se identifica
cuando tanto el operando fuente como el
operando destino son registros validos 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
• C) mov cl, cx
• 3. Direccionamiento directo. Se identifica cuando
el operando fuente o el operando destino es una
variable declarado en el segmento de datos.
• Ejemplos:
• A) mov dx, palabra
• B)mov datos, ax
• C) mov carácter, ch
• Invalidos. No es permitido direccionar de variable a variable o
de memoria a memoria.
•
•
•
•
A) mov palabra, datos
B) mov carácter, datos
C) mov carácter, arreglo [0]
D) mov palabra, palabra
• Diseñe un programa p3.asm 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 clase.
DIRECCIONAMIENTO INDEXADO DIRECTO
• Se identifica cuando el operando fuente u
operando destino es una variable declarada en el
segmento de datos indexada por alguno de los
registros indices (SI, DI):
• Ejemplos:
• A) mov arreglo[si], ‘A’
• B) mov cl, vector [DI]
• C)mov vector [SI], 0
• Inválidos.
• A) mov vector1[SI], vector2[DI]
• B)
• C)
• Diseñe un programa en ensamblador p4.asm que
declare 3 arreglos de 4 elementos cada uno, los
dos 1ros arreglos inicializados con cualquier
conjunto de caracteres. Pasar el contenido del 1er
vector al 3er vector y el contenido del 2do vector
al 1er vector.
• Identifica por medio de comentarios el modo de
direccionamiento utilizado en cada instrucción.
Descargar

esqueleto de un programa en ensamblador - Wiki