Registrarse

Duda ASM GBA (Call & Return)

Rasputin

Usuario de platino
Hola,

Lo primero pedir disculpas si este tema no va en esta sección.
Estoy haciendo una rutina custom para mi romhack y tengo la siguiente duda, ¿es posible hacer un "call & return" desde una label a otra de la misma rutina?. Para explicarme mejor, pongo el siguiente ejemplo que he encontrado en otro foro (después de probarla parece que no funciona) y es exactamente lo que necesito.

start:
01: MOV r0, r2 ; some instruction
02: B there ; go there and never return !

there:
11: MOV r1, r0 ; some instruction
12: BL some_function ; go to some_function, but hope to return !
; this BL will load 13 into LR
13: MOV r5, r0
14: BL some_function ; this BL will load 15 into LR
15: MOV r6, r0


some_function:
MOV r0, #3
B LR ; here, we go back to where we were before

Se que se podría hacer seguramente con "bl" y "bx", incorporando el código en otra rutina, pero sería perfecto si pudiera hacerse como en el ejemplo anterior.

Muchas gracias.
 
Arriba