Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @ Jakub Obuchowski 385877
- .arm
- .global grayscale
- .func grayscale
- .text
- grayscale:
- push {r3, r4, r5, r6, r7, r8, r9, lr}
- @ r3 - width * height
- mul r3, r1, r2
- @ set factors for average
- mov r7, #77
- mov r8, #151
- mov r9, #28
- main_loop_begin:
- cmp r3, #0
- beq main_loop_end
- mov r4, #0
- mov r5, #0
- mov r6, #0
- @ get r, g, b values of current cell
- ldrb r4, [r0]
- add r0, #1
- ldrb r5, [r0]
- add r0, #1
- ldrb r6, [r0]
- sub r0, #2
- @ transform values
- mul r4, r7
- mul r5, r8
- mul r6, r9
- @ sum
- add r4, r5
- add r4, r6
- @ divide
- lsr r4, #8
- @ r value of current cell
- strb r4, [r0]
- add r0, #3
- sub r3, #1
- b main_loop_begin
- main_loop_end:
- pop {r3, r4, r5, r6, r7, r8, r9, lr}
- bx lr
- .end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement