Creo que los mejores programadores se inician con ensamblador, de esta manera es mas facil aprender cualquier otro tipo de programacion
A caray
Bueno creo que ensamblador es el lenguaje mas dificil que hay y es porque es lo mas cerca que estaremos de programar en codigo binario, y lo dificil esta en que hay muchos sientos de instrucciones y son especificas para cada procesador, por eso no podemos correr windows en una Mac a menos que tenga procesador intel, si tiene el procesador G4 o G5 ni en sueños, antes de eso tenemos que "portar" nuestro soft a esa arquitectura y no es otra cosa que cambiar al juego de instrucciones del procesador.
Por otro lado ensamblador nos seria util si vamos a optimizar un programa para una arquitectura especifica, o si vamos a desmontar un binario y modificarlo sin contar con su código fuente, cosa que a los mortifagos de billgay no les hace mucha gracia. Tambien podria ser util si quieres engrasarte las manos para crear un compilador

Bueno si se quiere aprender ensamblador yo sugeriria esto:
1. Aprende un lenguaje de alto nivel (¿Python

?) >>>

2. Ya que aprendiste las bases: aprende C >>>

3. Ya que hables en C: aprende las "llamadas al sistema" especificas a tu sistema (valga la redundancia) >>>

4. Si aun no te has aburrido aprende instrucciones de tu procesador (un i386 quiero pensar) >>>

Todo tiene un precio: Dedicación, esfuerzo y mucho tiempo (equivalente a perder la vida social)
Bueno les dejo un programita que suma dos numeros en C pero que la suma la hace con ensamblador (asm)
#include<stdio.h>
int main(void)
{
int a, b;
printf ("Dame el primer numero: "); scanf("%d",&a);
printf ("Dame el segundo numero: "); scanf("%d",&b);
asm("addl %%ebx,%%eax":"=a"(a):"a"(a), "b"(b));
printf("La suma es = %d\n", a);
return 0;
}
Lo pueden compilar con gcc, por tanto si no tienen linux pueden usar Codeblocks
