Programas en assembler de microprocesadores 80x86

Nota: Estos programas son de dominio público. Contienen tanto el código fuente como el ejecutable (¡¡sin virus, por supuesto!!). Si tiene algún comentario que hacer, por favor llene el formulario.

  1. Números primos: Programa multitarea que muestra cómo programar en modo protegido del microprocesador 80386 de Intel en lenguaje assembler. Se muestra cómo se deben usar las tablas del sistema, interrupciones en modo protegido, cómo se pasa del modo real a protegido y viceversa. Para correr este programa la computadora deberá estar en modo MS-DOS (sólo corre desde modo real y no desde modo virtual-86). Otra posibilidad es arrancar la computadora con un diskette booteable y correr desde dicho diskette el programa. Los comentarios están en castellano.

  2. Pi y logaritmo natural de 2: Este programa calcula el número PI o bien el logaritmo natural de 2 bastante rápido. Corre en cualquier procesador de la familia del 8086. Usando un procesador 80386 o posterior y con un manejador de XMS, el programa puede calcular cualquier cantidad de decimales, estando sólo limitado por la cantidad de bytes libres de memoria extendida. El programa está parcialmente comentado.

  3. Pi, logaritmo natural de 2 y número e (usa DPMI): Este programa calcula el número PI y el logaritmo natural de 2 más rápido que usando XMS. Además se pueden ver los resultados en cualquiera de las bases 2 a 36, y por si esto fuera poco, calcula también el número e.

    Para correr necesita un 80386 o posterior y un servidor de DPMI, como por ejemplo Windows u OS/2. El programa está parcialmente comentado.

    Felicitaciones a Jan Kraak por haber usado mis rutinas de DPMI para hacer su propio programa que calcula el número PI. Mire los detalles en jasonp's Pi Programs Page.

  4. VGA y SVGA: Programas que utilizan el modo gráfico, realizando una animación. Muestra también cómo se pueden cambiar las paletas gráficas.

  5. Tareas: Programa multitarea en modo protegido que muestra varios temas: scheduler con manejo de 20 tareas en cinco niveles de prioridad y round robin entre tareas de la misma prioridad, system call pasando parámetros por la pila, LDT y nivel de privilegio 3. Para ensamblarlo, se utiliza el programa NASM.

    El programa tiene 20 tareas que muestran contadores en la pantalla, uno por cada línea. Cuando el contador llega a un valor específico, indicado en la línea de comandos, se ejecuta una pausa (de 3, luego de 4, 5, 6 y 7 ticks de reloj). Si la cuenta entre pausas es un valor elevado (el valor exacto depende de la PC y si se lo corre en el simulador Bochs o en modo real de la PC), casi no va a haber pausas, por lo que van a ejecutarse sólo las cuatro primeras tareas, que son las que tienen máxima prioridad. Al ejecutar el programa con un valor menor de cuenta entre pausas, el usuario va a notar que las tareas de menor prioridad se ejecutan durante más tiempo (porque las otras están pausadas).

    Para correr el programa, hay que escribir tareas nnn, donde nnn es la cuenta entre pausas.

  6. Pequeños ejemplos en assembler de modo protegido (fuentes y ejecutables en formato ZIP). Apriete aquí.

    Mis primeros programas (rincón del recuerdo)

  7. Esqui: Éste es el primer programa que escribí en lenguaje assembler del 8088. Ahora está comentado.

  8. Sonido: Éste es el primer TSR que escribí. Una vez instalado, al apretar una tecla el parlante emite un sonido que depende de la tecla. Ahora está comentado.