Norcroft ARM C 1.50A Aug 7 1987 |v$codeseg| 000000 ea000000 B |__main| #include #define true 1 #define false 0 #define size 8190 char flags[size+1]; main() 000004 6e69616d DCB &6d,&61,&69,&6e ; 'main' 000008 00000000 DCB &00,&00,&00,&00 ; '\0\0\0\0' 00000c ff000008 DCD &ff000008 { , line 12, Warning: 'int main()' assumed - 'void' intended? main int i,prime,k,count,iter; 000010 e1a0b00c MOV ip, sp 000014 e92cccf0 STMFD sp!, {v1,v2,v3,v4,fp,ip,lk,pc} 000018 e24ba004 SUB fp, ip, #4 ; 00000004 00001c e15c000d CMPS sp, sl 000020 3b000000 BLCC |x$stack_overflow| printf("10 iterations\n"); 000024 e3a07001 MOV v4, #1 ; 00000001 000028 e28f0f23 ADD a1, pc, #140 ; 0000008C 00002c eb000000 BL |_printf| for (iter = 1; iter <= 10; iter++) { count = 0; 000030 e1a04007 MOV v1, v4 for (i = 0; i <= size; i++) flags[i] = true; 000034 e59f5090 LDR v2, [pc, #144] 000038 e3a060fe MOV v3, #254 ; 000000FE 00003c e2866c1f ADD v3, v3, #7936 ; 00001F00 000040 e3a03000 MOV a4, #0 ; 00000000 000044 e1a02003 MOV a3, a4 000048 e1a00003 MOV a1, a4 00004c e7c57000 STRB v4, [v2, a1] 000050 e2800001 ADD a1, a1, #1 ; 00000001 000054 e1500006 CMPS a1, v3 000058 dafffffb BLE main+&3c ; 00FFFFFB for (i = 0; i <= size; i++) { if (flags[i]) 00005c e1a00003 MOV a1, a4 000060 e7d51000 LDRB a2, [v2, a1] 000064 e3510000 CMPS a2, #0 ; 00000000 000068 0a000009 BEQ main+&84 ; 00000009 { prime = i + i + 3; 00006c e0801000 ADD a2, a1, a1 000070 e281e003 ADD lk, a2, #3 ; 00000003 for (k = i+prime; k <= size; k += prime) 000074 e080100e ADD a2, a1, lk 000078 e1510006 CMPS a2, v3 00007c ca000003 BGT main+&80 ; 00000003 flags[k] = false; 000080 e7c53001 STRB a4, [v2, a2] 000084 e081100e ADD a2, a2, lk 000088 e1510006 CMPS a2, v3 00008c dafffffb BLE main+&70 ; 00FFFFFB count++; 000090 e2822001 ADD a3, a3, #1 ; 00000001 } } 000094 e2800001 ADD a1, a1, #1 ; 00000001 000098 e1500006 CMPS a1, v3 00009c daffffef BLE main+&50 ; 00FFFFEF } 0000a0 e2844001 ADD v1, v1, #1 ; 00000001 0000a4 e354000a CMPS v1, #10 ; 0000000A 0000a8 daffffe5 BLE main+&34 ; 00FFFFE5 printf("\n%d primes.\n", count); 0000ac e1a01002 MOV a2, a3 0000b0 e28f0f06 ADD a1, pc, #24 ; 00000018 0000b4 e91a54f0 LDMEA fp, {v1,v2,v3,v4,fp,sp,lk} 0000b8 ea000000 B |_printf| } , line 28, Warning: implicit return in non-void function 0000bc 69203031 DCB &31,&30,&20,&69 ; '10 i' 0000c0 61726574 DCB &74,&65,&72,&61 ; 'tera' 0000c4 6e6f6974 DCB &74,&69,&6f,&6e ; 'tion' 0000c8 00000a73 DCB &73,&0a,&00,&00 ; 's\n\0\0' 0000cc 00000000 DCD flags 0000d0 2064250a DCB &0a,&25,&64,&20 ; '\n%d ' 0000d4 6d697270 DCB &70,&72,&69,&6d ; 'prim' 0000d8 0a2e7365 DCB &65,&73,&2e,&0a ; 'es.\n' 0000dc 00000000 DCB &00,&00,&00,&00 ; '\0\0\0\0' AREA |C$$data| |v$dataseg| flags % 8188 DCD &00000000 EXPORT main EXPORT flags IMPORT |_printf| IMPORT |x$stack_overflow| IMPORT |__main| END : 2 warnings, 0 errors, 0 serious errors.