
Iniciado por
stuCk
pero, estas llamando a la nueva funcion? (ldr)
Epa! eso es nuevo, ¿Hay que llamar al LDR? Me voy a explicar un poco mejor:
En R6CA009 se repite esto en varias partes del parche:
Código:
ROM:45652370 04 F4 BE FF BL sub_452572F0
Por lo que entiendo, los BL, a diferencia de los DCD no puede llamar a cualquier direccion del firm, sino que tiene un cierto alcance (el cual desconozco)(y tampoco entiendo porque tienen este "alcance" si tiene 8 cifras
pero en fin, asumo que es asi). El equivalente la sub_452572F0 en R6GA004 es la sub_4525A8B0, pero esta mas lejos que en el otro firm, y no puedo alcanzarla ni siquiera moviendo todo el parche lo mas cerca posible (porque se termina la zona de las FFFFFFFF).
Si pudiese alcansarla deberia poner:
Código:
target equ 0x4525A8BO
(org correspondiente a R6GA004)
loc_45665310: BL target
(Aca va el resto del ASM, que terminaria en 456653EF)
Como esta fuera de alcance pongo:
Código:
target equ 0x4525A8AF
(org correspondiente a R6GA004)
loc_45665310: LDR R3, dword_456653F0
BX R3
(Aca va el resto del ASM, que terminaria en 456653EF)
dword_456653F0 DCD target+1
Ahora bien, el LDR esta ocupando el lugar del BL, cualquier llamada a esa posicion ¿no deberia llamar al LDR?
Por cierto el ultimo codigo me tiraba error de alineacion y tuve que agregarle un "align 4" ¿Eso estara bien?
Muchas gracias por aclarar mis dudas
Marcadores