Advertisement
Guest User

Untitled

a guest
Jan 26th, 2020
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.85 KB | None | 0 0
  1. @ Jakub Obuchowski 385877
  2.  
  3. .arm
  4. .global grayscale
  5. .func grayscale
  6.  
  7. .text
  8. grayscale:
  9. push {r3, r4, r5, r6, r7, r8, r9, lr}
  10.  
  11. @ r3 - width * height
  12. mul r3, r1, r2
  13.  
  14. @ set factors for average
  15. mov r7, #77
  16. mov r8, #151
  17. mov r9, #28
  18.  
  19. main_loop_begin:
  20. cmp r3, #0
  21. beq main_loop_end
  22.  
  23. mov r4, #0
  24. mov r5, #0
  25. mov r6, #0
  26.  
  27. @ get r, g, b values of current cell
  28. ldrb r4, [r0]
  29. add r0, #1
  30. ldrb r5, [r0]
  31. add r0, #1
  32. ldrb r6, [r0]
  33. sub r0, #2
  34.  
  35. @ transform values
  36. mul r4, r7
  37. mul r5, r8
  38. mul r6, r9
  39.  
  40. @ sum
  41. add r4, r5
  42. add r4, r6
  43.  
  44. @ divide
  45. lsr r4, #8
  46.  
  47. @ r value of current cell
  48. strb r4, [r0]
  49. add r0, #3
  50.  
  51. sub r3, #1
  52. b main_loop_begin
  53.  
  54. main_loop_end:
  55. pop {r3, r4, r5, r6, r7, r8, r9, lr}
  56. bx lr
  57. .end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement