Cita:
Iniciado por Instru Seguramente te haran optimizaciones y haran mas pequeño o mas rapido el codigo, pero a final de cuentas hace lo mismo.
Hace lo mismo (obviamente) pero no de la misma forma.
Cita: Igual y es mas dificil de leer igual y no tanto, todo depende del codigo que se compila y luego se desensambla.
Coge un programa simple en C, por ejemplo, uno que imprima la serie de Fibonacci hasta que le mates desde otra terminal; compílale a ensamblador para ver el código resultante; tras eso, vuelve a compilarlo pero esta vez con optimizaciones al completo y enfocado a la arquitectura que tengas.
Número de líneas (~instrucciones):
$ cat fib.s.noopt | wc -l
73
$ cat fib.s.opt | wc -l
369
Número de etiquetas de salto:
$ cat fib.s.noopt | grep ^.L | wc -l
6
$ cat fib.s.opt | grep ^.L | wc -l
49
Número de saltos:
$ cat fib.s.noopt | grep j.. | wc -l
6
$ cat fib.s.opt | grep j.. | wc -l
57
No tiene ni punto de comparación (el código fuente C tenía 20 líneas incluidas vacías, 2 funciones, un "if" y un "for").
Cita: Digo, yo he analizado programas enteros en ensamblador y pues despeus de encontrar algunos patrones entiendes que es lo que el programa intenta hacer. Y claro, al ver el codigo en C nada que ver, aunque la tarea final sea la misma.
Es como ver un codigo alternativo a lo que tu originalmente escribiste.
Posible es, pero entender un programa completo proveniente de C++, con optimizaciones aplicadas al completo y pensado para una arquitectura como prescott; y lo has entedido; no es trivial, y siquiera sé si alguien tiene ese hobby; es tal el número de variables, saltos, ... que debes controlar al mismo tiempo que se hace inabarcable.