-¿Que conocimiento básico es necesario para empezar con asm?
Tipo de datos, Saltos condicionales, Operaciones matemáticas, llamada a Interrupciones/funciones del SisOp. ... basicamente lo que está en los manuales. (algo de las macros tampoco estaria mal pero no indispensable)
-¿Con que OS, es mejor empezar?
Yo recomiendo Windows usando la Consola si no sabes como es el tema de la Win32Api.
Hacerlo en DOS es perder el tiempo. Las nuevas arquitecturas son de 64 bit y DOS es de 16.
Linux, no se, no probé.
-¿Para novatos como yo; MASM; O FASM?
Para MASM hay más tutoriales e info en internet. Segun la licencia, con MASM solo puedes desarollar para Windows y no se que otras limitaciones legales tiene.
Con FASM, hay menos info, pero con la que hay sobra. A mi particularmente me pareció mas agradable FASM yo diria que pruebes con los dos y fijate cual te convence más. Las diferencias son minimas y convertir el codigo de uno a otro no cuesta nada.
-¿Exactamente que clase de programas son los desarrollados en ensamblador?;
porque he escuchado que mas que todo se hacen compiladores etc...
Aplicaciones de cualquier tipo, si son de Desktop, tardarías mas que con C# por ejemplo...
. Pero tenes la ventaja de no tener que hacer casting nunca. (PChar=char* entre algunas cosas que tiene C y se vuelve tedioso a mi modo de ver).
Con un ensamblador podes hacer cualquier cosa. Es más podes ensamblar archivos de texto, imagenes bmp, archivos de configuracion binarios.....etc no todo eso tiene utilidad claro.