You are on page 1of 5

FACULTAD DE INGENIERÍA

Estructura y Programación de Computadoras


Proyecto de medio término
Lenguaje ensamblador

En las últimas clases se ha trabajado con las instrucciones básicas del lenguaje ensamblador para
microprocesadores 8086/88 y compatibles. Se han analizado varios programas y resuelto diversos problemas
de programación. Se ha trabajado con dos libros, al menos, y ha llegado la hora de presentar un proyecto que
justifique y demuestre el aprendizaje de los alumnos de este curso hasta el momento. Además, al principio del
semestre, los alumnos hicieron notar su gusto por los videojuegos; parte de los objetivos de este proyecto es
acercarlos al mundo de los creadores de esos programas de entretenimiento. Estas son las razones por las que
se hace necesario este proyecto.

Objetivos:

1. Incrementar los conocimientos y práctica de los alumnos en el lenguaje ensamblador del


microprocesador 8086.
2. Mostrar evidencia del aprendizaje de la programación de bajo nivel.
3. Evaluar de manera objetiva los avances del alumno en esta área de la ingeniería.
4. Acercar al alumno al mundo de los programadores de videojuegos.

Descripción:
Los alumnos de cuarto semestre (4010-IC) de la carrera de Ingeniería en Computación de la
Universidad Americana de Acapulco, quienes cursan la materia de Estructura y Programación de Computadoras
(1429), programarán por parejas, uno de los programas que se mencionan adelante. La programación deberá
realizarse en lenguaje ensamblador para el microprocesador 8086/88. Cada pareja deberá tener un nombre
de equipo y color con los que se identificarán para cualquier asunto relacionado con este proyecto, el nombre y
color del equipo serán comunicados al profesor en la siguiente sesión de clase a partir de la entrega del
presente documento. El día 29 de abril del 2011 se entregará un CD conteniendo tres carpetas, una por cada
equipo; cada carpeta contendrá los archivos con extensión ASM, OBJ, MAP, LST, EXE del programa, un
documento PDF explicando el objetivo del programa, la forma de ejecutarlo y terminarlo, el listado comentado
y toda la documentación necesaria.

Programas a realizar:
1. Tetris.
2. Pacman.
1
3. Space Invaders.

Evaluación:
Rubro Ponderación
Planeación del proyecto 10%
Revisiones parciales 5%
Documentación completa PDF 10%
Archivos en CD 3%
Listado comentado 15%
Ejecutable funcionando 30%
Limpieza de código 5%
Buena redacción de los documentos 5%
El juego cumple con todos los requerimientos 15%
El juego cumple con más de la mitad de los requerimientos 7%
El juego cumple con menos de la mitad de los requerimientos 0%
La buena planeación de un proyecto lleva siempre al éxito; el 10% de la calificación se entregará a la
parte de la planeación correctamente documentada, con la explicación del problema, objetivos, requisitos,
propuesta estratégica, diagramas de flujo, cronograma y cualquier otra sección que el equipo considere
necesaria. Para revisar los avances que van teniendo, se realizarán revisiones parciales los días viernes 25 de
marzo, lunes 4, miércoles 13 y lunes 25 de abril y, si el equipo avanza de acuerdo a su planeación o más,
obtendrá el 5%; para cada revisión será necesario llevar la documentación completa hasta el momento.

La entrega final se realizará el viernes 29 de abril, en esa fecha cada equipo presentará al grupo su
programa funcionando y explicará su código. Además, ese día se entregará al profesor un CD (3%) como se
explicó con anterioridad, conteniendo la documentación completa en formato PDF (10%), si el documento
tiene buena redacción se otorgará otro 5%, listado comentado (15%), el archivo ejecutable funcionando
(30%), si el ejecutable cumple con todos los requerimientos se otorgará 15%, si cumple con más de la mitad
pero no con todos, se entregará solo el 7%; y si cumple con menos de la mitad no se entregarán puntos.
Además, para mejorar las técnicas de programación y siguiendo los algoritmos, se evaluará la limpieza del
código con el 5% de la calificación.

Se penalizará con el 40% de la calificación al equipo que transfiera por descuido o intencionalmente
cualquier clase de virus a la computadora del jurado.

Entrega:
La entrega del CD y la ejecución de los programas se realizarán el viernes 29 de Abril a las 7:00 de la
mañana en el salón A-303 de la Universidad Americana de Acapulco. Ese mismo día se entrega el CD con las
tres carpetas como ya se explicó. El retraso en la entrega será penalizado con el 5% por cada día natural.

2
Requerimientos de programa Tetris.

El programa Tetris es un juego de computadora que mejora la coordinación mano-ojo del


jugador. Se inventó en 1985 y desde entonces se ha convertido en uno de los juegos computacionales
no violentos más exitosos. El objetivo del juego es acomodar horizontalmente las piezas de diferentes
formas que van cayendo de manera que no queden espacios; cada vez que se completa una línea
horizontal, esta línea desaparece después de brillar dos veces. El programa termina cuando ya no hay
más piezas que colocar o ya no hay espacio para moverlas.

