Esto es para los que saben usar el ASM.
Bueno, es que he estado pensando, y se me ha ocurrido lo siguiente:
Si sabéis un poco como funciona un compilador sabréis que no transforma el código fuente de C/C++ a binario directamente, sino que primero pasa por el ASM. Personalmente se como hacer que el compilador me guarde el asm en un archivo (bueno, ahora no me acuerdo exactamente, pero una vez lo hice xD).
Entonces mi pregunta es:
¿Podemos usar C/C++ en lugar de ASM directamente?
Si es así me ahorraría aprender ASM y aprendería C++ directamente, que es mucho mas útil a nivel practico fuera del RH.
De hecho en una discusión contigo te envié un link a una pagina que era gbajunkie, y tú otra que era tonc, ambos "métodos" se basaban en utilizar C para programar un juego, y el compilador lo convertía a ASM, el problema era que lo hacía en modo ARM y no en thumb (lo cual no se en que pueda afectar xD).
Creo que sería "más fácil", pero como siempre he dicho, ASM no es difícil ni complicado, lo que sí es, es encontrar lo que deseas hacer con ello xD
Esta en plan cutre tal como ha salido del compilador, pero por eso de ".thumb_func" estoy bastante seguro de que es thumb =D
Bueno, a ver, el comando exacto que he usado:
$ /opt/devkitpro/devkitARM/bin/arm-eabi-gcc -I /opt/devkitpro/tonclib/include/ -O2 -mthumb -mthumb-interwork -S input.c -o output.s
Que generalmente sería:
$ arm-eabi-gcc -O2 -mthumb -mthumb-interwork -S input.c -o output.s
Donde input.c es el codigo en c que hemos escrito y output.s es el código en asm que se va a generar.
Lo que está en negrita es opcional. Si no lo ponemos el output se guardará en un archivo *.s llamado igual que el input (sin el ".c")
El "-O2" también es opcional, y sirve para optimizar.
El arm-eabi-gcc está en /opt/devkitpro/devkitARM/bin/arm-eabi-gcc siendo /opt/devkitpro/ el directorio donde está instalado devkitpro. Naturalmente esto es una ruta linux. En windows estará más o menos por una ruta así:
C:\devkitpro\devkitARM\bin\arm-eabi-gcc.exe
Aún así voy a aprender asm, pero está bien saberlo :D
Lo he sacado del tutorial de asm que hay en tonc. Recordad que el thumb en el fondo es un tipo de arm, porque funciona en el procesador ARM7TDMI.
EDIT: Lo siento por el doble post, espero que no pase nada...