ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR
Download
Report
Transcript ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR
No. Lista 31
Teresita Ramírez Uribe
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
.stack
.data
Determina el
tamaño de los
segmentos.
Segmento
de pila
Segmento de
Datos
Se declaran Variables,
Arreglos, Matrices,
Cadenas
Code
mov ax,@data
mov ds,ax
push ds
código programa
mov ax, 4c00h
int ah
end
Inicialización
Segmento
de Código
Finalización
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.
Nombre Dato directiva calor(es)
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 “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 dw 84.25
Son las formas en que se hace referencia a la memoria.
Varían 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
(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’
Inválidos:
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
Inválidos.
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
7.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 índices (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 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
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.