Adke
weeeh
Este post es simplemente la traducción de este otro hecho por @Andrea
A lo que vamos:
Paso 1: descargar el ensamblador
Antes que nada, hay que descargar el ensamblador de rutinas asm que podéis encontrar Aquí
Una vez descargado metedlo todo en una carpeta (recomendablemente en el escritorio), pero puede estar en cualquier parte. Yo la llamaré Assembly
En esta carpeta meteremos las rutinas asm.
Paso 2: escribir la rutina
Pongo como ejemplo una rutina simple
La rutina la escribimos en el Bloc de Notas y antes de guardarlo donde pone Tipo marcamos la opción "Todos los archivos (*.*)" y guardas la rutina con el nombre que quieras y le pones al final .asm
Por ejemplo: rutina.asm
Guarda la rutina en la carpeta y pasamos al tercer paso.
TPaso 3: Compilar la rutina
Ahora hay que abrir el programa que descargamos antes, para esto hay que usar un programa ya incluido en el Sistema Operativo de Windows: el cmd
Para abrir esto vas a Inicio>Buscar>cmd y se te abrirá una pestaña tal que así

ahora explico lo que significa lo de la imagen:
Primero, podemos ver el comando "CD" que significa "Change Directory", es decir, que nos permite cambiar de carpeta hasta llegar a la que habíamos creado (Assembly).
Una vez que hemos llegado a la carpeta deseada hay que escribir "thumb" para activar el archivo "THUMB.BAT" y el nombre de la rutina asm.
Si no hay errores en la rutina saldrá el mensaje "Assembled succcessfully" y se habrá creado un nuevo archivo en nuestra carpeta con el mismo nombre que nuestra rutina pero acabado en .bin
Esta será nuestra rutina compilada.
Paso 4: insertar la rutina
Para insertar la rutina es necesario tener un editor hexadecimal (HxD por ejemplo)
Abrimos el archivo .bin con HxD y hacemos lo mismo con la ROM.
Ahora buscamos un espacio libre en nuestra rom, copiamos la rutina y la pegamos en el espacio libre
Atención! no se pega usando Ctrl.+V sino Ctrl.+B esto es porque Ctrl.+V añade espacio y Ctrl. +B sobreescribe. Esto es muy importante.
Ya podemos cerrar el editor hexadecimal y solo nos queda el último paso.
Paso 5: llamar a la rutina desde un script
El comando que se usa es el siguiente:
callasm 0x(direccion donde insertaste la rutina +1)
Por ejemplo, si insertaste la rutina en la direccion 800000 tendrías que escribir:
callasm 0x800001
Espero que se entienda correctamente y todos los créditos a Andrea, yo solo lo he traducido.
PD: una aclaración es que no es estrictamente necesario usar el cmd para compilar las rutinas, puedes simplemente arrastrar tu archivo .asm al thumb.bat y, si la rutina no tiene errores, se compilará directamente.
Pero si tiene errores no se te compilará y no te dirá que errores tiene la rutina, cosa que si hace el cmd.
A lo que vamos:
Paso 1: descargar el ensamblador
Antes que nada, hay que descargar el ensamblador de rutinas asm que podéis encontrar Aquí
Una vez descargado metedlo todo en una carpeta (recomendablemente en el escritorio), pero puede estar en cualquier parte. Yo la llamaré Assembly
En esta carpeta meteremos las rutinas asm.
Paso 2: escribir la rutina
Pongo como ejemplo una rutina simple
Código:
.thumb
.align 2
push {r0-r1,lr}
ldr r0, = 0xoffset
mov r1, #0xval
strb r1,[r0]
pop {r0-r1,pc}
Por ejemplo: rutina.asm
Guarda la rutina en la carpeta y pasamos al tercer paso.
TPaso 3: Compilar la rutina
Ahora hay que abrir el programa que descargamos antes, para esto hay que usar un programa ya incluido en el Sistema Operativo de Windows: el cmd
Para abrir esto vas a Inicio>Buscar>cmd y se te abrirá una pestaña tal que así

ahora explico lo que significa lo de la imagen:
Primero, podemos ver el comando "CD" que significa "Change Directory", es decir, que nos permite cambiar de carpeta hasta llegar a la que habíamos creado (Assembly).
Una vez que hemos llegado a la carpeta deseada hay que escribir "thumb" para activar el archivo "THUMB.BAT" y el nombre de la rutina asm.
Si no hay errores en la rutina saldrá el mensaje "Assembled succcessfully" y se habrá creado un nuevo archivo en nuestra carpeta con el mismo nombre que nuestra rutina pero acabado en .bin
Esta será nuestra rutina compilada.
Paso 4: insertar la rutina
Para insertar la rutina es necesario tener un editor hexadecimal (HxD por ejemplo)
Abrimos el archivo .bin con HxD y hacemos lo mismo con la ROM.
Ahora buscamos un espacio libre en nuestra rom, copiamos la rutina y la pegamos en el espacio libre
Atención! no se pega usando Ctrl.+V sino Ctrl.+B esto es porque Ctrl.+V añade espacio y Ctrl. +B sobreescribe. Esto es muy importante.
Ya podemos cerrar el editor hexadecimal y solo nos queda el último paso.
Paso 5: llamar a la rutina desde un script
El comando que se usa es el siguiente:
callasm 0x(direccion donde insertaste la rutina +1)
Por ejemplo, si insertaste la rutina en la direccion 800000 tendrías que escribir:
callasm 0x800001
Espero que se entienda correctamente y todos los créditos a Andrea, yo solo lo he traducido.
PD: una aclaración es que no es estrictamente necesario usar el cmd para compilar las rutinas, puedes simplemente arrastrar tu archivo .asm al thumb.bat y, si la rutina no tiene errores, se compilará directamente.
Pero si tiene errores no se te compilará y no te dirá que errores tiene la rutina, cosa que si hace el cmd.