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.
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.