Site hosted by Angelfire.com: Build your free website today!

Tec Virtual

Instituto Tecnológico de Villahermosa
Villahermosa, Tabasco, Mex.

Proyecto Final

Lenguaje Ensamblador
Prof. L.I. José Juan Ulín Ricárdez




Fecha de entrega:

Pendiente de programar, en el salón y hora impreso en el horario de clases. (Tope)

                                     Individual, por defecto.

En equipos de hasta cuatro personas, si lo justifica, se requiere autorización previa del profesor.
 


Temas ya apartados:

Aquí se irán poniendo los proyectos según los aparten los alumnos; no se considerará un proyecto aceptado por el profesor, sino hasta que aparezca aquí y reciban un correo de confirmación. Por favor, para apartar un tema, usen el correo electrónico ulinjr@hotmail.com
 


Requisitos:



Sugerencias:
 
 
Categorías Ejemplos, ordenados en forma creciente por su dificultad
Optimización Tomar un programa en C y traducirlo a ensamblador, para hacerlo más eficiente, por un factor al menos de 2 veces más rápido, a veces hasta de 4. Documentar el "caso"
 Imágenes
  • Mostrar archivos con formato PGP
  • Convertir archivos entre distintos formatos, por ejemplo:

  • - PCX a BMP (sencillo)
    - GIF a BMP
    - JPEG a BMP
    - TIFF multipágina a varios BMP
  • Mostrar archivos de video FLIC.
  • Mostrar GIFs animados
  • Mostrar y navegar por archivos TIFFs multipágina (p.ej. Fax)
  • Mostrar archivos JPEG
  • Mostrar archivos de video AVI.
  • Mostrar archivos de video Quick Time.
Programas educativos Pueden ser simulaciones o tutoriales de distintas materias, a niveles preparatoria y profesional; por ejemplo:

Química:

  • Tabla periódica interactiva.
  • Balanceo de ecuaciones
  • Graficar estructura atómica o molecular
  • Simulación de reacciones químicas.
Física:
  • Simulación del tiro parabólico
  • Simulación del comportamiento de los gases (presión, volumen y temperatura por ejemplo, afectan el movimiento de las moléculas del gas)
  • Simulaciones hidráulicas
  • En general, cualquier simulación gráfica de un fenómeno concreto, acompañada de un texto explicativo.
Estructura de datos:
  • Simulación del comportamiento de un ordenamiento (EJEMPLO YA UTILIZADO)
  • Simulación gráfica de operaciones sobre árboles, colas, pilas; o técnicas como Hash.
Ensamblador
  • Simulación del procesador - Fetch Execute usando 80x86 como referencia.
  • Simulación del funcionamiento de una familia de instrucciones; por ejemplo, los corrimientos y rotaciones.
 Juegos Deben ser originales, ya hemos tenido Pacman, carreras, Tetris y muchos de los juegos sencillos similares.

Hay oportunidades en:

  • Juegos educativos.
  • Juegos de estrategia.
  • Juegos de mundos virtuales.
Control de Hardware Por los puertos seriales y paralelos, puede ser hardware existente, como por ejemplo:
  • Joysticks.
  • Lápiz óptico.
  • Tabletas de dibujo.
O bien, hardware construido (buena oportunidad para ligar con otras materias):
  • Displays de letreros con opciones de Scroll.
  • "Robot" cambiador de discos.
Como oportunidades, hay algunas ideas de hardware relativamente fácil de construir:
  • Pad para escritura o dibujo a mano.
  • Display gráfico multicolor (similar a los usados para anuncios espectaculares que cambian).
  • Filtro para monitor "touchscreen".
  • Interfase para control de estéreos, videos o TV (por ejemplo, a través de control remoto).
Comunicaciones Comunicar información entre distintas máquinas es una aplicación natural de Ensamblador. Desafortunadamente, ya está un poco saturado.

Algunas aplicaciones ya hechas (no aceptables):

  • Talk entre dos máquinas por el puerto serial
  • Transferencia de archivos por el puerto serial o paralelo, entre dos máquinas.
  • Ejecución remota de un comando a través del puerto serial ("COMMAND.COM"remoto)
