Página 1 de 1

Desensamblador?

Publicado: 10 Sep 2015, 14:17
por Haplo
Una preguntita a los que trasteáis con el código máquina... ¿qué desensamblador soléis usar?
Me he estado apañando con los que traen los emuladores, pero me resultan bastos de usar, sobre todo me patea lo pequeño del listado que suelen poner (lineas).

Otra cosa relacionada con esto, ¿hay alguna forma de calcular más o menos automáticamente los ciclos de reloj que consume una rutina? obviamente en algunos casos es complicado por los condicionales y esperas varias, pero si hubiera una columna adicional que pusiera 4T (por ej) a la derecha de la instrucción desensamblada sería la leche.
Cuando me pongo a optimizar mis rutinas suelo hacerlo así (como comentario) para luego sumarlas, pero esto a veces es bastante farragoso :mrgreen:

Re: Desensamblador?

Publicado: 10 Sep 2015, 14:24
por antoniovillena
Para contar ciclos de reloj creé este programa que puede servirte de ayuda:

http://retrolandia.net/foro/showthread.php?tid=43

Re: Desensamblador?

Publicado: 10 Sep 2015, 15:37
por mcleod_ideafix
Haplo escribió:Una preguntita a los que trasteáis con el código máquina... ¿qué desensamblador soléis usar?

Yo según si uso Spectaculator o Specemu. Me gusta más el desensamblador del Spectaculator, aunque el del Specemu me deja poner breakpoints condicionales bastante potentes.
Para desensamblados de ROMs uso el IDA Pro.

Haplo escribió:Otra cosa relacionada con esto, ¿hay alguna forma de calcular más o menos automáticamente los ciclos de reloj que consume una rutina?

Además de lo que te ha comentado Antonio (aunque hay que recalcar que su método vale sólo para rutinas que no originen accesos a memoria contenida), Spectaculator te va contando los ciclos de reloj a medida que ejecutas instrucciones paso a paso, así que puedes ir viendo lo que dura cada una. No recuerdo si Specemu hace algo por el estilo.

Re: Desensamblador?

Publicado: 10 Sep 2015, 16:06
por zup
Supongo que depende de si quieres desensamblar o depurar.

Personalmente no desensamblo, así que poco puedo aconsejarte. Pero como depurador, mi elección personal es el del ZXSpin (aunque tenga sus defectos). Ahora que me fijo, también tiene una opción de "Save Dissasembly..." que supongo que te exportará una versión en texto.

Ten cuidado con lo que desensamblas y cuando lo desensamblas... Entre protecciones que vienen encriptadas (Speedlock, Alkatraz), juegos que se cargan encriptados y luego se desencriptan (Ghost'n'Goblins), juegos comprimidos y código automodificable a veces lo que tienes en papel no corresponde a lo que se ejecuta realmente.

Re: Desensamblador?

Publicado: 10 Sep 2015, 17:50
por Haplo
Gracias chicos.
Antonio, el "ticks" ya lo conocía. Lo que pasa es que es muy artesanal el usarlo y lo dejo para cosas muy puntuales.
Mcleod, el Ida Pro lo trasteé también pero me perdía con tantas opciones "pofesionales" del entorno y apenas acerté a desensamblar algo con él. Si puedes explicármelo con unos pasos sencillos te lo agradecería. Miraré lo del Specemu.
ZXSpin confieso que no lo he probado, tambien le daré un tiento.