Brak opisu

custom_print_string.S 759B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. .text
  2. .align 2
  3. .thumb
  4. .global custom_print_string
  5. custom_print_string:
  6. mov r0, #0xC2
  7. lsl r0, r0, #0x1
  8. cmp r0, r6
  9. bne normalcode
  10. ldr r0, ramlocation
  11. ldr r7, [r0, #0x0]
  12. cmp r7, #0x0
  13. beq alternative
  14. mov r0, #0xA
  15. lsl r0, r0, #0x18
  16. cmp r7, r0
  17. bge alternative
  18. mov r0, #0x8
  19. lsl r0, r0, #0x18
  20. cmp r7, r0
  21. blt alternative
  22. b continue
  23. alternative:
  24. mov r6, #0xC
  25. ldr r1, returntwo
  26. bx r1
  27. continue:
  28. ldr r0, returnone
  29. bx r0
  30. normalcode:
  31. ldr r1, otherramloc
  32. mov r0, #0xFF
  33. strb r0, [r1, #0x0]
  34. pop {r3-r5}
  35. mov r8, r3
  36. mov r9, r4
  37. mov r10, r5
  38. pop {r4-r7}
  39. pop {r0}
  40. bx r0
  41. .align 2
  42. ramlocation:
  43. .word 0x0203C020
  44. returntwo:
  45. .word 0x080D77D1
  46. returnone:
  47. .word 0x080D77DD
  48. otherramloc:
  49. .word 0x0202298C