on cfdb853 help sign in
55 lines 853 B history raw
1.data
3.balign 4
4red: .word 0
5green: .word 0
6blue: .word 0
8.text
9.global grayscale
10.func grayscale
12grayscale:
13assign:
14 /* some comment */
15 ldr ip, addr_red
16 str r3, [ip]
17 ldr ip, addr_green
18 ldmfd r13!, {r3}
19 str r3, [ip]
20 ldr ip, addr_blue
21 ldmfd r13!, {r3}
22 str r3, [ip]
23 stmfd r13!, {r4-r8}
24 ldr ip, addr_red
25 ldr r3, [ip]
26 ldr ip, addr_green
27 ldr r4, [ip]
28 ldr ip, addr_blue
29 ldr r5, [ip] /* another comment */
30grayscale_loop:
31 ldrb r6, [r1]
32 mul r6, r3, r6
33 add r1, r1, #1
34 ldrb r7, [r1]
35 mul r7, r4, r7
36 add r1, r1, #1
37 ldrb r8, [r1]
38 mul r8, r5, r8
39 add r1, r1, #1
40 add r6, r6, r7
41 add r6, r6, r8
42 asr r6, r6, #8
43 str r6, [r2]
44 add r2, r2, #1
45 sub r0, r0, #1
46 cmp r0, #0
47 bne grayscale_loop
48 ldmfd r13!, {r4-r8}
49 stmfd r13!, {r0-r1}
50 bx lr
52addr_red: .word red
53addr_green: .word green
54addr_blue: .word blue