Está en la página 1de 3

Cuestionario P1

01. ¿En qué consiste el Modelo de Von Newman?


02. Una computadora que no aplica el modelo de Von Newman, ¿qué viene siendo?
03. ¿Qué se necesita para saber en qué instrucción va un programa?
04. ¿Por qué les llamamos 'configuraciones' a las intrucciones?
05. ¿Qué es lenguaje de máquina?
06. ¿Sólo hay un lenguaje ensamblador? ¿Por qué?
07. ¿En qué consiste el proceso de ensamblar? (no cómo lo hace, sino qué viene siendo)
08. ¿En qué consiste el proceso de desensamblar?
09. ¿Cuál es el cerebro del microprocesador?
0A. ¿En qué se basa para dar órdenes a los componentes del microprocesador?
0B. ¿Qué parte del CPU se encarga de ejecutar las instrucciones?
0C. ¿Qué parte del CPU se encarga de manejar las direcciones de datos e instrucciones y obtener
instrucciones?
0D. ¿Por qué el PC necesita una ALU?
0E. ¿Se necesita ensamblar, compilar o ligar lenguaje de máquina?
0F. ¿Por qué primero compilamos y luego ligamos?
10. ¿Por qué se usan etiquetas en los archivos .obj?
11. ¿Por qué al ligar se usan direcciones relativas?
Ejercicios
A. Entradas y salidas básicas, ciclos, decisiones, cadenas
01. Desplegar "Hola, Mundo", en pantalla.
02. Desplegar 2 cadenas: "Hola" y "Me llamo nombre".
03. Hacer progrma que lea un teclazo, y luego que despliegue: "La tecla introducida es la: _".
04. Hacer programa que lea un teclado en mayúscula y luego lo despliegue en minúscula.
05. Programa que empieza en la dirección 100 y salta a la dirección 120 para desplegar un mensaje almacenado
en 110. Hacerlo con JMP 120, JMP AX, JMP [BX], JMP [DI+2] y JMP [130].
06. Desplegar su nombre tres veces.
07. Programa que lea un dígito decimal y una letra del teclado, e imprima la letra N veces, donde N corresponde
al dígito decimal tecleado.
08. Desplegar el nombre así:Jordan ordan rdan dan an n.
09. Hacer programa que despliegue 012345 usando LOOP.
0A. Desplegar el alfabeto.
0B. Hacer programa que imprima el alfabeto en mayúsculas, en minúsculas y números del 0 al 9.
0C. Hacer programa que imprima el alfabeto así: AaBbCcDd.....Zz.
0D. Hacer cinco veces: leer letra en mayúscula, desplegar en minúscula.
0E. Hacer programa que despliegue A AB ABC ... ABCDE..Z.
0F. Programa que lea dos letras del teclado, y despliegue aquella que sea menor alfabéticamente.
10. Hacer programa que haga rebotar la palabra "boing" en la misma.
línea, de izquierda a derecha.
11. Hacer programa que lea letras del teclado, aparecerán en la pantalla, excepto los espacios (20h) y terminará
al teclear una 'q'.
12. Programa que convierta mayúsculas en minúsculas y viceversa. Termina cuando se oprima 'return' (0Dh).
13. Programa que convierta las mayúsculas en minúsculas y terminar con un espacio (20h).
14. Programa que lea letras, hasta que se tecleé la barra espaciadora,
e imprima "Mayuscula" o "Minúscula", dependiendo de la letra.
B. Operaciones aritméticas, representaciones numéricas, cambios de base,
entradas y salidas con números
01. Programa que sume 1, 85, 1319, 1001, 2888.
02. Sumar 38+2 y el resultado ponerlo en AL, lo que está en AL pasarlo a AH y poner 00 en AL. Sumar 1111 a
AX. Duplicar AX.
03. Sumar 123456 y 654321.
04. Meter los valores 03, 04, 08 en las direcciones 120, 121, 122 y
después sumarlos.
05. Leer 2 dígitos decimales del teclado y ponerlos en BCD comprimido.
06. Partir de un número en memoria en BCD-C, y desplegarlo.
07. Programa que lea dos números de dos dígitos c/u, los sume y despliegue el resultado. Todo en decimal.
08. Multiplicar 5 x 8 con IMUL.
09. Dividir 8215 50DF / F012
0A. Averiguar si una suma en BCD-C tambien define carry.
0B. Hacer programa que lea dos números de 4 dígitos decimales del teclado y los sume.
0C. Leer 2 números hexadecimales de 4 dígitos, sumarlos y desplegarlos. Usar subrutinas.
0D. Programa que despliegue el contenido de un registro (8 bits) hexadecimal, en pantalla.
0E. Programa que lea 2 dígitos hexadecimales del teclado y los guarde en un registro.
0F. Programa que lea 2 cantidades hexadecimales de 2 dígitos, los sume y despliegue el resultado en pantalla.
10. Igual que el anterior, pero desplegar un '1' al principio si hubo carry en el resultado.
11. Programa que lea un un número de dos dígitos decimales, lo convierta a hexadecimal y lo despliegue (en
hexadecimal).
12. Programa que lea dos números decimales de dos dígitos c/u, los convierta a hexadecimal, los multiplique,
el resultado pasarlo a decimal y desplegarlo.
13. Modificar el programa anterior para que la rutina de leer cada número decimal sea una misma función que
es invocada como subrutina.
14. Programa que calcula factorial de un número decimal, cuyo resultado máximo sea de 4 dígitos decimales.
Las operaciones deberán realizarse en hexadecimal.
15. Hacer programa que lea 1 número decimal de 4 dígitos, y lo convierta a hexadecimal.
C. Funciones, recursividad, parámetros, variables locales, pila
01. Por medio de la recursividad, hacer la sumatoria de un número.
02. Programa que lea número decimal de 2 dígitos y calcule la sumatoria, por recursividad. Sugerencia:
convertirlo a hexadecimal, calcular y convertir a decimal.
03. Programa de la sumatoria, pero pasando argumentos y resultados al estilo C.
04. Sumatoria con espacios para variables locales.
05. Hacer Fibonacci con ciclos.
06. Hacer Fibonacci de algún número, por medio de la recursividad.
Debug
a Ensambla. Argumento (opcional) dirección

a 100

1234:0100 mov ah,02

1234:0102 mov dl,41

u Desensambla. Argumento (opcional) dirección de inicio,


dirección de fin
u 100 110

1234:0100 BA3001 MOV DX 0130

1234:0103 B409 MOV AH,09

...

g Ejecuta. Argumento (opcional) dirección de inicio

r Mostrar registros. Argumento (opcional) registro para mostra


y/o modificar

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE


BP=0000 SI=0000

DS=13BB ES=13BB SS=13BB CS=13BB IP=0100 NV


UP EI P

r cx

CX 0000

:20

n Definir nombre para guardar o cargar. Argumento: el nombre

n prog.com

q Salir del debug

e Editar con cadena. Argumentos: dirección de inicio, cadena

e 120 'Hola Mundo' 0D 0A '$'

También podría gustarte