1. Estuve mirando y el procesador 8080 de intel tiene las mimas instrucciones que los actuales (intel core duo), mi pregunta es, si un programa hecho para un procesador de intel antiguo de 8 bits sirve para uno de 32 bits por ejemplo, con las mismas instrucciones, supongo que amd y otros fabricantes tendran otras instrucciones no?
No conozco ningun procesador x86 de 8 bits... 16,32 y 64.
La computador x86 enciende en modo Real de 16 bits, luego el SO es el que se encarga de pasar a modo Protegido (32bit) o el "Long Mode" de 64bit.
La compatibilidad hacia atras es diria yo 100%.
La unica excepcion que conozco es 3D NOW de Amd, que en los procesadores actuales ya no viene por simple hecho que existe mmx, sse.
2. Las funciones de la bios como la de imprimir en pantalla palabras, no varian en las distintas bios?, o hay que hacer un programa para cada bios?
Las funciones de la BASIC INPUT OUTPUT SYSTEM son Estandar. Luego hay algunas interrupciones especiales que agrega cada fabricante.
como puedo saber que procesador tiene X pc, por ejemplo saber si es un AMD o un INTEL que son los más usados, y como puedo saber los componentes del pc, con asm claro esta.
CPUID, no el programa, sino la instruccion bien documentada en los manuales de intel y amd.
4. que licencia tiene asm y que restricciones tiene.
asm, assembly es el lenguaje, no tiene ningun tipo de licencia.
Los ensambladores si tienen licencia, masm con EULA, nasm gnu, fasm licencia propia libre para uso comercial.
Como se crea un formato de archivo
Si quieres respetar un formato existente, sigues la documentacion de ese formato.
Si quieres crear un formato nuevo, lo creas y listo.
6. Con que programa o compilar genero el asm?
asm no se compila, se ensamba con: masm, nasm, fasm
Esos tres son los mas documentados.
la licencia de masm prohibe usarlo para crear programas fuera de windows.
as'i que te queda fasm y nasm.