Nessuna descrizione

new_move_first.S 696B

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. .text
  2. .align 2
  3. .thumb
  4. .thumb_func
  5. .global new_move_first
  6. new_move_first:
  7. mov r1, r9
  8. lsl r1, r1, #0x2
  9. ldr r0, =moveset_table
  10. add r0, r0, r1
  11. ldr r0, [r0, #0x0]
  12. ldr r6, there
  13. add r6, #0x6
  14. ldrb r7, [r6, #0x0]
  15. loop: lsl r1, r7, #0x1
  16. add r1, r1, r7
  17. add r3, r0, r1
  18. ldrb r1, [r3, #0x2]
  19. mov r4, r10
  20. cmp r4, r1
  21. beq learn
  22. cmp r1, #0xFF
  23. beq exit
  24. add r7, #0x1
  25. b loop
  26. learn: ldr r2, there
  27. add r7, #0x1
  28. strb r7, [r6, #0x0]
  29. ldrb r1, [r3, #0x1]
  30. lsl r1, r1, #0x8
  31. ldrb r0, [r3, #0x0]
  32. orr r0, r1
  33. strh r0, [r2, #0x0]
  34. ldr r1, return
  35. bx r1
  36. exit: ldr r0, return2
  37. bx r0
  38. .align
  39. return: .word 0x0803EB65
  40. return2: .word 0x0803EB73
  41. there: .word 0x02024022