Algunas oportunidades:
  • Conferencia entre tres máquinas, usando el puerto paralelo.
  • Ejecución remota de un comando a través del puerto paralelo.
  • Talk o transferencia de archivos entre dos máquinas, usando tarjetas de red, sin usar facilidades del sistema operativo, sino directamente los drivers.

  • Construir dispositivos de hardware especialmente diseñados para comunicaciones, y controlarlos a nivel Ensamblador; por ejemplo:
    - Módem
    - Módem acústico
    - Convertidor a señales ópticas para comunicación por fibra óptica.
Librerías para otros lenguajes Este tipo de proyectos hacen uso de la interfaz de C con Ensamblador; se trata de proveer funciones para los programadores de C, que faciliten su trabajo. Estas funciones se deben realizar en ensamblador (no se califica el código en C).

Algunas de las que ya se han realizado (y por tanto, no serían válidas) incluyen:

  • Manejo del ratón
  • Primitivas gráficas en modo 13h (línea, círculo, etc...)
Algunas oportunidades serían:
  • Decodificación de archivos de imágenes, por ejemplo BMP, PCX, GIF y TIFF.
Demos Pueden revisar en especial el libro "PC al Límite".

Consisten en presentaciones de un producto o compañía, por ejemplo los comerciales de TV; obviamente, involucran gráficas computacionales y animación, muchas veces también sonido.

También pueden ser animaciones de entrada a un programa, que llamen la atención del usuario.

Música y sonido Algunas oportunidades que se podrían hacer incluyen:
  • Extender el piano con uso de tarjetas de sonido;
  • "Escribir" música en un pentagrama, utilizando el modo gráfico para dibujar, y posiblemente el ratón para "arrastrar y soltar" las notas; y utilizar las funciones del piano para tocar la música en el pentagrama.
  • Digitalizar música haciendo interfaz con el micrófono y la tarjeta de sonido.
  • Librería de efectos especiales de sonido, ej. explosión, láser, tren pasando... Al menos, debieran crear unos 20; o bien, un programa que permita crearlos.
Utilerías Programas que permitan a un usuario poderoso sacar mayor provecho de su máquina o bien obtener datos internos, por ejemplo he recibido:
  • Información de sistema (tipo SI de Norton o MSD - Microsoft Diagnostics).
  • Vacunas, aquí las oportunidades ya están limitadas a vacunas contra virus nuevos o contra virus de macros.
  • Conjunto de utilerías "EACTools" - tipo PC Tools.
  • Observador del nombres extendidos Windows 95, en versiones anteriores de DOS.
  • Tocar CDs desde MS-DOS.
Algunas que puedo sugerir incluyen:
  • Lector de discos con formato de Macintosh.
  • Desensamblador
  • Compresión de archivos ejecutables, con la descompresión dinámica al ejecutarse. En este caso, el algoritmo de compresión no necesariamente tiene que ser complejo.
  • Encripción de archivos ejecutables, con el desciframiento dinámico al ejecutarse. En este caso, el algoritmo de compresión no necesariamente tiene que ser especialmente seguro.
Encripción Los programas estarán basados en diversos algoritmos, incluyendo RSA, TEA,IDEA, DES, XOR con muchas variantes, etcétera.

No se aceptan algoritmos "inventados" por el alumno, a menos que tengan una fundamentación matemática que muestre su "fortaleza"; por lo que en general, sugiero hagan una búsqueda de algoritmos nuevos de encripción, publicados.

Compresión Hay opción para algoritmos, por ejemplo ZIP y LZW; sin embargo, generalmente estos ya son proyectos relativamente complejos, solamente los recomendaría para alumnos que tienen una amplia práctica de programación.

 


Cuadro de Honor:

Aquí apareceránn todos aquellos proyectos realizados por los alumnos, que reunan todas las características deseadas:
 



Para cualquier comentario, o simplemente comunicarse para tratar algún tema de interés, escriban a ulinjr@hotmail.com