Vale, vale, ahora si tengo todo claro. Entonces, por eso me falla ahora tu versión jajaja, porque FBI da la tabla de nombres, ok.
Ahora la cosa sería buscar la tabla de punteros entonces.
Acabo de hacer la versión para el nombre del último trainer al que te has enfrentado, partiendo de estos datos que da FBI:
"1) Trainer's name is located at: 0x823EACC + ( 0x28 * Flag ID)
2) Last battled trainer's ID is located at: 0x20386AE"
La rutina me ha quedado así:
.text
.align 2
.thumb
.thumb_func
main:
push {r0-r3,lr}
ldr r0, .Tabla
ldr r1, .LastID
ldr r1, [r1]
mov r2, #0x28
mul r1, r1, r2
add r0, r0, r1
ldr r0, [r0]
mov r1, #0x0
ldr r3, .Guardar
b bucle
bucle:
ldrb r2,[r0,r1]
cmp r2,#0xFF
bne copy
strb r2,[r3,r1]
pop {r0-r3,pc}
copy:
strb r2, [r3,r1]
add r1, r1, #0x1
b bucle
.align 2
.Guardar:
.word 0x2021D18
.Tabla:
.word 0x823EACC
.LastID:
.word 0x20386AE
Voy a probarla a ver que tal va.