qna_rh
Thread Id: 25531
Thread Name: Mas Sobre ASM
#0
Código Trovão =-= 27531
Olá a todos :D !
Desta vez venho pedir ajuda a todos a respeito de ASM, eu decidi me tornar um "maestro do ASM" mas não tenho noção de como é.
Então peço ajuda com tutoriais, apostilas, documentos, tudo que for relacionado com ASM e que possa me ajudar a aprender.
Caso possivel, eu tambem acetaria, algum tutorial explicando como usar e para que serve cada comando ;)


Desde já agradeço a todos :D
#1
cosarara97 12296
http://infocenter.arm.com/help/topic/com.arm.doc.ddi0210c/DDI0210B.pdf
EDIT:
Bueno, Eing me ha dejado este mensaje en el perfil, y como mi respuesta es demasiado larga para otro mensaje de perfil he decidido dejarlo aquí para hacerla más accesible. [MENTION=12479]eing[/MENTION], espero que no te moleste.
Iniciado por eing
Cosarara, no crees que en vez de pasar documentación sobre ensamblador, -que las "funciones" varian segun el procesador con el que trabajemos, pero no la lógica programadora (Que es el stack, que son punteros, etc etc)- deberias decirles a troche y moche que aprendan como funciona antes un rom (Partes en las que se divide) y como las usa la empresa desarrolladora del SW?


:P
Podría decir muuchas cosas. Muchas. Pero no tenía demasiado tiempo así que he decidido dejar lo que según mi opinión es el documento más importante al aprender ASM para la GBA: el manual de ARM7TDMI (el procesador de la GBA).

El lenguaje ensamblador tiene algunas cosas que lo hacen especial, y una de ellas es que entre arquitecturas no cambian solo las instrucciones sino también la sintaxis. Si bien hay muchas cosas parecidas entre las diferentes arquitecturas, verás que la gran mayoría de manuales/tutoriales/etc. están enfocados a una arquitectura. Eso debe ser así, por que de no serlo ya no se estaría enseñando ensamblador si no teoría sobre la computación.

La escuela de ASM abierta en WaH en este momento, por ejemplo, enseña MIPS. Estoy de acuerdo con el profesor en que hacerlo así es mucho mejor que no enseñar solo conceptos generales que puedan aplicarse a todas las arquitecturas.

Por lo que hace al ROM. Un ROM no es más que una memoria. Tiene un punto de inicio y un pequeño cabezal, por el sistema de inicio de la GBA, pero a parte de eso no tiene nada más de especial. Su contenido puede tener tanto datos como código ejecutable, pero no tiene porqué estar estructurado de ningún modo especial.

La verdad es que no tengo ningún mapa por lo que hace a cómo estructura sus ROMs nintendo. Lo más lógico sería que los datos estuvieran separados del código en dos secciones definidas (con pocas excepciones), pero nunca lo he comprobado. De todos modos, aunque algo útil, no tiene demasiada relevancia por lo que hace al aprender ASM.

Volviendo al ARM7TDMI Technical Reference Manual. Este documento explica muchas cosas, quizás demasiadas en realidad. Pero también es la fuente más fiable para la mayoría de cosas que dice.
Tiene una introducción donde se explican cosas cómo:

Y luego el Modelo del Programador en el que se explican los registros, la endianness (sí, los offsets (y todo en realidad) van invertidos!), todo de cosas realmente esenciales a la hora de escribir código en ASM y otras que no tanto pero que de todos modos existen y siempre está bien conocer.
Poco a poco, el manual explica cosas cada vez más complicadas y a la vez menos relevantes (oh, sí, los transistores y señales del procesador!), de modo que cada uno puede para cuando quiera.

Concluyendo. Sí, podría haber pasado algo más "práctico". Que explicada cosas como el stack y cómo usar un ensamblador. Pero el chico quiere convertirse en un maestro del ASM, y para eso (si quiere aplicarlo a la GBA) necesita ese manual.

Btw, http://wahackforo.com/w-ASM