.arch armv6 .LC0: .ascii "Found %d primes:\000" .align 2 .LC1: .ascii " %d\000" .text .align 2 .global main .type main, %function main: stmfd sp!, {fp, lr} add fp, sp, #4 sub sp, sp, #56 mov r3, #320 str r3, [fp, #-20] mov r3, #0 str r3, [fp, #-8] mov r3, #0 str r3, [fp, #-16] b .L2 .L3: ldr r3, [fp, #-16] mov r3, r3, asl #2 sub r2, fp, #4 add r3, r2, r3 mov r2, #0 str r2, [r3, #-56] ldr r3, [fp, #-16] add r3, r3, #1 str r3, [fp, #-16] .L2: ldr r3, [fp, #-16] cmp r3, #9 ble .L3 mov r3, #2 str r3, [fp, #-12] b .L4 .L6: ldr r2, [fp, #-12] sub r3, fp, #60 mov r0, r2 mov r1, r3 bl checkNum mov r3, r0 cmp r3, #0 beq .L5 ldr r3, [fp, #-8] add r3, r3, #1 str r3, [fp, #-8] .L5: ldr r3, [fp, #-12] add r3, r3, #1 str r3, [fp, #-12] .L4: ldr r2, [fp, #-12] ldr r3, [fp, #-20] cmp r2, r3 blt .L6 ldr r0, .L10 ldr r1, [fp, #-8] bl printf mov r3, #0 str r3, [fp, #-12] b .L7 .L9: ldr r3, [fp, #-12] mov r3, r3, lsr #5 mov r3, r3, asl #2 sub r2, fp, #4 add r3, r2, r3 ldr r2, [r3, #-56] ldr r3, [fp, #-12] and r3, r3, #31 mov r3, r2, lsr r3 and r3, r3, #1 cmp r3, #0 beq .L8 ldr r0, .L10+4 ldr r1, [fp, #-12] bl printf .L8: ldr r3, [fp, #-12] add r3, r3, #1 str r3, [fp, #-12] .L7: ldr r2, [fp, #-12] ldr r3, [fp, #-20] cmp r2, r3 blt .L9 mov r0, #10 bl putchar mov r0, #0 sub sp, fp, #4 ldmfd sp!, {fp, pc} .L11: .align 2 .L10: .word .LC0 .word .LC1 .size main, .-main .global __aeabi_uidivmod .align 2 .global checkNum .type checkNum, %function checkNum: stmfd sp!, {fp, lr} add fp, sp, #4 sub sp, sp, #16 str r0, [fp, #-16] str r1, [fp, #-20] mov r3, #2 str r3, [fp, #-8] b .L13 .L15: ldr r3, [fp, #-8] add r3, r3, #1 str r3, [fp, #-8] .L13: ldr r2, [fp, #-8] ldr r3, [fp, #-16] cmp r2, r3 bhs .L14 ldr r3, [fp, #-8] ldr r2, [fp, #-16] mov r0, r2 mov r1, r3 bl __aeabi_uidivmod mov r3, r1 cmp r3, #0 bne .L15 .L14: ldr r2, [fp, #-8] ldr r3, [fp, #-16] cmp r2, r3 bne .L16 ldr r0, [fp, #-16] ldr r1, [fp, #-20] bl setBit .L16: ldr r2, [fp, #-8] ldr r3, [fp, #-16] cmp r2, r3 moveq r3, #1 movne r3, #0 uxtb r3, r3 mov r0, r3 sub sp, fp, #4 ldmfd sp!, {fp, pc} .size checkNum, .-checkNum .align 2 .global setBit .type setBit, %function setBit: str fp, [sp, #-4]! add fp, sp, #0 sub sp, sp, #12 str r0, [fp, #-8] str r1, [fp, #-12] ldr r3, [fp, #-8] mov r3, r3, lsr #5 mov r3, r3, asl #2 ldr r2, [fp, #-12] add r3, r2, r3 ldr r2, [fp, #-8] mov r2, r2, lsr #5 mov r2, r2, asl #2 ldr r1, [fp, #-12] add r2, r1, r2 ldr r2, [r2] ldr r1, [fp, #-8] and r1, r1, #31 mov r0, #1 mov r1, r0, asl r1 orr r2, r2, r1 str r2, [r3] sub sp, fp, #0 ldr fp, [sp], #4 bx lr