El programa que realizarán deberá:

1. Escribirse en lenguaje ensamblador para procesador 8086/88.


2. Mostrar al menos 3 formas de piezas.
3. Tecla [I] para iniciar.
4. Tecla [P] para pausa.
5. Tecla [T] para terminar programa.
6. Aparentar que las piezas caen.
7. Mientras caen las piezas podrán moverse horizontalmente utilizando las teclas
horizontales de cursor sin disminuir su velocidad de caída.
8. Cuando una pieza llega a la base, ya no podrá moverse.
9. Cuando se haya logrado completar una línea horizontal, el juego se pausa, la línea
desaparecerá, reaparecerá y volverá a desaparecer. Todas las líneas superiores
bajarán.

Adicionalmente y para aumentar el puntaje en ese rubro hasta el 50%, podrá:

1. Programarse en modo texto o en modo gráfico.


2. Mostrar la próxima pieza que se dejará caer.
3. Mostrar piezas en 3D.
4. Mostrar piezas a color usando colores diferentes para formas diferentes.
5. Mientras caen las piezas rotarán 90º utilizando las teclas verticales de cursor.
6. Sonar el bip cuando desaparezca una línea.
7. Llevar y mostrar un conteo de las líneas que desaparecen.
8. Llevar un conteo de las 3 mejores puntuaciones.
3
Requerimientos de programa Pac-Man.

El programa Pac-Man es un juego de computadora que mejora la coordinación mano-ojo del


jugador. Se inventó en 1979 y desde entonces se ha convertido en uno de los juegos computacionales
más exitosos, pues en esa época existían juegos violentos que no eran del agrado de las chicas. El
objetivo del juego llevar a Pac-Man dentro de un laberinto a comerse todas las cápsulas esquivando
fantasmas que lo perseguían; cuando el círculo amarillo lograba comer una cápsula especial, las cosas
se invertían y él podía terminar con los fantasmas que alcanzara mientras seguía comiendo cápsulas.
El programa termina cuando un fantasma alcanza a Pac-man o cuando ya no hay cápsulas que comer.

El programa que realizarán deberá:

1. Escribirse en lenguaje ensamblador para procesador 8086/88.


2. Mostrar al Pac-man.
3. Mostrar un laberinto por donde Pac-man podrá moverse.
4. Mostrar cápsulas para comer.
5. Aparentar que Pac-man come las cápsulas.
6. Tecla [I] para iniciar.
7. Tecla [P] para pausa.
8. Tecla [T] para terminar programa.
9. Pac-man se mueve utilizando las teclas de cursor.

Adicionalmente y para aumentar el puntaje en ese rubro hasta el 50%, podrá:

1. Programarse en modo texto o en modo gráfico.


2. Mostrar a Pac-man en color amarillo.
3. Mostrar al menos un fantasma.
4. Hacer que el fantasma siga a Pac-man.
5. Colocar al menos 2 cápsulas especiales.
6. Sonar el bip cuando Pac-man come una cápsula especial.
7. Hacer que el fantasma huya de Pac-man cuando este ha comido una cápsula especial.
8. Llevar y mostrar un conteo de las líneas que desaparecen.

4
Requerimientos de programa Space Invaders.

El programa Space Invaders es uno de los primeros juegos de computadora, se inventó en


1978 y era uno de los juegos más violentos de la época pues su objetivo era derribar la mayor
cantidad de naves invasoras espaciales disparándoles con un cañón laser desde la Tierra.

El programa que realizarán deberá:

1. Escribirse en lenguaje ensamblador para procesador 8086/88.


2. Tecla [I] para iniciar.
3. Tecla [P] para pausa.
4. Tecla [T] para terminar programa.
5. Tecla [S] para disparar.
6. Mostrar hasta 3 líneas de naves invasoras que se mueven horizontalmente mientras
bajan por la pantalla.
7. Mostrar una estación terrestre con un cañón que se mueve horizontalmente con las
teclas de cursor.
8. Mostrar los disparos laser.
9. Cuando un disparo toque una nave, esta deberá desaparecer de la pantalla.

Adicionalmente y para aumentar el puntaje en ese rubro hasta el 50%, podrá:

1. Programarse en modo texto o en modo gráfico.


2. Utilizar colores para diferenciar los disparos.
3. Programar la capacidad de disparos desde las naves invasoras.
4. Sonar el bip cuando una nave sea destruida.
5. Mostrar los tres posibles tipos de invasores con colores diferentes.
6. Llevar y mostrar un conteo de las naves que desaparecen.
7. Después de cierta cantidad de naves derrotadas, se puede disparar una onda que
destruye a todas las naves invasoras en la pantalla.
8. Guardar un conteo de las 3 mejores puntuaciones.

You might also like