Razones para aprender ensamblador
- Tiene cierta belleza realizar programas con un tamaño muy pequeño y muy rápidos
- Se tiene un mayor conocimiento de las computadoras así no te pones tan extrañado cuando ves un mensaje tipo:
"The instruction at "0x00ccd2cd" referenced memory at "0x00000000", The memory could not be "written" "
- Es un reto, y si sos de las personas que disfrutan de un buen desafío aprender ensamblador requiere cierto conocimiento de como funciona a bajo nivel el ordenador, el direccionamiento de la memoria, registros de CPU, uso de segmentos.
- Los programadores con experiencia en ensamblador suelen producir un código mas rápido en lenguajes de alto nivel.
- Los si programás en ensamblador vas a ser mas disciplinado (si no tenes cuidado de lo que escribís tu programa va a morir de forma muy dolorosa).
- Es divertido
- Software de calidad puede ser escrito en ensamblador, sino preguntenle a Steve Gibson creador de Spinrite.
- Nikolaus Wirth y su "El software se ralentiza mas deprisa de lo que se acelera el hardware", o que la computadora que envió al hombre a la luna el Apolo Guidance Computer tenia 64Kbyte de memoria (muy poquita memoria) y operaba a 0.043Mhz (muy poquita capacidad de procesamiento). Un cliente de twitter utiliza mas memoria que la utilizada para enviar a un hombre a la luna y mas recursos de procesamiento son utilizados en el conjunto de maquinas que se encargan de la transmisión de un tweet que los que se utilizaron para enviar a un hombre a la Luna! solo para que alguien inmortalice el estado de su estomago twitteando "tengo hambre" oh!, la humanidad!.
Para que vas a utilizar ensamblador
- Para hacer demos!
- Programar drivers para dispositivos, si te gusta la electronica y te inventas algún dispositivo interesante vas a tener que utilizar C o ensamblador para controlarlo desde la PC.
- Optimizar ciertas segmentos de codigo en lenguajes de alto nivel.
- Divertirse, hay proyectos muy interesantes escritos completamente en ensamblador como MenuetOS
Para que no vas a utilizar ensamblador
- Programarte un "Crisis" por completo.
- Crear aplicaciones multiplataformas porque los programas en ensamblador varían de un Sistema Operativo a otro y de una Arquitectura de Hardware a otra.
- Sustituir a un lenguaje de alto nivel como java o .net
Recursos recomendados
- El projecto MASM32: que incluye una gran cantidad de librerias optimizadas para el desarrollo de aplicaciones de forma mas rapida y sus archivos de ayuda como masm32.chm donde está la historia del proyecto y una introducción al uso de las librerias y el archivo masmlib.chm donde esta referencia de las librerias.
- El libro The INTEL Microprocessors de Barry B. Brey es un buen libro sobre programación en ensamblador aunque un poco veterano es facil encontrar en internet.
- Un buen editor de texto yo recomiendo Vim.