Advertisement
Guest User

Untitled

a guest
Nov 22nd, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.23 KB | None | 0 0
  1. ┌ (fcn) fcn.000022a8 84
  2. │ fcn.000022a8 ();
  3. │ 0x000022a8 10b5 push (r4, lr)
  4. │ 0x000022aa 0446 r4 = r0 ; move value between registers
  5. │ 0x000022ac 0a20 r0 = 0xa ; move immediate into register and update flags
  6. │ 0x000022ae 6043 r0 = r4 * r0
  7. │ 0x000022b0 2049 r1 = [pc + 0x80] ; [0x2334:4]=0x10000a90 ; load from memory to register
  8. │ 0x000022b2 4018 r0 = r0 + r1 ; add two values and update flags
  9. │ 0x000022b4 8079 r0 = (byte) [r0 + 6] ; load byte from memory to register
  10. │ 0x000022b6 0028 if (r0 == 0) ; compare
  11. │ ┌─< 0x000022b8 04d0 je 0x22c4 ; branches if equal (see 'b') Z is set
  12. │ │ 0x000022ba 0128 if (r0 == 1) ; compare
  13. │ ┌──< 0x000022bc 1bd0 je 0x22f6 ; branches if equal (see 'b') Z is set
  14. │ ││ 0x000022be 0428 if (r0 == 4) ; compare
  15. │ ┌───< 0x000022c0 1ad1 bne 0x22f8 ; branch if Z clear (not equal)
  16. │ ┌────< 0x000022c2 17e0 jmp 0x22f4 ; branches the program counter to dst (pc aka r15)
  17. │ │││└─> 0x000022c4 00bf
  18. │ │││ 0x000022c6 00bf
  19. │ │││ 0x000022c8 0a20 r0 = 0xa ; move immediate into register and update flags
  20. │ │││ 0x000022ca 6043 r0 = r4 * r0
  21. │ │││ 0x000022cc 1949 r1 = [pc + 0x64] ; [0x2334:4]=0x10000a90 ; load from memory to register
  22. │ │││ 0x000022ce 4018 r0 = r0 + r1 ; add two values and update flags
  23. │ │││ 0x000022d0 c078 r0 = (byte) [r0 + 3] ; load byte from memory to register
  24. │ │││ 0x000022d2 0028 if (r0 == 0) ; compare
  25. │ │││┌─< 0x000022d4 03d0 je 0x22de ; branches if equal (see 'b') Z is set
  26. │ ││││ 0x000022d6 2046 r0 = r4 ; move value between registers
  27. │ ││││ 0x000022d8 fff71efc fcn.00001b18() ; branches and link, similar to call in i386, set lr(r14) = pc, changes pc (r15) )
  28. │ ┌─────< 0x000022dc 09e0 jmp 0x22f2 ; branches the program counter to dst (pc aka r15)
  29. │ ││││└─> 0x000022de 0a20 r0 = 0xa ; move immediate into register and update flags
  30. │ ││││ 0x000022e0 6043 r0 = r4 * r0
  31. │ ││││ 0x000022e2 1449 r1 = [pc + 0x50] ; [0x2334:4]=0x10000a90 ; load from memory to register
  32. │ ││││ 0x000022e4 4018 r0 = r0 + r1 ; add two values and update flags
  33. │ ││││ 0x000022e6 0079 r0 = (byte) [r0 + 4] ; load byte from memory to register
  34. │ ││││ 0x000022e8 0028 if (r0 == 0) ; compare
  35. │ ││││┌─< 0x000022ea 02d0 je 0x22f2 ; branches if equal (see 'b') Z is set
  36. │ │││││ 0x000022ec 2046 r0 = r4 ; move value between registers
  37. │ │││││ 0x000022ee fff76ffc fcn.00001bd0() ; branches and link, similar to call in i386, set lr(r14) = pc, changes pc (r15) )
  38. │ ┌└───└─> 0x000022f2 01e0 jmp 0x22f8 ; branches the program counter to dst (pc aka r15)
  39. │ │ └──┌─< 0x000022f4 00e0 jmp 0x22f8 ; branches the program counter to dst (pc aka r15)
  40. │ │ │└──> 0x000022f6 00bf
  41. │ └──└─└─> 0x000022f8 00bf
  42. └ 0x000022fa 10bd pop (r4, pc) ; load N elements from stack into given registers
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement