los lenguajes de alto nivel por mas avanzados que sean no pueden optimizar la ejecución de los programas tanto como lo hace alguien que sabe ensamblador?
Como dijo el compañero @engel lex, el compilador generara algo mejor o peor depende de tu código, tienes opciones de optimización pero me remito a lo primero que te dije, no hace milagros si el código es malo, lo que genere no será muy bueno, por lo contrario si eres principiante en ASM, es muy posible que un código medio de C/C++ con una optimización sea mucho mas superior a tu código en ASM.
También dependerá del compilador que uses. Por otra parte tienes compiladores privativos como Parallel de Intel, que tienen que hacer maravillas.
el ensamblador que estoy aprendiendo es lo mismo para cada procesador?,
No. Dependera de la Arquitectura de la CPU, no son las mismas instrucciones para un ARM que para un x86 o powerpc, sparc...
Ya no son solo las instrucciones, si no el diseño de todo, será distinto.
esta usando los registros eax,ebx,ecx,edx,esi,edi,ebp,eip,esp,estos registros son los estandars ?,que pasa si uso registros para procesadores de 16 bits?acaso no pueden correr normal en arquitecturas de 32 o 64?,
Si son los principales, pero faltan mas por ejemplo en x86_64, tienes los
r*, luego los XMM, SEE etc...
Si puedes usar registros de 16 bits en x86, x86_64. Pero no como si estuvieras en modo real claro esta.
Sobre la pregunta de los
mov, cuando vayas estudiando solventaras las dudas, prácticamente te estas respodiendo a ti mismo.
Y finalmente creen que vale la pena meterme un buen tiempo con el ensamblador ?,o mejor seria solo conocer lo basico y dedicarme a estudiar lenguajes de alto nivel,mis objetivos son generales,me gustaria crear juegos,virus,exploits,entre otros.
Si te gusta porque no meterse, no te hace falta saber ASM para hacer lo que quieres, pero no esta de mas saber algo. Pero cuando me refiero a algo no es un Hello world, con 3 o 4
mov.
Un saludo.