Desensamblador?

Sinclair QL, ZX81, +2, +3, 128K ...
Avatar de Usuario
Haplo
MSX Turbo R
MSX Turbo R
Mensajes: 278
Registrado: 14 Abr 2014, 22:24
Sistema Favorito: PC
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Nintendo NES/Clónica
Ubicación: Ciudad Real
Gracias dadas: 33 veces
Gracias recibidas: 5 veces

Desensamblador?

Mensajepor Haplo » 10 Sep 2015, 14:17

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:

Avatar de Usuario
antoniovillena
Amiga 1200
Amiga 1200
Mensajes: 2013
Registrado: 16 Abr 2012, 21:22
Gracias recibidas: 8 veces

Re: Desensamblador?

Mensajepor antoniovillena » 10 Sep 2015, 14:24

Para contar ciclos de reloj creé este programa que puede servirte de ayuda:

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

Avatar de Usuario
mcleod_ideafix
Amiga 2500
Amiga 2500
Mensajes: 5316
Registrado: 06 Oct 2009, 04:12
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Vectrex
Primera consola: TV Games/Pong Clone
Ubicación: Jerez de la Frontera
Gracias dadas: 12 veces
Gracias recibidas: 54 veces
Contactar:

Re: Desensamblador?

Mensajepor mcleod_ideafix » 10 Sep 2015, 15:37

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.
Recuerda: cada vez que se implementa un sistema clásico en FPGA, Dios mata a un purista

Avatar de Usuario
zup
Amiga 2500
Amiga 2500
Mensajes: 3013
Registrado: 04 Sep 2009, 20:07
Sistema Favorito: Spectrum 16Kb/48Kb
primer_sistema: Spectrum 16Kb/48Kb
consola_favorita: Nintendo DS/3DS
Primera consola: Nintendo GameBoy
Ubicación: Navarra
Gracias dadas: 86 veces
Gracias recibidas: 359 veces
Contactar:

Re: Desensamblador?

Mensajepor zup » 10 Sep 2015, 16:06

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.
I have traveled across the universe and through the years to find Her. Sometimes going all the way is just a start.
Además vendo cosas!

Avatar de Usuario
Haplo
MSX Turbo R
MSX Turbo R
Mensajes: 278
Registrado: 14 Abr 2014, 22:24
Sistema Favorito: PC
primer_sistema: Spectrum +2
consola_favorita: Sony PlayStation 1
Primera consola: Nintendo NES/Clónica
Ubicación: Ciudad Real
Gracias dadas: 33 veces
Gracias recibidas: 5 veces

Re: Desensamblador?

Mensajepor Haplo » 10 Sep 2015, 17:50

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.


Volver a “Sinclair/Spectrum”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 18 invitados