consulta sobre assembler
consulta sobre assembler
Desde mucho tiempo me he hecho la misma consulta, como puedo obtener el código completo de un programa que esta hecho bajo assembler, e leído bastantes artículos pero ninguno me ha dado resultado, me gustaría saber como lo hacen ustedes para obtener el código de un archivo. Gracias muchachos
Re: consulta sobre assembler
Necesitas un desensamblador
De ahí en adelante, la respuesta depende de la plataforma
De ahí en adelante, la respuesta depende de la plataforma
Re: consulta sobre assembler
supongo que me serviria este


es del tesoro del pirata


es del tesoro del pirata
Re: consulta sobre assembler
Sí y no.
Por lo que se ve, ese programa toma un sector del disco y lo desensambla.
Lo que es útil si quieres desensamblar programas en un Atari es cargar el código de un archivo XEX y partir desde el entry point. O al menos, así lo prefiero yo.
Por lo que se ve, ese programa toma un sector del disco y lo desensambla.
Lo que es útil si quieres desensamblar programas en un Atari es cargar el código de un archivo XEX y partir desde el entry point. O al menos, así lo prefiero yo.
Re: consulta sobre assembler
pero utilizas algun programa para eso en especial franco?
Re: consulta sobre assembler
Utilizaba uno propio, está entre estos discos:
http://franco.arealinux.cl/wp-content/u ... catrin.zip
Saludos
http://franco.arealinux.cl/wp-content/u ... catrin.zip
Saludos
Re: consulta sobre assembler
por lo que pude encontrar en tus archivos estaria en el disco 3b y el archivo seria desen.des con ese pude ver el listado de un archivo assembler ahora a aprender assembler para cachar que es lo que dice, gracias perrin, esto es el comienzo de todo y era lo que necesitaba, sale todo clarito ahora.
Re: consulta sobre assembler
Ok! Estaré atento por cualquier duda
Re: consulta sobre assembler
Hay un desensamblador de 6502 para Win32 bastante bueno, especializado en Atari: Dis6502. Es capaz de cargar etiquetas, lo que hace bastante más legible los listados. Y el código generado es compilable 
Re: consulta sobre assembler
En todo caso, en mis tiempos mozos usaba el desesamblador del DiskScan de David Young, ya que era útil para seguirle la pista a las protecciones de los programas e ir modificando in situ.
También me hice mi propio desensamblador empotrado en otro utilitario similar, pero nunca lo concluí. Ni me acuerdo en qué estado lo dejé.
También me hice mi propio desensamblador empotrado en otro utilitario similar, pero nunca lo concluí. Ni me acuerdo en qué estado lo dejé.
Re: consulta sobre assembler
voy a probar tbm el que nombraste tu vitoco, yo creo que con los dos podre hacer varias cosas, de acuerdo que me serviran de mucho para aprender assembler, se los agradesco muchachos
Re: consulta sobre assembler
El disassembler que te recomienda vitoco es excelente, ya que es especial para Atari 8 bits, parsea el xex y muestra los display lists.
También recuerdo que fcatrin estaba haciendo uno en Java, que estaba muy bien (publico todo el work in progress) en un thread de rg.
Yo en lo personal utilizaba IDA Pro, pero es un poco exagerado.
Tienes que considerar que la forma mas fácil de partir es revisando los ejecutables, si tienes en mente desasemblar bloques de un cassette o disco es mas complicado ya que tienes que saber que bloques ubicar, porque no todo es código, también hay datos.
Vi en tu presentación que te interesa aprender assembler, cualquier duda que tengas solo pregunta, pero esto es un 95% meter las manos.
También recuerdo que fcatrin estaba haciendo uno en Java, que estaba muy bien (publico todo el work in progress) en un thread de rg.
Yo en lo personal utilizaba IDA Pro, pero es un poco exagerado.
Tienes que considerar que la forma mas fácil de partir es revisando los ejecutables, si tienes en mente desasemblar bloques de un cassette o disco es mas complicado ya que tienes que saber que bloques ubicar, porque no todo es código, también hay datos.
Vi en tu presentación que te interesa aprender assembler, cualquier duda que tengas solo pregunta, pero esto es un 95% meter las manos.
Re: consulta sobre assembler
Me dan ganas de retomar el dissassembler en la medida de que el tiempo lo permita, pero ahora no sé si estaré haciendo funcionalidad duplicada respecto al que recomendó vitoco.
Lo que yo busco es tener algo para documentar el código desensamblado, no solo automáticamente sino que también en base al análisis humano del código. Y que no requiera Windows, que escasean por acá (cero en realidad).
Saludos
Lo que yo busco es tener algo para documentar el código desensamblado, no solo automáticamente sino que también en base al análisis humano del código. Y que no requiera Windows, que escasean por acá (cero en realidad).
Saludos
Re: consulta sobre assembler
la verdad que prefiero mil veces las pruebas desde el atari, ahi esta la realidad misma, pero en los manuales que estoy leyendo explican muchas cosas sobre el assembler y como se estructura y como se digita pero en ningune te dice como se carga o graba el archivo en el disco y como hcharlo andar o compilar, yo se que no es basic, pero el basic es mas amigable a las personas que no captamos de cogido de maquina tan enredado como es el asembler, por ejemplo con el basic cargas el archivo como load"d:archivo
y despues run
pero en assembler como se carga y graba un archivo, y despues como puedo verlo para si su funcionamiento esta correcto y corre o no el programa, son consultas de algo que me esta volviendo loco trantando de aprender.
y despues run
pero en assembler como se carga y graba un archivo, y despues como puedo verlo para si su funcionamiento esta correcto y corre o no el programa, son consultas de algo que me esta volviendo loco trantando de aprender.
Re: consulta sobre assembler
El problema es que el salto de nivel entre basic y assembler es una brutalidad. Una instrucción de basic o cualquier lenguaje de alto nivel cae en muchas instrucciones de assembler xDdogdark escribió:la verdad que prefiero mil veces las pruebas desde el atari, ahi esta la realidad misma, pero en los manuales que estoy leyendo explican muchas cosas sobre el assembler y como se estructura y como se digita pero en ningune te dice como se carga o graba el archivo en el disco y como hcharlo andar o compilar, yo se que no es basic, pero el basic es mas amigable a las personas que no captamos de cogido de maquina tan enredado como es el asembler, por ejemplo con el basic cargas el archivo como load"d:archivo
y despues run
pero en assembler como se carga y graba un archivo, y despues como puedo verlo para si su funcionamiento esta correcto y corre o no el programa, son consultas de algo que me esta volviendo loco trantando de aprender.
Lo primero que toca hacer cuando se quiere entender assembler es conocer como funciona la máquina por dentro para entender con exactitud que hacen las instrucciones. Después toca buscar algún tocho con el mapa de memoria, en este caso el clásico es el mapping the atari.
Igualmente todo lo digo en base a lo que he aprendido de los demás, ya que yo tampoco conozco casi nada de assembler
Re: consulta sobre assembler
No te recomiendo partir de ese nivel de requerimiento, tendrás frustración asegurada.dogdark escribió:la verdad que prefiero mil veces las pruebas desde el atari, ahi esta la realidad misma, pero en los manuales que estoy leyendo explican muchas cosas sobre el assembler y como se estructura y como se digita pero en ningune te dice como se carga o graba el archivo en el disco y como hcharlo andar o compilar, yo se que no es basic, pero el basic es mas amigable a las personas que no captamos de cogido de maquina tan enredado como es el asembler, por ejemplo con el basic cargas el archivo como load"d:archivo
y despues run
pero en assembler como se carga y graba un archivo, y despues como puedo verlo para si su funcionamiento esta correcto y corre o no el programa, son consultas de algo que me esta volviendo loco trantando de aprender.
Mi recomendación es que partas con algo mixto: Programas en BASIC con partecitas en Assembler.
Esto tiene la gracia de que cargar o grabar tus programas en assembler será lo mismo que cargar o grabar tus programas en BASIC, ya que es... un programa en BASIC.
La desventaja es que tendrás que aprender a ensamblar a mano, pero no te procupes, el ATARI es bien chiquito y simple, por lo que no hay mucho código que aprender. Lo que yo hacía para experimentar era crear un programa en BASIC que tomara el código en assembler desde lineas DATA y lo dejara en una parte conocida (y vacía) de memoria, por ejemplo $600 (1536). Luego ejecutaba el código que estaba en esa dirección.
Avisa si necesitas ayuda para:
1) Ensamblar a mano
2) Escribir el código que carga desde DATA + la ejecución.
Saludos
Re: consulta sobre assembler
Todo lo que han comentado es cierto.... Al menos yo partí así: escribiendo programas en ATARI BASIC y agregándole rutinas en assembler que aparecían publicadas en revistas, principalmente en la A.N.A.L.O.G. (que no tengo idea de cómo llegaba a la biblioteca del colegio), para simplificar y agilizar el uso de P/M (players/missiles o sprites pa'los commodorianos) y luego rutinas para acelerar la manipulación de archivos, y luego para desplegar data en la pantalla, y luego menús, y luego..., y luego, y luego...hasta que terminé obviando BASIC
Bueno, ni tanto... para cosas simples me cambié a TurboBASIC XL. Pero igual me hice de una biblioteca de rutinas en assembler que incluía en los programas a medida que los necesitara.
Para aprender desde lo básico, te recomiendo seguir la sección Boot Camp de de Tom Hudson en la revista que mencioné (in inglich). No todos están publicados directamente en la red, aunque hay repositorios con los PDFs, por ej: revistas completas en Atarimania, por páginas en Cyberroach...
De todos modos, debes saber que no todo es necesario programarlo uno mismo en assembler... hay un montón de rutinas listas en la misma ROM del Atari para hacer cosas relacionadas con el S.O. o de I/O, llegar y usar estilo GOSUB... sólo basta especificarle los parámetros necesarios de la forma requerida y listo. Pero para eso hay que familiarizarse un tanto con las etiquetas o nombres que se le dan a distintas direcciones de memoria, y para ello lo mejor es el Mapping The Atari.
A estas alturas te habrás dado cuenta que no todo es Assembler puro, sino que hay mucha cosa relacionada con la arquitectura del hardware sobre la que quieres trabajar (en este caso Atari), y hay que familiarizarse con ese entorno. El assembler por si sólo no te va a servir de nada.
Como comentario final, para entender qué hacían ciertas porciones de código o rutinas en binario (mirando bytes), usé una fotocopia de la tarjeta de referencia que apareció en el manual del cartucho Assembler/Editor de Atari. Al comienzo no tenía desensambladores a mano. No hace mucho restauré digitalmente un escaneo y lo publiqué en mi sitio: 6502 Instruction Set Summary

Para aprender desde lo básico, te recomiendo seguir la sección Boot Camp de de Tom Hudson en la revista que mencioné (in inglich). No todos están publicados directamente en la red, aunque hay repositorios con los PDFs, por ej: revistas completas en Atarimania, por páginas en Cyberroach...
De todos modos, debes saber que no todo es necesario programarlo uno mismo en assembler... hay un montón de rutinas listas en la misma ROM del Atari para hacer cosas relacionadas con el S.O. o de I/O, llegar y usar estilo GOSUB... sólo basta especificarle los parámetros necesarios de la forma requerida y listo. Pero para eso hay que familiarizarse un tanto con las etiquetas o nombres que se le dan a distintas direcciones de memoria, y para ello lo mejor es el Mapping The Atari.
A estas alturas te habrás dado cuenta que no todo es Assembler puro, sino que hay mucha cosa relacionada con la arquitectura del hardware sobre la que quieres trabajar (en este caso Atari), y hay que familiarizarse con ese entorno. El assembler por si sólo no te va a servir de nada.
Como comentario final, para entender qué hacían ciertas porciones de código o rutinas en binario (mirando bytes), usé una fotocopia de la tarjeta de referencia que apareció en el manual del cartucho Assembler/Editor de Atari. Al comienzo no tenía desensambladores a mano. No hace mucho restauré digitalmente un escaneo y lo publiqué en mi sitio: 6502 Instruction Set Summary

Re: consulta sobre assembler
ahi esta la madre del cordero muchachos yo estaba equivocado con respecto a como se debe comenzar, estaba empezando por los pies y no por la cabeza, primero estudiare la informacion sobre el mapping de atari, tengo que conocer como se estructura la maquina para ver como se aplica el programa sobre ella y despues aplicare lo que es basic pero a nivel mas avanzado con pokes y demases, solo conosco los pokes mas basicos que generalmente se usan, y luego la aplicacion de basic con assembler y de ahiiii assembler, tego mucho por aprender, pero en eso no me quedare, gracias por toda la info muchachos , me ayudaron bastante en la organizacion de pasos de como se debe hacer. a poner manos a lectura y codigo mientras el tiempo lo da.
Re: consulta sobre assembler
Estoy empezando a escribir una serie de tutoriales al respecto. No solo para ayudar a los que quieren partir como tu, sino que también para mi mismo que sé que a la larga uno va olvidando las cosas (o no Parche? 
He visto varios tutoriales, pero siempre encuentro que el enfoque está equivocado. Quizás el mio también está equivocado, pero creo que puede servir.
Escribí un artículo ya, pero cuando tenga un tercero lo publicaré por acá. Yo creo que eso será este fin de semana.
Saludos
He visto varios tutoriales, pero siempre encuentro que el enfoque está equivocado. Quizás el mio también está equivocado, pero creo que puede servir.
Escribí un artículo ya, pero cuando tenga un tercero lo publicaré por acá. Yo creo que eso será este fin de semana.
Saludos
Re: consulta sobre assembler
gracias franco esperando por tus tutoriales