130 likes | 569 Views
ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR. N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM. Determina el tamaño de los segmentos. 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.
E N D
ESQUELETO DE UN PROGRAMA EN ENSAMBLADOR N.L 32 ROMERO HERNÁNDEZ GABRIELA VERÓNICA. HORA: 8:00-9:00AM
Determina el tamaño de los segmentos. • 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. • .modelstall • .stack • .data • Code movax,@data movds,ax pushds …codigo programa movax, 4c00h int ah end Segmento de pila Se declaran Variables, Arreglos, Matrices, Cadenas Segmento de Datos Inicialización Segmento de Código Finalización
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. 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 Segmento de Datos
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) Movbx, 0F989H • C) mov ch, ‘c’ • Invalidos. • A) mov cl, 9999h • B) movdh, ‘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) movax, 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) movarreglo[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.