Logo Studenta

practica3 Lenguajes de interfaz - Mauricio axel 20

¡Este material tiene más páginas!

Vista previa del material en texto

Práctica 3 
 
Objetivo: 
Desarrollar programas por medio de prácticas en lenguaje ensamblador, los cuales 
ejemplifiquen las diferentes instrucciones y funciones básicas, así como la forma de 
estructurarla 
 
Ejercicio 1 
 
Diseña un programa en el emulador EMU8086 que te permita verificar si dos 
cadenas son iguales 
 
Lo primero que haremos es definir los básicos de cada programa como es el .model, 
.stack, en el .data vamos a definir nuestros mensajes que serán los mensajes que se 
desplegaran una vez que el programa ya este ejecutado 
 
Después en la sección de código donde el programa imprimirá las cadenas. 
 
 
 
 
 
 
Pasamos a la parte del bloque de inicio, donde la variable “n” se moverá al segmento 
“si” el cual almacenara las cadenas. 
 
 
En donde se compara letra por letra las cadenas y si uno no coincide esta manda 
directamente a fin y termina el programa, en la parte de jne saltara si la cadena 1 es 
diferente de la segunda cadena y desplegara el mensaje de que son diferentes. 
 
Lo mismo ocurre con las cadenas iguales pero este se compara con “si” y si llega hasta el 
$, en esta parte se utiliza el salto jc para esto se despliega el mensaje de fin2, y se utiliza 
el loop que este va a ciclar el programa hasta terminar las comparaciones que se realicen. 
 
-Comparación de cadenas diferentes. 
 
-Comparación de cadenas iguales. 
 
 
 
-Captura de los registros de salida y banderas del programa. Cadenas iguales. 
 
 
 
-Captura de los registros de salida y banderas del programa. Cadenas diferentes. 
 
 
 
 
 
Ejercicio 2 
 
Diseña un programa en el emulador EMU8086 en el cual realices la comparación 
de 2 números que escribas mediante teclado (2 dígitos) y utilices los saltos 
condicionales. 
Lo primero que tenemos que hacer es lo básico, definir el programa como lo es el 
.model y .stack. El .data vamos a definir las variables que vamos a utilizar para este 
programa, en el cual vamos a utilizar unidades y decenas, además una variable donde 
se almacenara el numero completo y los mensajes que se desplegaran. 
 
Después en el bloque de código el programa imprimirá los mensajes que nosotros 
hemos definido en el bloque de data. 
 
A continuación se creara un espacio para las decenas donde le indicaremos al 
progema que ahí se va a guardar las decenas del numero que vamos a introducir. 
 
Al programa le indicamos que el numero de las decenas que se encuentra en “al” este 
se multiplique con lo que hay en “bl” y después añade el numero que se inserto en las 
unidades creando el numero completo, que se almacena en la variable “numero1”,lo 
mismo se hace con la variable “numero2”. 
Una vez almacenados, se le indica al programa que debe compararlos utilizando cmp. 
 
Después de esto le indicamos al programa que este debe verificar que cual de los 
numeros es mayor o si son iguales, utilizando jc, jz y jnz. Dependiendo de la condición 
el programa terminara. 
 
 
Captura cuando el primer número es mayor y sus banderas. 
 
 
 
Captura cuando el segundo número es mayor y sus banderas. 
 
 
 
 
Captura cuando los números son iguales y sus banderas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
Ejercicio 3 
Diseña un programa en el emulador EMU8086 que cuente del 0 al 9 en forma 
ascendente o descendente muestre en pantalla el conteo solicitado, utilizando 
ciclos 
 
Como inicio debemos poner lo que es el .model, .stack , y ahora en el punto data 
pondremos nuestras variables, y en nuestro caso usamos 9 contadores y 9 mensajes para 
hacer todos los ciclos correspondientes. 
 
 
 
 
 
 
 
 
En la parte del código hacemos lo normal de imprimir el mensaje e iniciamos nuestros 
ciclos, cada uno con su contador para que este sepa cuando va a tener que hacer el salto 
una vez que el contador haya terminado. 
 
 
 
 
 
 
Una vez que llega al ciclo9 este hace el ultimo salto para que el programa termine. 
 
Y ejecuta lo siguiente 
 
 
 
 
 
 
 
 
 
 
Ejercicio 4 
Diseña un programa en el emulador EMU8086 el cual tiene que mostrar 2 
mensajes e imprimir cada mensaje (n) veces, utilizando saltos incondicionales. 
 
 Como hemos visto lo primero que se debe de poner en un programa es lo básico que es 
el .model y .stack, y el .data pondremos nuestras variables, en este caso son dos 
contadores y dos mensajes predefinidos para mandarse a imprimir. 
 
 
En el bloque de .code ,donde se mandara a imprimir los mensajes, y en eso iniciamos 
nuestros ciclos ,para que el mensaje se imprima el numero de veces que nosotros le 
indiquemos en nuestro caso son 4 veces cada mensajes y como podemos observar en el 
código inicia con el contador y después viene un salto ,pero este es ignorado hasta que el 
el contador llegue a su fin y después salta al “ciclo1” que es donde se imprimirá nuestro 
segundo mensaje, una vez que haya acabado de imprimirse el segundo mensaje. 
 
 
Una vez acabado el “ciclo1” este dará un salto a salir, por ende, el programa terminará. 
 
 
 
 
 
Captura de el programa ejecutando los dos mensajes uno después de que haya terminado 
el primero, siendo impreso 4 veces cada uno y sus banderas. 
 
 
 
 
Captura del programa ejecutando el primer mensaje 8 veces y el segundo mensaje 3 veces 
. 
 
 
 
 
 
 
 
 
Ejercicio 5 
 
Diseña un programa en el emulador EMU8086 que realice las operaciones de 
suma, resta, multiplicación y división 
 
1. Lo primerop que debemos hacer es definir los elementos básicos del programa 
como el modelo, la pila y el espacio de los datos. 
 
 
2. Después vamos a crear las variables en donde se guardarán los números que 
escribiremos y ahí se guardaran para poder hacer las operaciones aritmeticas. 
 
3. Se escribirán los mensajes que se imprimirán en pantalla tanto al inicio como al 
final del programa. 
 
4.En la parte del .code se puso lo que son los comandos necesarios para cada 
operación aritmética que en la mayoría de los casos para todos fue mov, dl, bh para 
juntar un número con otro y después el comando add para la suma, el comando add 
igualmente para la resta, para la multiplicación fue el comando mul y para la división 
fue el comando div. 
 
 
 
 
 
 
 
 
5. Por último ponemos el comando .exit y end para salir y terminar el programa. 
 
Y obtenemos como ejecución lo siguiente, en el cual ingresamos los números 8 y 2 
y nos da sus respectivas operaciones aritméticas. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Conclusiones. 
Conclusión Mauricio Axel Lopez Anselmo. 
Una vez concluido con todos los ejercicios, pude comprender los conceptos de una mejor 
manera que hasta el momento habíamos visto en clase, con estos ejercicios pude poner 
en práctica estos conocimientos adquiridos acerca de los saltos, los ciclos, las 
comparaciones y las capturas de cadenas y como todos estos conceptos pueden 
interactuar unos con otros para hacer funcionar una gran variedad de programas y que 
estos pueden ser reconocidos por el lenguaje ensamblador.

Continuar navegando