You are on page 1of 9

Universidad de las Ciencias Informticas Mquinas Computadoras I Curso 2006/2007

Gua complementaria de ejercicios para la segunda Prueba Parcial de MCI

1. Realice un programa en lenguaje ensamblador que permita calcular y mostrar, el rea total y el volumen de un cubo de arista a. La arista debe ser entrada por teclado.

2. Realice un programa en lenguaje ensamblador que permita calcular y mostrar el permetro y el rea de un rectngulo de lados a y b respectivamente. Los lados deben ser entrados por teclado

3. Elabore una macro que sea capaz de recibir como parmetro un nmero entero y devolver el factorial de ese nmero. El nmero pasado como parmetro no puede ser mayor que 12.

4. Dada una lista de 400 nmeros de dos byte entrada por teclado , determine la cantidad de nmeros que se encuentran en los rangos (50-100) y (150-100) y la muestre en pantalla.

5. Elabore un procedimiento que sea capaz de visualizar un nmero de hasta 32 bits por pantalla.

6. Dada una lista de 200 nmeros de un byte, busque la cantidad de nmeros que terminan en 0 y haga sonar la bocina de la maquina a esa cantidad en Hz hasta que se oprima la tecla T o t.

7. Dada una lista de 300 nmeros de 2 byte. Determine la cantidad de esos nmeros que dejan 1 en el resto de la divisin por 7 y mustrela en pantalla. Si esa cantidad es mayor que 100 suene la bocina a 10Khz hasta que se oprima la tecla ESC. 8. Dado el siguiente cdigo de un programa escrito en lenguaje ensamblador, diga que es lo que se muestra en pantalla. Explique.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas Mquinas Computadoras I Curso 2006/2007


DOSSEG .MODEL SMALL .DATA LISTA DB 5,15,2,12,27,6 DIVISOR DB 3 CONTADOR DB 0 .CODE XXX PROC MOV AX,@DATA MOV DS,AX MOV CX,6 MOV BX,OFFSET LISTA lazo:XOR AX,AX MOV AL,[BX] DIV DIVISOR OR AH,AH JNZ salta INC CONTADOR salta:INC BX LOOP lazo ADD MOV MOV INT CONTADOR,30H DL,CONTADOR AH,2 21H

MOV AX,4C00H INT 21H XXX ENDP END

9. Se tiene un computador PC/XT y se desea enviar datos de 24 bits en 24 bits a un perifrico que esta conectado con la interfaz paralela programable 8255. Configure al 8255 para que sea capaz de realizar esa accin. 10. Escriba el segmento de cdigo en ensamblador que permita programar el contador 2 del 8254 en el modo 3 para que genere una seal de salida a una frecuencia de 10 KHz. 11. La ROM-BIOS programa por defecto el contador 0 del 8253 en el modo3 (generador de onda cuadrada) con un perodo de la seal de salida del contador (OUT) de 55 milisegundos. Diga cual es la base de conteo que le enva la ROM-BIOS al contador 0. Reprograme este contador para que la seal de salida sea generada cada 10ms.

12. Elabore un programa en lenguaje ensamblador que le permita al usuario entrar una edad. Si la edad entrada es menor que 15 aos debe sonar la bocina una vez a 1KHz, si est entre 15 y 130 debe sonar la bocina dos veces a 2KHz. En caso de que el usuario entre una edad mayor que 130 se debe sacar un cartel por pantalla indicando que debe estar equivocado. En cualquiera de los casos, luego de sonar la bocina o sacar el cartel, se le debe preguntar al usuario si desea entrar otra edad, si responde que s (s) se debe dar la posibilidad de entrar otra edad, con cualquier otra tecla se debe salir del programa.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas Mquinas Computadoras I Curso 2006/2007 13. Realice un programa en lenguaje ensamblador que le permita al usuario entrar una cadena de caracteres por teclado, debe validar para que la cadena entrada tenga al menos un caracter y no ms de 200 caracteres. El programa debe mostrar un mensaje que diga la cantidad de letras maysculas que tiene la cadena. Si la cadena no tiene letras maysculas la bocina sonar a la frecuencia de 3Khz, sino sonar a la frecuencia de 500Hz. El programa se terminar cuando se oprima la tecla s, con cualquier otra tecla se debe dar la posibilidad de entrar otra cadena y volver a repetir el proceso.

14. Dado el siguiente programa escrito en lenguaje ensamblador y tras una corrida a mano de este cdigo, determine: a) El valor de la variable v2 b) El valor de la frecuencia a la cual suena la bocina. Justifique haciendo uso de los clculos pertinentes.

DOSSEG .MODEL SMALL .DATA v1 DW 2380 v2 DW 10 .CODE MAIN PROC MOV AX,@DATA MOV DS,AX XOR MOV MOV DIV DX,DX AX,v1 BX,v2 BX

