Advertisement
Guest User

Untitled

a guest
Jan 27th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.10 KB | None | 0 0
  1. .text
  2. .global generate_pgm
  3. /*
  4. &image r0
  5. width r1
  6. height r2
  7. R r3
  8. G r4
  9. B r5
  10. */
  11. generate_pgm:
  12. push {r11, lr}
  13. add r11, sp, #0
  14. push {r4, lr}
  15. push {r5, lr}
  16. push {r6, lr}
  17. push {r8, lr}
  18. push {r9, lr}
  19. push {r10, lr}
  20. ldrb r4, [r11, #4]
  21. ldrb r5, [r11, #8]
  22.  
  23. mov r8, #0 @ current index
  24. _calc_row:
  25. mul r6, r1, r2 @ size of the image
  26. cmp r8, r6 @ check if processed entire image
  27. bge _end
  28.  
  29. mov r6, #0 @ r6 = accumulator
  30. mov r10, #3
  31. mul r9, r8, r10
  32. add r9, r0, r9 @ r9 = current addressgłówni
  33. ldrb r10, [r9] @ R value
  34. mul r10, r3, r10
  35. add r6, r10, r6 @ r6 += R * R_multiplier
  36.  
  37. add r9, r9, #1
  38. ldrb r10, [r9] @ G value
  39. mul r10, r4, r10
  40. add r6, r10, r6 @ r6 += G * RG_multiplier
  41.  
  42. add r9, r9, #1
  43. ldrb r10, [r9] @ B value
  44. mul r10, r5, r10
  45. add r6, r10, r6 @ r6 += B * B_multiplier
  46. mov r6, r6, LSR #8 @ r6 /= 256
  47.  
  48. mov r10, #3
  49. mul r9, r8, r10
  50. add r9, r0, r9
  51. strb r6, [r9] @ store r6 value
  52.  
  53. add r8, r8, #1
  54. b _calc_row
  55.  
  56. _end:
  57. pop {r10}
  58. pop {r9}
  59. pop {r8}
  60. pop {r6}
  61. pop {r5}
  62. pop {r4}
  63. add sp, r11, #0
  64. pop {r11}
  65. bx lr
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement