INSTITUTOS DE ESTUDIOS UNIVERSITARIOS ESTRUCTURAS EN ENSAMBLADOR ICC ORLANDO ELIU JIMENEZ DIAZ EJERCICIOS DE ENSAMBLADOR TERCER PARCIAL
1. Realizar un programa que imprima los números del 1 al 5, es decir: 12345 2. Realizar un programa que imprima los números pares del rango 1 a F, es decir: 2468ACE 3. Realizar un programa que imprima los números impares del rango 1 a F, es decir: 13579BDF 4. Realizar un programa lea un número hexadecimal (de 0 a F) y determinar si el número es par o impar y mostrarlo por pantalla. Por ejemplo: Escribe un numero: 2 Es par Otro ejemplo Escribe un numero: 5 Es impar 5. Realizar un programa que dados dos números hexadecimales (de 0 a F) determinar si uno es mayor que otro, es menor que otro o si son iguales. Ejemplo Dame un número: 4 Dame otro número: 6 4 es menor que 6 Otro ejemplo: Dame un número: A Dame otro número: 3 A es mayor que 3 Otro ejemplo: Dame un número: 5 Dame otro número: 5 Son Iguales
6. Realizar un programa que al introducir una letra MAYUSCULA (A, B, C…Z) inmediatamente se imprima su correspondiente en minúscula. Si se introduce una letra minúscula, un número u otro caracter no se debe de realizar otra acción. La lectura termina hasta introducir un punto. Ejemplo: AaBbcde12387+987-45RrTt8789EeWw1.
1
7. Realizar un programa que lea caracteres y, de acuerdo al carácter introducido, lo clasifique en: a. a…z A…Z es letra b. 0…9 es numero c. +,-.*,/ es operador d. En caso de no ser ninguno de los anteriores es otro El programa termina al introducir un punto (.) Por ejemplo: A es letra 1 es numero c es letra 6 es numero + es operador , es otro . 8. Realizar un programa que guarde por defecto en un registro, un número hexadecimal de 2 dígitos y lo imprima a pantalla. Por ejemplo: Guardar en BX el numero 1B y mostrar en pantalla: Numero guardado en BX: 1B
9. Realizar un programa muestre lo siguiente: Dame un número: (Leer número hexadecimal de 0 a F) Dame otro numero: (Leer numero hexadecimal 0 a F) Realizar la suma de esos dos números e imprimir el resultado con dos números, por ejemplo Dame un número: B Dame otro número: F El resultado de la suma es: 1A Otro ejemplo: Dame un número: 5 Dame otro número: 4 El resultado de la suma es: 09
10. Realizar un programa que muestre la cadena “Introduce Password:” a la mitad de la pantalla y que lea SIN eco caracteres hasta introducir un ENTER. Al terminar de leer, verificar que los caracteres introducidos sean igual a la cadena EClasEk011, introducida previamente mediante el comando E de debug por ejemplo en la dirección 300, y si los caracteres introducidos corresponden a los de la cadena entonces limpiar pantalla y escribir a la mitad de la pantalla “Password correcto” en caso contrario escribir “Password incorrecto”.
2
11. Realizar un programa que, dada una cadena introducida por teclado, determine si es un palíndromo o no (un palíndromo es una palabra que se lee igual adelante que hacia atrás). Por ejemplo: Introduce una palabra: anita lava la tina La cadena anita lava la tina es palíndromo 12. Realizar un programa que dadas dos cadenas introducidas por teclado, verifique si son iguales. Ejemplo Dame la cadena 1: Hola mundo Dame la cadena 2: Hola mundo Las dos cadenas son iguales Otro ejemplo: Dame la cadena 1: Hola mundo Dame la cadena 2: Hola amigo Las dos cadenas no son iguales
13. Con el servicio 02H de la interrupción 1A podemos obtener la hora del sistema en decimal. Se usa de la siguiente manera: MOV AH,02 INT 1A Al hacer esto, las horas se guardan en CH, los minutos en CL y los segundos en AL. Con base en esto, realizar un programa en ensamblador que muestre la hora del sistema de la siguiente manera: La hora del sistema actual es 18:20:24 14. Realizar un programa que, dada una cadena introducida por teclado, cuente el numero de A's, E's, I's, O's, y U's introducidas y presenta resultados del conteo. Por Ejemplo: Introduce una cadena: Hola mundo feliz A’s: 01 E’s: 01 I’s: 01 O’s: 02 U’s: 01
3
15. El siguiente algoritmo sirve para convertir un número hexadecimal a decimal en ensamblador. Suponemos que tenemos el número 1B5 entonces hay que realizar los siguientes pasos: Dividir ese número 1B5 entre 0AH (10 base decimal) 1B5 / 0A = Cociente: 2B Residuo: 7 El siguiente paso es dividir el nuevo cociente 2B entre 0AH 2B / 0A = Cociente: 4 Residuo: 3 El siguiente paso es dividir el nuevo cociente 4 entre 0AH 4 / 0A = Cociente: 0 Residuo: 4 El cociente ya es cero (0) por lo tanto no se hace otra división mas. Finalmente se deben de tomar el valor del residuo de cada división y ponerlos de la siguiente manera:
437 Por lo tanto, el numero 1B5 (Hexadecimal) es igual a 437(Decimal). Entonces teniendo en cuenta este algoritmo, habrá que codificarlo en ensamblador considerando lo siguiente: Predefinir el número a convertir en el registro BX, por ejemplo, BX = 1C0 Convertir dicho número a decimal Imprimir a pantalla: La conversión hexadecimal a decimal es 1C0 = 448
4
Las especificaciones son: En un documento de Word poner lo siguiente - Portada, incluyendo numero de equipo e integrantes -
Código fuente con el segmento(amarillo), el desplazamiento (verde) y las instrucciones (rojo). Ej: 0D01:0100 MOV AX,BX 0D01:0101 ADD AX,BX 0D01:0102 SUB AX,BX 0D01:0104 PUSH AX 0D01:0105 PUSH AX 0D01:0107 MOV AX,12 0D01:0108 MOV BX,44
-
Impresión de pantalla de la ejecución y resultados finales del programa.
Creación de archivo .COM con la siguiente estructura de nombre numejer _3p_equip.COM. Ej.
12_3P_1.COM -
Se le pedirá a cada integrante del equipo explicar el funcionamiento de algún programa al azar. En caso de no saber contestar se le restaran puntos a la calificación total correspondiente a todos los ejercicios.
5