MOV v2,AX OUT 42H,AL XCHG AL,AH OUT 42H,AL IN AL,61h OR AL,3 OUT 61h,AL MOV AX,4C00H INT 21H MAIN ENDP END

15. Elabore un programa en lenguaje ensamblador que le permita al usuario entrar el ao de nacimiento de 20 personas y muestre la cantidad de personas que sean menores de 20 aos, adems si existen ms de 10 personas que nacieron antes del ao 1970, haga sonar la bocina a una frecuencia de 5 Khz. El programa debe terminar cuando se presione la tecla (s) o (S). Nota: El programa no debe permitir que se entren aos de nacimiento menores que 1870 ni mayores que 2006.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas 4 Mquinas Computadoras I Curso 2006/2007 16. Dado el siguiente programa escrito en lenguaje ensamblador y tras una corrida a mano de este cdigo, determine: a) El valor de la frecuencia a la cual suena la bocina. Justifique haciendo uso de los clculos pertinentes. b) La condicin para que la bocina deje de sonar.

DOSSEG .MODEL SMALL .CODE MAIN PROC MOV AX,0000000001000000b SHL AX,1 ADD AX,1062 OUT 42H,AL XCHG AL,AH OUT 42H,AL IN AL,61h OR AL,00000011b OUT 61h,AL MOV Ah,7 INT 21h IN AL,61h AND AL,11111100b OUT 61h,AL MOV AX,4C00H INT 21H MAIN ENDP END

17. Realice un programa en lenguaje ensamblador, que dada las longitudes de los lados de un tringulo entrados por teclado, permita clasificarlo de forma tal que muestre un cartel en pantalla que diga: TRIANGULO EQUILTERO si el tringulo tiene los tres lados iguales, y suene la bocina 3 veces a 3000Hz; TRIANGULO ISSCELES a 2000Hz; TRIANGULO ESCALENO a 1000Hz; si el tringulo tiene todos sus lados diferentes, y suene la bocina 1 vez si el tringulo tiene solo dos lados iguales, y suene la bocina 2 veces

El programa debe terminar cuando se presione la tecla (t) o (T).

Nota: El programa no debe permitir que se entren longitudes de lados que sean 0 ni mayores que 99 unidades, adems las longitudes entradas deben cumplir con la desigualdad triangular.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas 5 Mquinas Computadoras I Curso 2006/2007 18. Dado el siguiente programa escrito en lenguaje ensamblador diga que es lo que hace. Explique brevemente.
DOSSEG .MODEL .DATA a db b db c db

SMALL 2 5 3

.CODE xxx PROC NEAR MOV AX,@DATA MOV DS,AX XOR MOV MOV SHL XOR MOV MOV SHL AX,AX AL,a CL,8 AX,CL BX,BX BL,b CL,4 BX,CL

XOR DX,DX MOV DL,c OR AX,BX OR AX,DX OUT 42H,AL XCHG AL,AH OUT 42H,AL IN AL,61H OR AL,00000011B OUT 61H,AL MOV AH,7 INT 21H IN AL,61H AND AL,11111100B OUT 61H,AL salir: MOV AX,4C00H INT 21H xxx ENDP END

19. Dado el siguiente programa escrito en lenguaje ensamblador y tras una corrida a mano de este cdigo, determine: a) El valor de la frecuencia a la cual suena la bocina. Justifique haciendo uso de los clculos pertinentes. b) La condicin para que la bocina deje de sonar.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas Mquinas Computadoras I Curso 2006/2007

DOSSEG .MODEL SMALL .CODE MAIN PROC MOV AX,1000000001000000b ROL AX,1 SUB AX,10 OUT 42H,AL XCHG AL,AH OUT 42H,AL IN AL,61h OR AL,00000011b OUT 61h,AL MOV Ah,1 INT 21h IN AL,61h AND AL,11111100b OUT 61h,AL MOV AX,4C00H INT 21H MAIN ENDP END

20. En Linux existe un comando (grep) que es utilizado para la bsqueda de patrones dentro de un texto. Simule (a pequea escala) este comando y determine si un patrn entrado por teclado se encuentra en una cadena previamente declarada. Si el patrn es encontrado muestre un cartel que lo refleje y haga sonar la bocina a 15 Khz.

Ejemplo: Patrn a buscar=ser CADENA=Este pueblo jams ser derrotado

Salida El patrn se encuentra. La bocina suena a 15 KHz!!!

21. Realice un programa en lenguaje ensamblador que solicite la entrada por teclado de una oracin y emita un sonido a 1 KHz si la oracin no comienza con maysculas, y uno a 2 KHz si la oracin no termina en punto.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas Mquinas Computadoras I Curso 2006/2007

