.file "rwa.c" .section .rodata.str1.4,"aMS",%progbits,1 .align 2 .LC0: .ascii "Test program...\000" .align 2 .LC1: .ascii "Usage: %s addr val\012\000" .align 2 .LC2: .ascii "/dev/mem\000" .align 2 .LC3: .ascii "Can not open /dev/mem\000" .align 2 .LC4: .ascii "Error MMAP /dev/mem\000" .align 2 .LC5: .ascii "%i\000" .align 2 .LC6: .ascii "Setting 0x%08x is 0x%04x\012\000" .text .align 2 .global main .type main, %function main: @ args = 0, pretend = 0, frame = 4 @ frame_needed = 0, uses_anonymous_args = 0 stmfd sp!, {r4, r5, r6, r7, lr} mov r4, r0 sub sp, sp, #12 ldr r0, .L11 mov r5, r1 bl puts cmp r4, #1 bgt .L2 ldr r1, [r5, #0] ldr r0, .L11+4 bl printf mvn r0, #0 b .L9 .L2: ldr r0, .L11+8 ldr r1, .L11+12 bl open subs r7, r0, #0 bge .L4 ldr r0, .L11+16 .L10: bl perror mov r0, #1 .L9: bl exit .L4: mov r6, #0 mov r0, r6 mov r1, #131072 mov r2, #3 mov r3, #1 str r7, [sp, #0] str r6, [sp, #4] bl mmap cmn r0, #1 mov r4, r0 ldreq r0, .L11+20 beq .L10 add r2, sp, #8 ldr r0, [r5, #4] ldr r1, .L11+24 bl sscanf ldr r1, [sp, #8] mov r2, r1, asl #17 and r3, r1, #32768 mov r2, r2, lsr #17 mov r3, r3, lsr #15 orr r3, r3, r2, asl #1 mov r3, r3, asl #1 ldrh r2, [r4, r3] ldr r0, .L11+28 bl printf mov r1, #131072 mov r0, r4 bl munmap mov r0, r7 bl close mov r0, r6 add sp, sp, #12 ldmfd sp!, {r4, r5, r6, r7, pc} .L12: .align 2 .L11: .word .LC0 .word .LC1 .word .LC2 .word 4098 .word .LC3 .word .LC4 .word .LC5 .word .LC6 .size main, .-main .ident "GCC: (GNU) 4.1.2"