22. Realice un programa en lenguaje ensamblador que solicite la entrada por teclado de una oracin, y detecte si contiene 's' de ser as debe sonar la bocina a 1 KHz hasta que se presione la 's' 3 veces consecutivas. 23. Realice un programa en lenguaje ensamblador que permita al usuario entrar un nmero de hasta 3 dgitos por teclado y le muestre un mensaje que diga si el nmero es primo o no. En caso de ser primo la bocina de la mquina deber sonar a la frecuencia de 2 KHz. El programa se terminar cuando se oprima la tecla ESC.

24. Realice un programa en lenguaje ensamblador que muestre en intervalos de 2 segundos los nmeros del 32 al 255 con su correspondiente smbolo ASCII separado por tres espacios, el programa debe mostrar el nmero y su ASCII y sonar la bocina de la mquina un segundo a la frecuencia de 5 KHz y un segundo en silencio antes de mostrar el otro nmero en la lnea de abajo.

25. Realice un programa en lenguaje ensamblador que solicite la entrada por teclado de una oracin, luego cuente la cantidad de vocales que contenga esta y suene la bocina a 500 Hz tantas veces como 'a' hayan en la oracin, a 1000 Hz tantas veces como 'e' hayan, a 1500 Hz tantas veces como 'i' hayan, a 2000 Hz tantas veces como 'o' hayan y finalmente a 2500 Hz tantas veces como 'u' hayan, el sonido debe ser en orden es decir primero la 'a', luego la 'e' y as hasta la 'u'. 26. Dado el siguiente cdigo de un programa escrito en lenguaje ensamblador. a) Determine a que valor se debe inicializar la variable VALOR para que la bocina interna de la mquina suene a una frecuencia de 10Khz b) Diga la tecla que se debe oprimir para que la bocina deje de sonar.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas Mquinas Computadoras I Curso 2006/2007

DOSSEG .MODEL SMALL .DATA VALOR DW ? .CODE XXX PROC MOV AX,@DATA MOV DS,AX MOV BX,0FFH SUB BX,VALOR MOV AX,BX OUT 42H,AL XCHG AL,AH OUT 42H,AL IN AL,61H OR AL,00000011B OUT 61H,AL

repite:MOV INT CMP JNE

AH,7 21H AL,0DH repite

IN AL,61H AND AL,11111100B OUT 61H,AL MOV AX,4C00H INT 21H XXX ENDP END

27. Realice un programa que comience sonando la bocina de la mquina a la frecuencia de 5 Khz. Cuando se oprima la tecla D la bocina deber sonar 1KHz menos y si se oprime la tecla A la bocina deber sonar 1 KHz ms, el programa terminar si se llega a 20 Hz o a 20 KHz o se oprima la tecla s.

28. Hacer un programa que suene la bocina de la PC con 1KHz para la tecla 1 un segundo , 2kHz para la tecla 2 dos segundos , 3 Khz para la tecla 3 tres segundos y as hasta la tecla 9. El programa debe terminar cuando se oprima la tecla s. Suponga que la frecuencia de trabajo del microprocesador es aproximadamente igual a 2,4Ghz.

29. Realice un programa permita al usuario entrar un digito por teclado que le indique a la maquina la cantidad de segundos que debe sonar la bocina con una frecuencia de 15 Khz, transcurrido este tiempo la bocina se apagara y le permitir al usuario realizar la misma operacin hasta que se oprima la tecla s, en este caso se terminara el programa. Suponga que la frecuencia de trabajo del microprocesador es aproximadamente igual a 2,4Ghz.

____________________________________________________________________________________________ Departamento de Sistemas Digitales

Universidad de las Ciencias Informticas Mquinas Computadoras I Curso 2006/2007

30. Realice un programa que comience

sacando un 10 por la pantalla y sonando la bocina 10

segundos a una frecuencia de 10 KHz, a continuacin saca por pantalla un 9 y la bocina suena 9 segundos a la frecuencia de 9 KHz, y as sucesivamente hasta el 1 donde se terminara el programa. Suponga que la frecuencia de trabajo del microprocesador es aproximadamente igual a 2,4Ghz.

31. Los nmeros Fibonacci forman una secuencia en la cual cada nmero es igual a la suma de los dos anteriores, o sea: Fi=Fi-1 + Fi-2 donde Fi es el -esimo nmero de Fibonacci. Los dos primeros nmeros de Fibonacci son por definicin iguales a 1 (F1 = F2 =1) Por lo tanto : F3 = F2 + F1 =1+1=2 F4 = F3 + F2 =2+1=3 F5 = F4 + F3 =3+2=5 y as sucesivamente Hacer un programa en ensamblador que genere e imprima en pantalla los n primeros nmeros de Fibonacci de forma tal de que al mostrarse cada nmero la bocina suene a una frecuencia igual al nmero de Fibonacci en Hz. El tiempo demorado entre un nmero y otro debe se de dos segundos. Nota: El numero entrado n debe ser menor que 1000

____________________________________________________________________________________________ Departamento de Sistemas Digitales

You might also like