Mercurial > hg > Members > tobaru > xv6-osx-rpi
view src/usr/ls.asm @ 0:53676d1f5817 default tip
firsh commit
author | tobaru |
---|---|
date | Sun, 04 Feb 2018 17:54:49 +0900 |
parents | |
children |
line wrap: on
line source
_ls: file format elf32-littlearm Disassembly of section .text: 00000000 <fmtname>: #include "user.h" #include "fs.h" char* fmtname(char *path) { 0: e92d4800 push {fp, lr} 4: e1a0b00d mov fp, sp 8: e24dd030 sub sp, sp, #48 ; 0x30 c: e1a01000 mov r1, r0 10: e50b0008 str r0, [fp, #-8] 14: e51b0008 ldr r0, [fp, #-8] 18: e50b0010 str r0, [fp, #-16] 1c: e50b1014 str r1, [fp, #-20] ; 0xffffffec 20: eb00013f bl 524 <strlen> 24: e51b1010 ldr r1, [fp, #-16] 28: e0810000 add r0, r1, r0 2c: e50b000c str r0, [fp, #-12] 30: eaffffff b 34 <fmtname+0x34> 34: e51b000c ldr r0, [fp, #-12] 38: e51b1008 ldr r1, [fp, #-8] 3c: e3a02000 mov r2, #0 40: e1500001 cmp r0, r1 44: e58d2018 str r2, [sp, #24] 48: 3a000007 bcc 6c <fmtname+0x6c> 4c: eaffffff b 50 <fmtname+0x50> 50: e51b000c ldr r0, [fp, #-12] 54: e5d00000 ldrb r0, [r0] 58: e3a01000 mov r1, #0 5c: e350002f cmp r0, #47 ; 0x2f 60: 13a01001 movne r1, #1 64: e58d1018 str r1, [sp, #24] 68: eaffffff b 6c <fmtname+0x6c> 6c: e59d0018 ldr r0, [sp, #24] 70: e3100001 tst r0, #1 74: 0a000005 beq 90 <fmtname+0x90> 78: eaffffff b 7c <fmtname+0x7c> 7c: eaffffff b 80 <fmtname+0x80> 80: e51b000c ldr r0, [fp, #-12] 84: e2400001 sub r0, r0, #1 88: e50b000c str r0, [fp, #-12] 8c: eaffffe8 b 34 <fmtname+0x34> 90: e51b000c ldr r0, [fp, #-12] 94: e2800001 add r0, r0, #1 98: e50b000c str r0, [fp, #-12] 9c: e51b000c ldr r0, [fp, #-12] a0: eb00011f bl 524 <strlen> a4: e350000e cmp r0, #14 a8: 3a000003 bcc bc <fmtname+0xbc> ac: eaffffff b b0 <fmtname+0xb0> b0: e51b000c ldr r0, [fp, #-12] b4: e50b0004 str r0, [fp, #-4] b8: ea00001b b 12c <fmtname+0x12c> bc: e51b000c ldr r0, [fp, #-12] c0: e58d0014 str r0, [sp, #20] c4: eb000116 bl 524 <strlen> c8: e59fe068 ldr lr, [pc, #104] ; 138 <fmtname+0x138> cc: e58d0010 str r0, [sp, #16] d0: e1a0000e mov r0, lr d4: e59d1014 ldr r1, [sp, #20] d8: e59d2010 ldr r2, [sp, #16] dc: e58de00c str lr, [sp, #12] e0: eb000218 bl 948 <memmove> e4: e51b100c ldr r1, [fp, #-12] e8: e58d0008 str r0, [sp, #8] ec: e1a00001 mov r0, r1 f0: eb00010b bl 524 <strlen> f4: e59d100c ldr r1, [sp, #12] f8: e0810000 add r0, r1, r0 fc: e51b200c ldr r2, [fp, #-12] 100: e58d0004 str r0, [sp, #4] 104: e1a00002 mov r0, r2 108: eb000105 bl 524 <strlen> 10c: e260200e rsb r2, r0, #14 110: e3a01020 mov r1, #32 114: e59d0004 ldr r0, [sp, #4] 118: eb000116 bl 578 <memset> 11c: e59d100c ldr r1, [sp, #12] 120: e50b1004 str r1, [fp, #-4] 124: e58d0000 str r0, [sp] 128: eaffffff b 12c <fmtname+0x12c> 12c: e51b0004 ldr r0, [fp, #-4] 130: e1a0d00b mov sp, fp 134: e8bd8800 pop {fp, pc} 138: 00001604 .word 0x00001604 0000013c <ls>: 13c: e92d4830 push {r4, r5, fp, lr} 140: e28db008 add fp, sp, #8 144: e24dde26 sub sp, sp, #608 ; 0x260 148: e1a01000 mov r1, r0 14c: e50b000c str r0, [fp, #-12] 150: e51b000c ldr r0, [fp, #-12] 154: e3a02000 mov r2, #0 158: e58d102c str r1, [sp, #44] ; 0x2c 15c: e1a01002 mov r1, r2 160: eb00026d bl b1c <open> 164: e58d0054 str r0, [sp, #84] ; 0x54 168: e3500000 cmp r0, #0 16c: aa000005 bge 188 <ls+0x4c> 170: eaffffff b 174 <ls+0x38> 174: e51b200c ldr r2, [fp, #-12] 178: e59f11f8 ldr r1, [pc, #504] ; 378 <ls+0x23c> 17c: e3a00002 mov r0, #2 180: eb0002d1 bl ccc <printf> 184: ea000076 b 364 <ls+0x228> 188: e59d0054 ldr r0, [sp, #84] ; 0x54 18c: e28d1030 add r1, sp, #48 ; 0x30 190: eb00027c bl b88 <fstat> 194: e3500000 cmp r0, #0 198: aa000008 bge 1c0 <ls+0x84> 19c: eaffffff b 1a0 <ls+0x64> 1a0: e51b200c ldr r2, [fp, #-12] 1a4: e59f11c4 ldr r1, [pc, #452] ; 370 <ls+0x234> 1a8: e3a00002 mov r0, #2 1ac: eb0002c6 bl ccc <printf> 1b0: e59d0054 ldr r0, [sp, #84] ; 0x54 1b4: eb00023d bl ab0 <close> 1b8: e58d0028 str r0, [sp, #40] ; 0x28 1bc: ea000068 b 364 <ls+0x228> 1c0: e1dd03f0 ldrsh r0, [sp, #48] ; 0x30 1c4: e3500001 cmp r0, #1 1c8: e58d0024 str r0, [sp, #36] ; 0x24 1cc: 0a000013 beq 220 <ls+0xe4> 1d0: eaffffff b 1d4 <ls+0x98> 1d4: e59d0024 ldr r0, [sp, #36] ; 0x24 1d8: e3500002 cmp r0, #2 1dc: 1a00005c bne 354 <ls+0x218> 1e0: eaffffff b 1e4 <ls+0xa8> 1e4: e51b000c ldr r0, [fp, #-12] 1e8: ebffff84 bl 0 <fmtname> 1ec: e1dd33f0 ldrsh r3, [sp, #48] ; 0x30 1f0: e59de038 ldr lr, [sp, #56] ; 0x38 1f4: e59d1040 ldr r1, [sp, #64] ; 0x40 1f8: e1a0200d mov r2, sp 1fc: e5821004 str r1, [r2, #4] 200: e582e000 str lr, [r2] 204: e59f1160 ldr r1, [pc, #352] ; 36c <ls+0x230> 208: e3a02001 mov r2, #1 20c: e58d0020 str r0, [sp, #32] 210: e1a00002 mov r0, r2 214: e59d2020 ldr r2, [sp, #32] 218: eb0002ab bl ccc <printf> 21c: ea00004c b 354 <ls+0x218> 220: e51b000c ldr r0, [fp, #-12] 224: eb0000be bl 524 <strlen> 228: e2800010 add r0, r0, #16 22c: e3500c02 cmp r0, #512 ; 0x200 230: 9a000004 bls 248 <ls+0x10c> 234: eaffffff b 238 <ls+0xfc> 238: e59f1134 ldr r1, [pc, #308] ; 374 <ls+0x238> 23c: e3a00001 mov r0, #1 240: eb0002a1 bl ccc <printf> 244: ea000042 b 354 <ls+0x218> 248: e51b100c ldr r1, [fp, #-12] 24c: e28d005c add r0, sp, #92 ; 0x5c 250: e58d001c str r0, [sp, #28] 254: eb00006f bl 418 <strcpy> 258: e59d101c ldr r1, [sp, #28] 25c: e58d0018 str r0, [sp, #24] 260: e1a00001 mov r0, r1 264: eb0000ae bl 524 <strlen> 268: e59d101c ldr r1, [sp, #28] 26c: e0810000 add r0, r1, r0 270: e58d0058 str r0, [sp, #88] ; 0x58 274: e59d0058 ldr r0, [sp, #88] ; 0x58 278: e280e001 add lr, r0, #1 27c: e58de058 str lr, [sp, #88] ; 0x58 280: e3a0e02f mov lr, #47 ; 0x2f 284: e5c0e000 strb lr, [r0] 288: eaffffff b 28c <ls+0x150> 28c: e59d0054 ldr r0, [sp, #84] ; 0x54 290: e28d1044 add r1, sp, #68 ; 0x44 294: e3a02010 mov r2, #16 298: eb0001f2 bl a68 <read> 29c: e3500010 cmp r0, #16 2a0: 1a00002a bne 350 <ls+0x214> 2a4: eaffffff b 2a8 <ls+0x16c> 2a8: e1dd04b4 ldrh r0, [sp, #68] ; 0x44 2ac: e3500000 cmp r0, #0 2b0: 1a000001 bne 2bc <ls+0x180> 2b4: eaffffff b 2b8 <ls+0x17c> 2b8: eafffff3 b 28c <ls+0x150> 2bc: e59d0058 ldr r0, [sp, #88] ; 0x58 2c0: e28d1044 add r1, sp, #68 ; 0x44 2c4: e3811002 orr r1, r1, #2 2c8: e3a0200e mov r2, #14 2cc: eb00019d bl 948 <memmove> 2d0: e59d1058 ldr r1, [sp, #88] ; 0x58 2d4: e3a02000 mov r2, #0 2d8: e5c1200e strb r2, [r1, #14] 2dc: e28d105c add r1, sp, #92 ; 0x5c 2e0: e28d2030 add r2, sp, #48 ; 0x30 2e4: e58d0014 str r0, [sp, #20] 2e8: e1a00001 mov r0, r1 2ec: e1a01002 mov r1, r2 2f0: eb00014d bl 82c <stat> 2f4: e3500000 cmp r0, #0 2f8: aa000005 bge 314 <ls+0x1d8> 2fc: eaffffff b 300 <ls+0x1c4> 300: e59f1068 ldr r1, [pc, #104] ; 370 <ls+0x234> 304: e3a00001 mov r0, #1 308: e28d205c add r2, sp, #92 ; 0x5c 30c: eb00026e bl ccc <printf> 310: eaffffdd b 28c <ls+0x150> 314: e28d005c add r0, sp, #92 ; 0x5c 318: ebffff38 bl 0 <fmtname> 31c: e1dd33f0 ldrsh r3, [sp, #48] ; 0x30 320: e59de038 ldr lr, [sp, #56] ; 0x38 324: e59d1040 ldr r1, [sp, #64] ; 0x40 328: e1a0200d mov r2, sp 32c: e5821004 str r1, [r2, #4] 330: e582e000 str lr, [r2] 334: e59f1030 ldr r1, [pc, #48] ; 36c <ls+0x230> 338: e3a02001 mov r2, #1 33c: e58d0010 str r0, [sp, #16] 340: e1a00002 mov r0, r2 344: e59d2010 ldr r2, [sp, #16] 348: eb00025f bl ccc <printf> 34c: eaffffce b 28c <ls+0x150> 350: eaffffff b 354 <ls+0x218> 354: e59d0054 ldr r0, [sp, #84] ; 0x54 358: eb0001d4 bl ab0 <close> 35c: e58d000c str r0, [sp, #12] 360: eaffffff b 364 <ls+0x228> 364: e24bd008 sub sp, fp, #8 368: e8bd8830 pop {r4, r5, fp, pc} 36c: 000015bc .word 0x000015bc 370: 000015a8 .word 0x000015a8 374: 000015c9 .word 0x000015c9 378: 00001594 .word 0x00001594 0000037c <main>: close(fd); } int main(int argc, char *argv[]) { 37c: e92d4800 push {fp, lr} 380: e1a0b00d mov fp, sp 384: e24dd020 sub sp, sp, #32 388: e1a02001 mov r2, r1 38c: e1a03000 mov r3, r0 390: e3a0c000 mov ip, #0 394: e50bc004 str ip, [fp, #-4] 398: e50b0008 str r0, [fp, #-8] 39c: e50b100c str r1, [fp, #-12] int i; if(argc < 2){ 3a0: e51b0008 ldr r0, [fp, #-8] 3a4: e3500001 cmp r0, #1 3a8: e58d200c str r2, [sp, #12] 3ac: e58d3008 str r3, [sp, #8] 3b0: ca000004 bgt 3c8 <main+0x4c> 3b4: eaffffff b 3b8 <main+0x3c> ls("."); 3b8: e59f0054 ldr r0, [pc, #84] ; 414 <main+0x98> 3bc: ebffff5e bl 13c <ls> exit(); 3c0: eb00018d bl 9fc <exit> 3c4: e58d0004 str r0, [sp, #4] } for(i=1; i<argc; i++) 3c8: e3a00001 mov r0, #1 3cc: e58d0010 str r0, [sp, #16] 3d0: eaffffff b 3d4 <main+0x58> 3d4: e59d0010 ldr r0, [sp, #16] 3d8: e51b1008 ldr r1, [fp, #-8] 3dc: e1500001 cmp r0, r1 3e0: aa000009 bge 40c <main+0x90> 3e4: eaffffff b 3e8 <main+0x6c> ls(argv[i]); 3e8: e51b000c ldr r0, [fp, #-12] 3ec: e59d1010 ldr r1, [sp, #16] 3f0: e7900101 ldr r0, [r0, r1, lsl #2] 3f4: ebffff50 bl 13c <ls> 3f8: eaffffff b 3fc <main+0x80> for(i=1; i<argc; i++) 3fc: e59d0010 ldr r0, [sp, #16] 400: e2800001 add r0, r0, #1 404: e58d0010 str r0, [sp, #16] 408: eafffff1 b 3d4 <main+0x58> exit(); 40c: eb00017a bl 9fc <exit> 410: e58d0000 str r0, [sp] 414: 000015dc .word 0x000015dc 00000418 <strcpy>: #include "fcntl.h" #include "user.h" char* strcpy(char *s, char *t) { 418: e24dd014 sub sp, sp, #20 41c: e1a02001 mov r2, r1 420: e1a03000 mov r3, r0 424: e58d0010 str r0, [sp, #16] 428: e58d100c str r1, [sp, #12] 42c: e59d0010 ldr r0, [sp, #16] 430: e58d0008 str r0, [sp, #8] 434: e58d2004 str r2, [sp, #4] 438: e58d3000 str r3, [sp] 43c: eaffffff b 440 <strcpy+0x28> 440: e59d000c ldr r0, [sp, #12] 444: e2801001 add r1, r0, #1 448: e58d100c str r1, [sp, #12] 44c: e5d00000 ldrb r0, [r0] 450: e59d1010 ldr r1, [sp, #16] 454: e2812001 add r2, r1, #1 458: e58d2010 str r2, [sp, #16] 45c: e5c10000 strb r0, [r1] 460: e3500000 cmp r0, #0 464: 0a000001 beq 470 <strcpy+0x58> 468: eaffffff b 46c <strcpy+0x54> 46c: eafffff3 b 440 <strcpy+0x28> 470: e59d0008 ldr r0, [sp, #8] 474: e28dd014 add sp, sp, #20 478: e12fff1e bx lr 0000047c <strcmp>: 47c: e24dd014 sub sp, sp, #20 480: e1a02001 mov r2, r1 484: e1a03000 mov r3, r0 488: e58d0010 str r0, [sp, #16] 48c: e58d100c str r1, [sp, #12] 490: e58d2008 str r2, [sp, #8] 494: e58d3004 str r3, [sp, #4] 498: eaffffff b 49c <strcmp+0x20> 49c: e59d0010 ldr r0, [sp, #16] 4a0: e5d00000 ldrb r0, [r0] 4a4: e3a01000 mov r1, #0 4a8: e3500000 cmp r0, #0 4ac: e58d1000 str r1, [sp] 4b0: 0a000009 beq 4dc <strcmp+0x60> 4b4: eaffffff b 4b8 <strcmp+0x3c> 4b8: e59d0010 ldr r0, [sp, #16] 4bc: e5d00000 ldrb r0, [r0] 4c0: e59d100c ldr r1, [sp, #12] 4c4: e5d11000 ldrb r1, [r1] 4c8: e3a02000 mov r2, #0 4cc: e1500001 cmp r0, r1 4d0: 03a02001 moveq r2, #1 4d4: e58d2000 str r2, [sp] 4d8: eaffffff b 4dc <strcmp+0x60> 4dc: e59d0000 ldr r0, [sp] 4e0: e3100001 tst r0, #1 4e4: 0a000007 beq 508 <strcmp+0x8c> 4e8: eaffffff b 4ec <strcmp+0x70> 4ec: e59d0010 ldr r0, [sp, #16] 4f0: e2800001 add r0, r0, #1 4f4: e58d0010 str r0, [sp, #16] 4f8: e59d000c ldr r0, [sp, #12] 4fc: e2800001 add r0, r0, #1 500: e58d000c str r0, [sp, #12] 504: eaffffe4 b 49c <strcmp+0x20> 508: e59d0010 ldr r0, [sp, #16] 50c: e5d00000 ldrb r0, [r0] 510: e59d100c ldr r1, [sp, #12] 514: e5d11000 ldrb r1, [r1] 518: e0400001 sub r0, r0, r1 51c: e28dd014 add sp, sp, #20 520: e12fff1e bx lr 00000524 <strlen>: 524: e24dd00c sub sp, sp, #12 528: e1a01000 mov r1, r0 52c: e58d0008 str r0, [sp, #8] 530: e3a00000 mov r0, #0 534: e58d0004 str r0, [sp, #4] 538: e58d1000 str r1, [sp] 53c: eaffffff b 540 <strlen+0x1c> 540: e59d0008 ldr r0, [sp, #8] 544: e59d1004 ldr r1, [sp, #4] 548: e7d00001 ldrb r0, [r0, r1] 54c: e3500000 cmp r0, #0 550: 0a000005 beq 56c <strlen+0x48> 554: eaffffff b 558 <strlen+0x34> 558: eaffffff b 55c <strlen+0x38> 55c: e59d0004 ldr r0, [sp, #4] 560: e2800001 add r0, r0, #1 564: e58d0004 str r0, [sp, #4] 568: eafffff4 b 540 <strlen+0x1c> 56c: e59d0004 ldr r0, [sp, #4] 570: e28dd00c add sp, sp, #12 574: e12fff1e bx lr 00000578 <memset>: 578: e92d4800 push {fp, lr} 57c: e1a0b00d mov fp, sp 580: e24dd02c sub sp, sp, #44 ; 0x2c 584: e1a03002 mov r3, r2 588: e1a0c001 mov ip, r1 58c: e1a0e000 mov lr, r0 590: e50b0004 str r0, [fp, #-4] 594: e50b1008 str r1, [fp, #-8] 598: e50b200c str r2, [fp, #-12] 59c: e51b0004 ldr r0, [fp, #-4] 5a0: e50b0010 str r0, [fp, #-16] 5a4: e51b0008 ldr r0, [fp, #-8] 5a8: e54b0011 strb r0, [fp, #-17] ; 0xffffffef 5ac: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 5b0: e1a01c00 lsl r1, r0, #24 5b4: e1811800 orr r1, r1, r0, lsl #16 5b8: e1811400 orr r1, r1, r0, lsl #8 5bc: e1810000 orr r0, r1, r0 5c0: e58d0014 str r0, [sp, #20] 5c4: e58d300c str r3, [sp, #12] 5c8: e58dc008 str ip, [sp, #8] 5cc: e58de004 str lr, [sp, #4] 5d0: eaffffff b 5d4 <memset+0x5c> 5d4: e51b000c ldr r0, [fp, #-12] 5d8: e3a01000 mov r1, #0 5dc: e3500000 cmp r0, #0 5e0: e58d1000 str r1, [sp] 5e4: 0a000006 beq 604 <memset+0x8c> 5e8: eaffffff b 5ec <memset+0x74> 5ec: e55b0010 ldrb r0, [fp, #-16] 5f0: e2000003 and r0, r0, #3 5f4: e3500000 cmp r0, #0 5f8: 13a00001 movne r0, #1 5fc: e58d0000 str r0, [sp] 600: eaffffff b 604 <memset+0x8c> 604: e59d0000 ldr r0, [sp] 608: e3100001 tst r0, #1 60c: 0a00000b beq 640 <memset+0xc8> 610: eaffffff b 614 <memset+0x9c> 614: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 618: e51b1010 ldr r1, [fp, #-16] 61c: e5c10000 strb r0, [r1] 620: eaffffff b 624 <memset+0xac> 624: e51b000c ldr r0, [fp, #-12] 628: e2400001 sub r0, r0, #1 62c: e50b000c str r0, [fp, #-12] 630: e51b0010 ldr r0, [fp, #-16] 634: e2800001 add r0, r0, #1 638: e50b0010 str r0, [fp, #-16] 63c: eaffffe4 b 5d4 <memset+0x5c> 640: e51b0010 ldr r0, [fp, #-16] 644: e58d0010 str r0, [sp, #16] 648: eaffffff b 64c <memset+0xd4> 64c: e51b000c ldr r0, [fp, #-12] 650: e3500004 cmp r0, #4 654: 3a00000b bcc 688 <memset+0x110> 658: eaffffff b 65c <memset+0xe4> 65c: e59d0014 ldr r0, [sp, #20] 660: e59d1010 ldr r1, [sp, #16] 664: e5810000 str r0, [r1] 668: eaffffff b 66c <memset+0xf4> 66c: e51b000c ldr r0, [fp, #-12] 670: e2400004 sub r0, r0, #4 674: e50b000c str r0, [fp, #-12] 678: e59d0010 ldr r0, [sp, #16] 67c: e2800004 add r0, r0, #4 680: e58d0010 str r0, [sp, #16] 684: eafffff0 b 64c <memset+0xd4> 688: e59d0010 ldr r0, [sp, #16] 68c: e50b0010 str r0, [fp, #-16] 690: eaffffff b 694 <memset+0x11c> 694: e51b000c ldr r0, [fp, #-12] 698: e3500000 cmp r0, #0 69c: 0a00000b beq 6d0 <memset+0x158> 6a0: eaffffff b 6a4 <memset+0x12c> 6a4: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 6a8: e51b1010 ldr r1, [fp, #-16] 6ac: e5c10000 strb r0, [r1] 6b0: eaffffff b 6b4 <memset+0x13c> 6b4: e51b000c ldr r0, [fp, #-12] 6b8: e2400001 sub r0, r0, #1 6bc: e50b000c str r0, [fp, #-12] 6c0: e51b0010 ldr r0, [fp, #-16] 6c4: e2800001 add r0, r0, #1 6c8: e50b0010 str r0, [fp, #-16] 6cc: eafffff0 b 694 <memset+0x11c> 6d0: e51b0004 ldr r0, [fp, #-4] 6d4: e1a0d00b mov sp, fp 6d8: e8bd8800 pop {fp, pc} 000006dc <strchr>: 6dc: e24dd014 sub sp, sp, #20 6e0: e1a02001 mov r2, r1 6e4: e1a03000 mov r3, r0 6e8: e58d000c str r0, [sp, #12] 6ec: e5cd100b strb r1, [sp, #11] 6f0: e58d2004 str r2, [sp, #4] 6f4: e58d3000 str r3, [sp] 6f8: eaffffff b 6fc <strchr+0x20> 6fc: e59d000c ldr r0, [sp, #12] 700: e5d00000 ldrb r0, [r0] 704: e3500000 cmp r0, #0 708: 0a00000e beq 748 <strchr+0x6c> 70c: eaffffff b 710 <strchr+0x34> 710: e59d000c ldr r0, [sp, #12] 714: e5d00000 ldrb r0, [r0] 718: e5dd100b ldrb r1, [sp, #11] 71c: e1500001 cmp r0, r1 720: 1a000003 bne 734 <strchr+0x58> 724: eaffffff b 728 <strchr+0x4c> 728: e59d000c ldr r0, [sp, #12] 72c: e58d0010 str r0, [sp, #16] 730: ea000007 b 754 <strchr+0x78> 734: eaffffff b 738 <strchr+0x5c> 738: e59d000c ldr r0, [sp, #12] 73c: e2800001 add r0, r0, #1 740: e58d000c str r0, [sp, #12] 744: eaffffec b 6fc <strchr+0x20> 748: e3a00000 mov r0, #0 74c: e58d0010 str r0, [sp, #16] 750: eaffffff b 754 <strchr+0x78> 754: e59d0010 ldr r0, [sp, #16] 758: e28dd014 add sp, sp, #20 75c: e12fff1e bx lr 00000760 <gets>: 760: e92d4800 push {fp, lr} 764: e1a0b00d mov fp, sp 768: e24dd020 sub sp, sp, #32 76c: e1a02001 mov r2, r1 770: e1a03000 mov r3, r0 774: e50b0004 str r0, [fp, #-4] 778: e50b1008 str r1, [fp, #-8] 77c: e3a00000 mov r0, #0 780: e50b000c str r0, [fp, #-12] 784: e58d2008 str r2, [sp, #8] 788: e58d3004 str r3, [sp, #4] 78c: eaffffff b 790 <gets+0x30> 790: e51b000c ldr r0, [fp, #-12] 794: e2800001 add r0, r0, #1 798: e51b1008 ldr r1, [fp, #-8] 79c: e1500001 cmp r0, r1 7a0: aa00001a bge 810 <gets+0xb0> 7a4: eaffffff b 7a8 <gets+0x48> 7a8: e3a00000 mov r0, #0 7ac: e28d100f add r1, sp, #15 7b0: e3a02001 mov r2, #1 7b4: eb0000ab bl a68 <read> 7b8: e58d0010 str r0, [sp, #16] 7bc: e59d0010 ldr r0, [sp, #16] 7c0: e3500000 cmp r0, #0 7c4: ca000001 bgt 7d0 <gets+0x70> 7c8: eaffffff b 7cc <gets+0x6c> 7cc: ea00000f b 810 <gets+0xb0> 7d0: e5dd000f ldrb r0, [sp, #15] 7d4: e51b1004 ldr r1, [fp, #-4] 7d8: e51b200c ldr r2, [fp, #-12] 7dc: e2823001 add r3, r2, #1 7e0: e50b300c str r3, [fp, #-12] 7e4: e7c10002 strb r0, [r1, r2] 7e8: e5dd000f ldrb r0, [sp, #15] 7ec: e350000a cmp r0, #10 7f0: 0a000004 beq 808 <gets+0xa8> 7f4: eaffffff b 7f8 <gets+0x98> 7f8: e5dd000f ldrb r0, [sp, #15] 7fc: e350000d cmp r0, #13 800: 1a000001 bne 80c <gets+0xac> 804: eaffffff b 808 <gets+0xa8> 808: ea000000 b 810 <gets+0xb0> 80c: eaffffdf b 790 <gets+0x30> 810: e51b0004 ldr r0, [fp, #-4] 814: e51b100c ldr r1, [fp, #-12] 818: e3a02000 mov r2, #0 81c: e7c02001 strb r2, [r0, r1] 820: e51b0004 ldr r0, [fp, #-4] 824: e1a0d00b mov sp, fp 828: e8bd8800 pop {fp, pc} 0000082c <stat>: 82c: e92d4800 push {fp, lr} 830: e1a0b00d mov fp, sp 834: e24dd020 sub sp, sp, #32 838: e1a02001 mov r2, r1 83c: e1a03000 mov r3, r0 840: e50b0008 str r0, [fp, #-8] 844: e50b100c str r1, [fp, #-12] 848: e51b0008 ldr r0, [fp, #-8] 84c: e3a01000 mov r1, #0 850: e58d2008 str r2, [sp, #8] 854: e58d3004 str r3, [sp, #4] 858: eb0000af bl b1c <open> 85c: e58d0010 str r0, [sp, #16] 860: e59d0010 ldr r0, [sp, #16] 864: e3500000 cmp r0, #0 868: aa000003 bge 87c <stat+0x50> 86c: eaffffff b 870 <stat+0x44> 870: e3e00000 mvn r0, #0 874: e50b0004 str r0, [fp, #-4] 878: ea000009 b 8a4 <stat+0x78> 87c: e59d0010 ldr r0, [sp, #16] 880: e51b100c ldr r1, [fp, #-12] 884: eb0000bf bl b88 <fstat> 888: e58d000c str r0, [sp, #12] 88c: e59d0010 ldr r0, [sp, #16] 890: eb000086 bl ab0 <close> 894: e59d100c ldr r1, [sp, #12] 898: e50b1004 str r1, [fp, #-4] 89c: e58d0000 str r0, [sp] 8a0: eaffffff b 8a4 <stat+0x78> 8a4: e51b0004 ldr r0, [fp, #-4] 8a8: e1a0d00b mov sp, fp 8ac: e8bd8800 pop {fp, pc} 000008b0 <atoi>: 8b0: e24dd010 sub sp, sp, #16 8b4: e1a01000 mov r1, r0 8b8: e58d000c str r0, [sp, #12] 8bc: e3a00000 mov r0, #0 8c0: e58d0008 str r0, [sp, #8] 8c4: e58d1004 str r1, [sp, #4] 8c8: eaffffff b 8cc <atoi+0x1c> 8cc: e59d000c ldr r0, [sp, #12] 8d0: e5d00000 ldrb r0, [r0] 8d4: e3a01000 mov r1, #0 8d8: e3500030 cmp r0, #48 ; 0x30 8dc: e58d1000 str r1, [sp] 8e0: ba000007 blt 904 <atoi+0x54> 8e4: eaffffff b 8e8 <atoi+0x38> 8e8: e59d000c ldr r0, [sp, #12] 8ec: e5d00000 ldrb r0, [r0] 8f0: e3a01000 mov r1, #0 8f4: e350003a cmp r0, #58 ; 0x3a 8f8: b3a01001 movlt r1, #1 8fc: e58d1000 str r1, [sp] 900: eaffffff b 904 <atoi+0x54> 904: e59d0000 ldr r0, [sp] 908: e3100001 tst r0, #1 90c: 0a00000a beq 93c <atoi+0x8c> 910: eaffffff b 914 <atoi+0x64> 914: e59d0008 ldr r0, [sp, #8] 918: e0800100 add r0, r0, r0, lsl #2 91c: e59d100c ldr r1, [sp, #12] 920: e2812001 add r2, r1, #1 924: e58d200c str r2, [sp, #12] 928: e5d11000 ldrb r1, [r1] 92c: e0810080 add r0, r1, r0, lsl #1 930: e2400030 sub r0, r0, #48 ; 0x30 934: e58d0008 str r0, [sp, #8] 938: eaffffe3 b 8cc <atoi+0x1c> 93c: e59d0008 ldr r0, [sp, #8] 940: e28dd010 add sp, sp, #16 944: e12fff1e bx lr 00000948 <memmove>: 948: e92d4800 push {fp, lr} 94c: e1a0b00d mov fp, sp 950: e24dd020 sub sp, sp, #32 954: e1a03002 mov r3, r2 958: e1a0c001 mov ip, r1 95c: e1a0e000 mov lr, r0 960: e50b0004 str r0, [fp, #-4] 964: e50b1008 str r1, [fp, #-8] 968: e50b200c str r2, [fp, #-12] 96c: e51b0004 ldr r0, [fp, #-4] 970: e58d0010 str r0, [sp, #16] 974: e51b0008 ldr r0, [fp, #-8] 978: e58d000c str r0, [sp, #12] 97c: e58d3008 str r3, [sp, #8] 980: e58dc004 str ip, [sp, #4] 984: e58de000 str lr, [sp] 988: eaffffff b 98c <memmove+0x44> 98c: e51b000c ldr r0, [fp, #-12] 990: e2401001 sub r1, r0, #1 994: e50b100c str r1, [fp, #-12] 998: e3500001 cmp r0, #1 99c: ba000009 blt 9c8 <memmove+0x80> 9a0: eaffffff b 9a4 <memmove+0x5c> 9a4: e59d000c ldr r0, [sp, #12] 9a8: e2801001 add r1, r0, #1 9ac: e58d100c str r1, [sp, #12] 9b0: e5d00000 ldrb r0, [r0] 9b4: e59d1010 ldr r1, [sp, #16] 9b8: e2812001 add r2, r1, #1 9bc: e58d2010 str r2, [sp, #16] 9c0: e5c10000 strb r0, [r1] 9c4: eafffff0 b 98c <memmove+0x44> 9c8: e51b0004 ldr r0, [fp, #-4] 9cc: e1a0d00b mov sp, fp 9d0: e8bd8800 pop {fp, pc} 000009d4 <raise>: return vdst; } void raise() {} 9d4: e12fff1e bx lr 000009d8 <fork>: 9d8: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 9dc: e1a04003 mov r4, r3 9e0: e1a03002 mov r3, r2 9e4: e1a02001 mov r2, r1 9e8: e1a01000 mov r1, r0 9ec: e3a00001 mov r0, #1 9f0: ef000000 svc 0x00000000 9f4: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 9f8: e12fff1e bx lr 000009fc <exit>: 9fc: e52d4004 push {r4} ; (str r4, [sp, #-4]!) a00: e1a04003 mov r4, r3 a04: e1a03002 mov r3, r2 a08: e1a02001 mov r2, r1 a0c: e1a01000 mov r1, r0 a10: e3a00002 mov r0, #2 a14: ef000000 svc 0x00000000 a18: e49d4004 pop {r4} ; (ldr r4, [sp], #4) a1c: e12fff1e bx lr 00000a20 <wait>: a20: e52d4004 push {r4} ; (str r4, [sp, #-4]!) a24: e1a04003 mov r4, r3 a28: e1a03002 mov r3, r2 a2c: e1a02001 mov r2, r1 a30: e1a01000 mov r1, r0 a34: e3a00003 mov r0, #3 a38: ef000000 svc 0x00000000 a3c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) a40: e12fff1e bx lr 00000a44 <pipe>: a44: e52d4004 push {r4} ; (str r4, [sp, #-4]!) a48: e1a04003 mov r4, r3 a4c: e1a03002 mov r3, r2 a50: e1a02001 mov r2, r1 a54: e1a01000 mov r1, r0 a58: e3a00004 mov r0, #4 a5c: ef000000 svc 0x00000000 a60: e49d4004 pop {r4} ; (ldr r4, [sp], #4) a64: e12fff1e bx lr 00000a68 <read>: a68: e52d4004 push {r4} ; (str r4, [sp, #-4]!) a6c: e1a04003 mov r4, r3 a70: e1a03002 mov r3, r2 a74: e1a02001 mov r2, r1 a78: e1a01000 mov r1, r0 a7c: e3a00005 mov r0, #5 a80: ef000000 svc 0x00000000 a84: e49d4004 pop {r4} ; (ldr r4, [sp], #4) a88: e12fff1e bx lr 00000a8c <write>: a8c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) a90: e1a04003 mov r4, r3 a94: e1a03002 mov r3, r2 a98: e1a02001 mov r2, r1 a9c: e1a01000 mov r1, r0 aa0: e3a00010 mov r0, #16 aa4: ef000000 svc 0x00000000 aa8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) aac: e12fff1e bx lr 00000ab0 <close>: ab0: e52d4004 push {r4} ; (str r4, [sp, #-4]!) ab4: e1a04003 mov r4, r3 ab8: e1a03002 mov r3, r2 abc: e1a02001 mov r2, r1 ac0: e1a01000 mov r1, r0 ac4: e3a00015 mov r0, #21 ac8: ef000000 svc 0x00000000 acc: e49d4004 pop {r4} ; (ldr r4, [sp], #4) ad0: e12fff1e bx lr 00000ad4 <kill>: ad4: e52d4004 push {r4} ; (str r4, [sp, #-4]!) ad8: e1a04003 mov r4, r3 adc: e1a03002 mov r3, r2 ae0: e1a02001 mov r2, r1 ae4: e1a01000 mov r1, r0 ae8: e3a00006 mov r0, #6 aec: ef000000 svc 0x00000000 af0: e49d4004 pop {r4} ; (ldr r4, [sp], #4) af4: e12fff1e bx lr 00000af8 <exec>: af8: e52d4004 push {r4} ; (str r4, [sp, #-4]!) afc: e1a04003 mov r4, r3 b00: e1a03002 mov r3, r2 b04: e1a02001 mov r2, r1 b08: e1a01000 mov r1, r0 b0c: e3a00007 mov r0, #7 b10: ef000000 svc 0x00000000 b14: e49d4004 pop {r4} ; (ldr r4, [sp], #4) b18: e12fff1e bx lr 00000b1c <open>: b1c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) b20: e1a04003 mov r4, r3 b24: e1a03002 mov r3, r2 b28: e1a02001 mov r2, r1 b2c: e1a01000 mov r1, r0 b30: e3a0000f mov r0, #15 b34: ef000000 svc 0x00000000 b38: e49d4004 pop {r4} ; (ldr r4, [sp], #4) b3c: e12fff1e bx lr 00000b40 <mknod>: b40: e52d4004 push {r4} ; (str r4, [sp, #-4]!) b44: e1a04003 mov r4, r3 b48: e1a03002 mov r3, r2 b4c: e1a02001 mov r2, r1 b50: e1a01000 mov r1, r0 b54: e3a00011 mov r0, #17 b58: ef000000 svc 0x00000000 b5c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) b60: e12fff1e bx lr 00000b64 <unlink>: b64: e52d4004 push {r4} ; (str r4, [sp, #-4]!) b68: e1a04003 mov r4, r3 b6c: e1a03002 mov r3, r2 b70: e1a02001 mov r2, r1 b74: e1a01000 mov r1, r0 b78: e3a00012 mov r0, #18 b7c: ef000000 svc 0x00000000 b80: e49d4004 pop {r4} ; (ldr r4, [sp], #4) b84: e12fff1e bx lr 00000b88 <fstat>: b88: e52d4004 push {r4} ; (str r4, [sp, #-4]!) b8c: e1a04003 mov r4, r3 b90: e1a03002 mov r3, r2 b94: e1a02001 mov r2, r1 b98: e1a01000 mov r1, r0 b9c: e3a00008 mov r0, #8 ba0: ef000000 svc 0x00000000 ba4: e49d4004 pop {r4} ; (ldr r4, [sp], #4) ba8: e12fff1e bx lr 00000bac <link>: bac: e52d4004 push {r4} ; (str r4, [sp, #-4]!) bb0: e1a04003 mov r4, r3 bb4: e1a03002 mov r3, r2 bb8: e1a02001 mov r2, r1 bbc: e1a01000 mov r1, r0 bc0: e3a00013 mov r0, #19 bc4: ef000000 svc 0x00000000 bc8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) bcc: e12fff1e bx lr 00000bd0 <mkdir>: bd0: e52d4004 push {r4} ; (str r4, [sp, #-4]!) bd4: e1a04003 mov r4, r3 bd8: e1a03002 mov r3, r2 bdc: e1a02001 mov r2, r1 be0: e1a01000 mov r1, r0 be4: e3a00014 mov r0, #20 be8: ef000000 svc 0x00000000 bec: e49d4004 pop {r4} ; (ldr r4, [sp], #4) bf0: e12fff1e bx lr 00000bf4 <chdir>: bf4: e52d4004 push {r4} ; (str r4, [sp, #-4]!) bf8: e1a04003 mov r4, r3 bfc: e1a03002 mov r3, r2 c00: e1a02001 mov r2, r1 c04: e1a01000 mov r1, r0 c08: e3a00009 mov r0, #9 c0c: ef000000 svc 0x00000000 c10: e49d4004 pop {r4} ; (ldr r4, [sp], #4) c14: e12fff1e bx lr 00000c18 <dup>: c18: e52d4004 push {r4} ; (str r4, [sp, #-4]!) c1c: e1a04003 mov r4, r3 c20: e1a03002 mov r3, r2 c24: e1a02001 mov r2, r1 c28: e1a01000 mov r1, r0 c2c: e3a0000a mov r0, #10 c30: ef000000 svc 0x00000000 c34: e49d4004 pop {r4} ; (ldr r4, [sp], #4) c38: e12fff1e bx lr 00000c3c <getpid>: c3c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) c40: e1a04003 mov r4, r3 c44: e1a03002 mov r3, r2 c48: e1a02001 mov r2, r1 c4c: e1a01000 mov r1, r0 c50: e3a0000b mov r0, #11 c54: ef000000 svc 0x00000000 c58: e49d4004 pop {r4} ; (ldr r4, [sp], #4) c5c: e12fff1e bx lr 00000c60 <sbrk>: c60: e52d4004 push {r4} ; (str r4, [sp, #-4]!) c64: e1a04003 mov r4, r3 c68: e1a03002 mov r3, r2 c6c: e1a02001 mov r2, r1 c70: e1a01000 mov r1, r0 c74: e3a0000c mov r0, #12 c78: ef000000 svc 0x00000000 c7c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) c80: e12fff1e bx lr 00000c84 <sleep>: c84: e52d4004 push {r4} ; (str r4, [sp, #-4]!) c88: e1a04003 mov r4, r3 c8c: e1a03002 mov r3, r2 c90: e1a02001 mov r2, r1 c94: e1a01000 mov r1, r0 c98: e3a0000d mov r0, #13 c9c: ef000000 svc 0x00000000 ca0: e49d4004 pop {r4} ; (ldr r4, [sp], #4) ca4: e12fff1e bx lr 00000ca8 <uptime>: ca8: e52d4004 push {r4} ; (str r4, [sp, #-4]!) cac: e1a04003 mov r4, r3 cb0: e1a03002 mov r3, r2 cb4: e1a02001 mov r2, r1 cb8: e1a01000 mov r1, r0 cbc: e3a0000e mov r0, #14 cc0: ef000000 svc 0x00000000 cc4: e49d4004 pop {r4} ; (ldr r4, [sp], #4) cc8: e12fff1e bx lr 00000ccc <printf>: } // Print to the given fd. Only understands %d, %x, %p, %s. void printf(int fd, char *fmt, ...) { ccc: e92d4800 push {fp, lr} cd0: e1a0b00d mov fp, sp cd4: e24dd028 sub sp, sp, #40 ; 0x28 cd8: e1a02001 mov r2, r1 cdc: e1a03000 mov r3, r0 ce0: e50b0004 str r0, [fp, #-4] ce4: e50b1008 str r1, [fp, #-8] ce8: e3a00000 mov r0, #0 cec: e58d0010 str r0, [sp, #16] cf0: e24b1008 sub r1, fp, #8 cf4: e2811004 add r1, r1, #4 cf8: e58d100c str r1, [sp, #12] cfc: e58d0014 str r0, [sp, #20] d00: e58d2008 str r2, [sp, #8] d04: e58d3004 str r3, [sp, #4] d08: eaffffff b d0c <printf+0x40> d0c: e51b0008 ldr r0, [fp, #-8] d10: e59d1014 ldr r1, [sp, #20] d14: e7d00001 ldrb r0, [r0, r1] d18: e3500000 cmp r0, #0 d1c: 0a00007e beq f1c <printf+0x250> d20: eaffffff b d24 <printf+0x58> d24: e51b0008 ldr r0, [fp, #-8] d28: e59d1014 ldr r1, [sp, #20] d2c: e7d00001 ldrb r0, [r0, r1] d30: e50b0010 str r0, [fp, #-16] d34: e59d0010 ldr r0, [sp, #16] d38: e3500000 cmp r0, #0 d3c: 1a00000c bne d74 <printf+0xa8> d40: eaffffff b d44 <printf+0x78> d44: e51b0010 ldr r0, [fp, #-16] d48: e3500025 cmp r0, #37 ; 0x25 d4c: 1a000003 bne d60 <printf+0x94> d50: eaffffff b d54 <printf+0x88> d54: e3a00025 mov r0, #37 ; 0x25 d58: e58d0010 str r0, [sp, #16] d5c: ea000003 b d70 <printf+0xa4> d60: e51b0004 ldr r0, [fp, #-4] d64: e55b1010 ldrb r1, [fp, #-16] d68: eb00006e bl f28 <putc> d6c: eaffffff b d70 <printf+0xa4> d70: ea000064 b f08 <printf+0x23c> d74: e59d0010 ldr r0, [sp, #16] d78: e3500025 cmp r0, #37 ; 0x25 d7c: 1a000060 bne f04 <printf+0x238> d80: eaffffff b d84 <printf+0xb8> d84: e51b0010 ldr r0, [fp, #-16] d88: e3500064 cmp r0, #100 ; 0x64 d8c: 1a00000a bne dbc <printf+0xf0> d90: eaffffff b d94 <printf+0xc8> d94: e51b0004 ldr r0, [fp, #-4] d98: e59d100c ldr r1, [sp, #12] d9c: e5911000 ldr r1, [r1] da0: e3a0200a mov r2, #10 da4: e3a03001 mov r3, #1 da8: eb00006f bl f6c <printint> dac: e59d000c ldr r0, [sp, #12] db0: e2800004 add r0, r0, #4 db4: e58d000c str r0, [sp, #12] db8: ea00004e b ef8 <printf+0x22c> dbc: e51b0010 ldr r0, [fp, #-16] dc0: e3500078 cmp r0, #120 ; 0x78 dc4: 0a000004 beq ddc <printf+0x110> dc8: eaffffff b dcc <printf+0x100> dcc: e51b0010 ldr r0, [fp, #-16] dd0: e3500070 cmp r0, #112 ; 0x70 dd4: 1a00000a bne e04 <printf+0x138> dd8: eaffffff b ddc <printf+0x110> ddc: e51b0004 ldr r0, [fp, #-4] de0: e59d100c ldr r1, [sp, #12] de4: e5911000 ldr r1, [r1] de8: e3a02010 mov r2, #16 dec: e3a03000 mov r3, #0 df0: eb00005d bl f6c <printint> df4: e59d000c ldr r0, [sp, #12] df8: e2800004 add r0, r0, #4 dfc: e58d000c str r0, [sp, #12] e00: ea00003b b ef4 <printf+0x228> e04: e51b0010 ldr r0, [fp, #-16] e08: e3500073 cmp r0, #115 ; 0x73 e0c: 1a00001a bne e7c <printf+0x1b0> e10: eaffffff b e14 <printf+0x148> e14: e59d000c ldr r0, [sp, #12] e18: e4901004 ldr r1, [r0], #4 e1c: e50b100c str r1, [fp, #-12] e20: e58d000c str r0, [sp, #12] e24: e51b000c ldr r0, [fp, #-12] e28: e3500000 cmp r0, #0 e2c: 1a000003 bne e40 <printf+0x174> e30: eaffffff b e34 <printf+0x168> e34: e59f00e8 ldr r0, [pc, #232] ; f24 <printf+0x258> e38: e50b000c str r0, [fp, #-12] e3c: eaffffff b e40 <printf+0x174> e40: eaffffff b e44 <printf+0x178> e44: e51b000c ldr r0, [fp, #-12] e48: e5d00000 ldrb r0, [r0] e4c: e3500000 cmp r0, #0 e50: 0a000008 beq e78 <printf+0x1ac> e54: eaffffff b e58 <printf+0x18c> e58: e51b0004 ldr r0, [fp, #-4] e5c: e51b100c ldr r1, [fp, #-12] e60: e5d11000 ldrb r1, [r1] e64: eb00002f bl f28 <putc> e68: e51b000c ldr r0, [fp, #-12] e6c: e2800001 add r0, r0, #1 e70: e50b000c str r0, [fp, #-12] e74: eafffff2 b e44 <printf+0x178> e78: ea00001c b ef0 <printf+0x224> e7c: e51b0010 ldr r0, [fp, #-16] e80: e3500063 cmp r0, #99 ; 0x63 e84: 1a000008 bne eac <printf+0x1e0> e88: eaffffff b e8c <printf+0x1c0> e8c: e51b0004 ldr r0, [fp, #-4] e90: e59d100c ldr r1, [sp, #12] e94: e5d11000 ldrb r1, [r1] e98: eb000022 bl f28 <putc> e9c: e59d000c ldr r0, [sp, #12] ea0: e2800004 add r0, r0, #4 ea4: e58d000c str r0, [sp, #12] ea8: ea00000f b eec <printf+0x220> eac: e51b0010 ldr r0, [fp, #-16] eb0: e3500025 cmp r0, #37 ; 0x25 eb4: 1a000004 bne ecc <printf+0x200> eb8: eaffffff b ebc <printf+0x1f0> ebc: e51b0004 ldr r0, [fp, #-4] ec0: e55b1010 ldrb r1, [fp, #-16] ec4: eb000017 bl f28 <putc> ec8: ea000006 b ee8 <printf+0x21c> ecc: e51b0004 ldr r0, [fp, #-4] ed0: e3a01025 mov r1, #37 ; 0x25 ed4: eb000013 bl f28 <putc> ed8: e51b0004 ldr r0, [fp, #-4] edc: e55b1010 ldrb r1, [fp, #-16] ee0: eb000010 bl f28 <putc> ee4: eaffffff b ee8 <printf+0x21c> ee8: eaffffff b eec <printf+0x220> eec: eaffffff b ef0 <printf+0x224> ef0: eaffffff b ef4 <printf+0x228> ef4: eaffffff b ef8 <printf+0x22c> ef8: e3a00000 mov r0, #0 efc: e58d0010 str r0, [sp, #16] f00: eaffffff b f04 <printf+0x238> f04: eaffffff b f08 <printf+0x23c> f08: eaffffff b f0c <printf+0x240> f0c: e59d0014 ldr r0, [sp, #20] f10: e2800001 add r0, r0, #1 f14: e58d0014 str r0, [sp, #20] f18: eaffff7b b d0c <printf+0x40> f1c: e1a0d00b mov sp, fp f20: e8bd8800 pop {fp, pc} f24: 000015de .word 0x000015de 00000f28 <putc>: { f28: e92d4800 push {fp, lr} f2c: e1a0b00d mov fp, sp f30: e24dd018 sub sp, sp, #24 f34: e1a02001 mov r2, r1 f38: e1a03000 mov r3, r0 f3c: e50b0004 str r0, [fp, #-4] f40: e54b1005 strb r1, [fp, #-5] write(fd, &c, 1); f44: e51b0004 ldr r0, [fp, #-4] f48: e24b1005 sub r1, fp, #5 f4c: e3a0c001 mov ip, #1 f50: e58d200c str r2, [sp, #12] f54: e1a0200c mov r2, ip f58: e58d3008 str r3, [sp, #8] f5c: ebfffeca bl a8c <write> } f60: e58d0004 str r0, [sp, #4] f64: e1a0d00b mov sp, fp f68: e8bd8800 pop {fp, pc} 00000f6c <printint>: { f6c: e92d4830 push {r4, r5, fp, lr} f70: e28db008 add fp, sp, #8 f74: e24dd040 sub sp, sp, #64 ; 0x40 f78: e1a0c003 mov ip, r3 f7c: e1a0e002 mov lr, r2 f80: e1a04001 mov r4, r1 f84: e1a05000 mov r5, r0 f88: e50b000c str r0, [fp, #-12] f8c: e50b1010 str r1, [fp, #-16] f90: e50b2014 str r2, [fp, #-20] ; 0xffffffec f94: e50b3018 str r3, [fp, #-24] ; 0xffffffe8 f98: e3a00000 mov r0, #0 f9c: e58d0018 str r0, [sp, #24] fa0: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8 fa4: e3500000 cmp r0, #0 fa8: e58dc010 str ip, [sp, #16] fac: e58de00c str lr, [sp, #12] fb0: e58d4008 str r4, [sp, #8] fb4: e58d5004 str r5, [sp, #4] fb8: 0a00000a beq fe8 <printint+0x7c> fbc: eaffffff b fc0 <printint+0x54> fc0: e51b0010 ldr r0, [fp, #-16] fc4: e3500000 cmp r0, #0 fc8: aa000006 bge fe8 <printint+0x7c> fcc: eaffffff b fd0 <printint+0x64> fd0: e3a00001 mov r0, #1 fd4: e58d0018 str r0, [sp, #24] fd8: e51b0010 ldr r0, [fp, #-16] fdc: e2600000 rsb r0, r0, #0 fe0: e58d0014 str r0, [sp, #20] fe4: ea000002 b ff4 <printint+0x88> fe8: e51b0010 ldr r0, [fp, #-16] fec: e58d0014 str r0, [sp, #20] ff0: eaffffff b ff4 <printint+0x88> ff4: e3a00000 mov r0, #0 ff8: e58d001c str r0, [sp, #28] ffc: eaffffff b 1000 <printint+0x94> 1000: e59d0014 ldr r0, [sp, #20] 1004: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 1008: eb000158 bl 1570 <__aeabi_uidivmod> 100c: e59fe0a0 ldr lr, [pc, #160] ; 10b4 <printint+0x148> 1010: e7de1001 ldrb r1, [lr, r1] 1014: e59de01c ldr lr, [sp, #28] 1018: e28e2001 add r2, lr, #1 101c: e58d201c str r2, [sp, #28] 1020: e28d2020 add r2, sp, #32 1024: e7c2100e strb r1, [r2, lr] 1028: e58d0000 str r0, [sp] 102c: eaffffff b 1030 <printint+0xc4> 1030: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 1034: e59d0014 ldr r0, [sp, #20] 1038: eb00010f bl 147c <__aeabi_uidiv> 103c: e58d0014 str r0, [sp, #20] 1040: e3500000 cmp r0, #0 1044: 1affffed bne 1000 <printint+0x94> 1048: eaffffff b 104c <printint+0xe0> 104c: e59d0018 ldr r0, [sp, #24] 1050: e3500000 cmp r0, #0 1054: 0a000007 beq 1078 <printint+0x10c> 1058: eaffffff b 105c <printint+0xf0> 105c: e59d001c ldr r0, [sp, #28] 1060: e2801001 add r1, r0, #1 1064: e58d101c str r1, [sp, #28] 1068: e28d1020 add r1, sp, #32 106c: e3a0202d mov r2, #45 ; 0x2d 1070: e7c12000 strb r2, [r1, r0] 1074: eaffffff b 1078 <printint+0x10c> 1078: eaffffff b 107c <printint+0x110> 107c: e59d001c ldr r0, [sp, #28] 1080: e2400001 sub r0, r0, #1 1084: e58d001c str r0, [sp, #28] 1088: e3500000 cmp r0, #0 108c: ba000006 blt 10ac <printint+0x140> 1090: eaffffff b 1094 <printint+0x128> 1094: e51b000c ldr r0, [fp, #-12] 1098: e59d101c ldr r1, [sp, #28] 109c: e28d2020 add r2, sp, #32 10a0: e7d21001 ldrb r1, [r2, r1] 10a4: ebffff9f bl f28 <putc> 10a8: eafffff3 b 107c <printint+0x110> 10ac: e24bd008 sub sp, fp, #8 10b0: e8bd8830 pop {r4, r5, fp, pc} 10b4: 000015f0 .word 0x000015f0 000010b8 <free>: static Header base; static Header *freep; void free(void *ap) { 10b8: e24dd014 sub sp, sp, #20 10bc: e1a01000 mov r1, r0 10c0: e58d0010 str r0, [sp, #16] 10c4: e59d0010 ldr r0, [sp, #16] 10c8: e2400008 sub r0, r0, #8 10cc: e58d000c str r0, [sp, #12] 10d0: e59f0188 ldr r0, [pc, #392] ; 1260 <free+0x1a8> 10d4: e5900000 ldr r0, [r0] 10d8: e58d0008 str r0, [sp, #8] 10dc: e58d1004 str r1, [sp, #4] 10e0: eaffffff b 10e4 <free+0x2c> 10e4: e59d000c ldr r0, [sp, #12] 10e8: e59d1008 ldr r1, [sp, #8] 10ec: e3a02000 mov r2, #0 10f0: e1500001 cmp r0, r1 10f4: e58d2000 str r2, [sp] 10f8: 9a000008 bls 1120 <free+0x68> 10fc: eaffffff b 1100 <free+0x48> 1100: e59d000c ldr r0, [sp, #12] 1104: e59d1008 ldr r1, [sp, #8] 1108: e5911000 ldr r1, [r1] 110c: e3a02000 mov r2, #0 1110: e1500001 cmp r0, r1 1114: 33a02001 movcc r2, #1 1118: e58d2000 str r2, [sp] 111c: eaffffff b 1120 <free+0x68> 1120: e59d0000 ldr r0, [sp] 1124: e1e00000 mvn r0, r0 1128: e3100001 tst r0, #1 112c: 0a000016 beq 118c <free+0xd4> 1130: eaffffff b 1134 <free+0x7c> 1134: e59d0008 ldr r0, [sp, #8] 1138: e5901000 ldr r1, [r0] 113c: e1500001 cmp r0, r1 1140: 3a00000c bcc 1178 <free+0xc0> 1144: eaffffff b 1148 <free+0x90> 1148: e59d000c ldr r0, [sp, #12] 114c: e59d1008 ldr r1, [sp, #8] 1150: e1500001 cmp r0, r1 1154: 8a000006 bhi 1174 <free+0xbc> 1158: eaffffff b 115c <free+0xa4> 115c: e59d000c ldr r0, [sp, #12] 1160: e59d1008 ldr r1, [sp, #8] 1164: e5911000 ldr r1, [r1] 1168: e1500001 cmp r0, r1 116c: 2a000001 bcs 1178 <free+0xc0> 1170: eaffffff b 1174 <free+0xbc> 1174: ea000004 b 118c <free+0xd4> 1178: eaffffff b 117c <free+0xc4> 117c: e59d0008 ldr r0, [sp, #8] 1180: e5900000 ldr r0, [r0] 1184: e58d0008 str r0, [sp, #8] 1188: eaffffd5 b 10e4 <free+0x2c> 118c: e59d000c ldr r0, [sp, #12] 1190: e5901004 ldr r1, [r0, #4] 1194: e0800181 add r0, r0, r1, lsl #3 1198: e59d1008 ldr r1, [sp, #8] 119c: e5911000 ldr r1, [r1] 11a0: e1500001 cmp r0, r1 11a4: 1a00000d bne 11e0 <free+0x128> 11a8: eaffffff b 11ac <free+0xf4> 11ac: e59d0008 ldr r0, [sp, #8] 11b0: e5900000 ldr r0, [r0] 11b4: e5900004 ldr r0, [r0, #4] 11b8: e59d100c ldr r1, [sp, #12] 11bc: e5912004 ldr r2, [r1, #4] 11c0: e0820000 add r0, r2, r0 11c4: e5810004 str r0, [r1, #4] 11c8: e59d0008 ldr r0, [sp, #8] 11cc: e5900000 ldr r0, [r0] 11d0: e5900000 ldr r0, [r0] 11d4: e59d100c ldr r1, [sp, #12] 11d8: e5810000 str r0, [r1] 11dc: ea000004 b 11f4 <free+0x13c> 11e0: e59d0008 ldr r0, [sp, #8] 11e4: e5900000 ldr r0, [r0] 11e8: e59d100c ldr r1, [sp, #12] 11ec: e5810000 str r0, [r1] 11f0: eaffffff b 11f4 <free+0x13c> 11f4: e59d0008 ldr r0, [sp, #8] 11f8: e5901004 ldr r1, [r0, #4] 11fc: e0800181 add r0, r0, r1, lsl #3 1200: e59d100c ldr r1, [sp, #12] 1204: e1500001 cmp r0, r1 1208: 1a00000b bne 123c <free+0x184> 120c: eaffffff b 1210 <free+0x158> 1210: e59d000c ldr r0, [sp, #12] 1214: e5900004 ldr r0, [r0, #4] 1218: e59d1008 ldr r1, [sp, #8] 121c: e5912004 ldr r2, [r1, #4] 1220: e0820000 add r0, r2, r0 1224: e5810004 str r0, [r1, #4] 1228: e59d000c ldr r0, [sp, #12] 122c: e5900000 ldr r0, [r0] 1230: e59d1008 ldr r1, [sp, #8] 1234: e5810000 str r0, [r1] 1238: ea000003 b 124c <free+0x194> 123c: e59d000c ldr r0, [sp, #12] 1240: e59d1008 ldr r1, [sp, #8] 1244: e5810000 str r0, [r1] 1248: eaffffff b 124c <free+0x194> 124c: e59d0008 ldr r0, [sp, #8] 1250: e59f1008 ldr r1, [pc, #8] ; 1260 <free+0x1a8> 1254: e5810000 str r0, [r1] 1258: e28dd014 add sp, sp, #20 125c: e12fff1e bx lr 1260: 00001614 .word 0x00001614 00001264 <malloc>: 1264: e92d4800 push {fp, lr} 1268: e1a0b00d mov fp, sp 126c: e24dd018 sub sp, sp, #24 1270: e1a01000 mov r1, r0 1274: e50b0008 str r0, [fp, #-8] 1278: e51b0008 ldr r0, [fp, #-8] 127c: e2800007 add r0, r0, #7 1280: e3a02001 mov r2, #1 1284: e08201a0 add r0, r2, r0, lsr #3 1288: e58d0004 str r0, [sp, #4] 128c: e59f013c ldr r0, [pc, #316] ; 13d0 <malloc+0x16c> 1290: e5900000 ldr r0, [r0] 1294: e58d0008 str r0, [sp, #8] 1298: e3500000 cmp r0, #0 129c: e58d1000 str r1, [sp] 12a0: 1a000008 bne 12c8 <malloc+0x64> 12a4: eaffffff b 12a8 <malloc+0x44> 12a8: e59f0124 ldr r0, [pc, #292] ; 13d4 <malloc+0x170> 12ac: e58d0008 str r0, [sp, #8] 12b0: e59f1118 ldr r1, [pc, #280] ; 13d0 <malloc+0x16c> 12b4: e5810000 str r0, [r1] 12b8: e5800000 str r0, [r0] 12bc: e3a01000 mov r1, #0 12c0: e5801004 str r1, [r0, #4] 12c4: eaffffff b 12c8 <malloc+0x64> 12c8: e59d0008 ldr r0, [sp, #8] 12cc: e5900000 ldr r0, [r0] 12d0: e58d000c str r0, [sp, #12] 12d4: eaffffff b 12d8 <malloc+0x74> 12d8: e59d000c ldr r0, [sp, #12] 12dc: e5900004 ldr r0, [r0, #4] 12e0: e59d1004 ldr r1, [sp, #4] 12e4: e1500001 cmp r0, r1 12e8: 3a00001f bcc 136c <malloc+0x108> 12ec: eaffffff b 12f0 <malloc+0x8c> 12f0: e59d000c ldr r0, [sp, #12] 12f4: e5900004 ldr r0, [r0, #4] 12f8: e59d1004 ldr r1, [sp, #4] 12fc: e1500001 cmp r0, r1 1300: 1a000005 bne 131c <malloc+0xb8> 1304: eaffffff b 1308 <malloc+0xa4> 1308: e59d000c ldr r0, [sp, #12] 130c: e5900000 ldr r0, [r0] 1310: e59d1008 ldr r1, [sp, #8] 1314: e5810000 str r0, [r1] 1318: ea00000c b 1350 <malloc+0xec> 131c: e59d0004 ldr r0, [sp, #4] 1320: e59d100c ldr r1, [sp, #12] 1324: e5912004 ldr r2, [r1, #4] 1328: e0420000 sub r0, r2, r0 132c: e5810004 str r0, [r1, #4] 1330: e59d000c ldr r0, [sp, #12] 1334: e5901004 ldr r1, [r0, #4] 1338: e0800181 add r0, r0, r1, lsl #3 133c: e58d000c str r0, [sp, #12] 1340: e59d0004 ldr r0, [sp, #4] 1344: e59d100c ldr r1, [sp, #12] 1348: e5810004 str r0, [r1, #4] 134c: eaffffff b 1350 <malloc+0xec> 1350: e59d0008 ldr r0, [sp, #8] 1354: e59f1074 ldr r1, [pc, #116] ; 13d0 <malloc+0x16c> 1358: e5810000 str r0, [r1] 135c: e59d000c ldr r0, [sp, #12] 1360: e2800008 add r0, r0, #8 1364: e50b0004 str r0, [fp, #-4] 1368: ea000015 b 13c4 <malloc+0x160> 136c: e59d000c ldr r0, [sp, #12] 1370: e59f1058 ldr r1, [pc, #88] ; 13d0 <malloc+0x16c> 1374: e5911000 ldr r1, [r1] 1378: e1500001 cmp r0, r1 137c: 1a00000a bne 13ac <malloc+0x148> 1380: eaffffff b 1384 <malloc+0x120> 1384: e59d0004 ldr r0, [sp, #4] 1388: eb000012 bl 13d8 <morecore> 138c: e58d000c str r0, [sp, #12] 1390: e3500000 cmp r0, #0 1394: 1a000003 bne 13a8 <malloc+0x144> 1398: eaffffff b 139c <malloc+0x138> 139c: e3a00000 mov r0, #0 13a0: e50b0004 str r0, [fp, #-4] 13a4: ea000006 b 13c4 <malloc+0x160> 13a8: eaffffff b 13ac <malloc+0x148> 13ac: eaffffff b 13b0 <malloc+0x14c> 13b0: e59d000c ldr r0, [sp, #12] 13b4: e58d0008 str r0, [sp, #8] 13b8: e5900000 ldr r0, [r0] 13bc: e58d000c str r0, [sp, #12] 13c0: eaffffc4 b 12d8 <malloc+0x74> 13c4: e51b0004 ldr r0, [fp, #-4] 13c8: e1a0d00b mov sp, fp 13cc: e8bd8800 pop {fp, pc} 13d0: 00001614 .word 0x00001614 13d4: 00001618 .word 0x00001618 000013d8 <morecore>: freep = p; } static Header* morecore(uint nu) { 13d8: e92d4800 push {fp, lr} 13dc: e1a0b00d mov fp, sp 13e0: e24dd018 sub sp, sp, #24 13e4: e1a01000 mov r1, r0 13e8: e50b0008 str r0, [fp, #-8] char *p; Header *hp; if(nu < 4096) 13ec: e51b0008 ldr r0, [fp, #-8] 13f0: e3a02000 mov r2, #0 13f4: e1520620 cmp r2, r0, lsr #12 13f8: e58d1004 str r1, [sp, #4] 13fc: 1a000003 bne 1410 <morecore+0x38> 1400: eaffffff b 1404 <morecore+0x2c> nu = 4096; 1404: e3a00a01 mov r0, #4096 ; 0x1000 1408: e50b0008 str r0, [fp, #-8] 140c: eaffffff b 1410 <morecore+0x38> p = sbrk(nu * sizeof(Header)); 1410: e51b0008 ldr r0, [fp, #-8] 1414: e1a00180 lsl r0, r0, #3 1418: ebfffe10 bl c60 <sbrk> 141c: e58d000c str r0, [sp, #12] if(p == (char*)-1) 1420: e59d000c ldr r0, [sp, #12] 1424: e3700001 cmn r0, #1 1428: 1a000003 bne 143c <morecore+0x64> 142c: eaffffff b 1430 <morecore+0x58> return 0; 1430: e3a00000 mov r0, #0 1434: e50b0004 str r0, [fp, #-4] 1438: ea00000b b 146c <morecore+0x94> hp = (Header*)p; 143c: e59d000c ldr r0, [sp, #12] 1440: e58d0008 str r0, [sp, #8] hp->s.size = nu; 1444: e51b0008 ldr r0, [fp, #-8] 1448: e59d1008 ldr r1, [sp, #8] 144c: e5810004 str r0, [r1, #4] free((void*)(hp + 1)); 1450: e59d0008 ldr r0, [sp, #8] 1454: e2800008 add r0, r0, #8 1458: ebffff16 bl 10b8 <free> return freep; 145c: e59f0014 ldr r0, [pc, #20] ; 1478 <morecore+0xa0> 1460: e5900000 ldr r0, [r0] 1464: e50b0004 str r0, [fp, #-4] 1468: eaffffff b 146c <morecore+0x94> } 146c: e51b0004 ldr r0, [fp, #-4] 1470: e1a0d00b mov sp, fp 1474: e8bd8800 pop {fp, pc} 1478: 00001614 .word 0x00001614 0000147c <__aeabi_uidiv>: 147c: e2512001 subs r2, r1, #1 1480: 012fff1e bxeq lr 1484: 3a000036 bcc 1564 <__aeabi_uidiv+0xe8> 1488: e1500001 cmp r0, r1 148c: 9a000022 bls 151c <__aeabi_uidiv+0xa0> 1490: e1110002 tst r1, r2 1494: 0a000023 beq 1528 <__aeabi_uidiv+0xac> 1498: e311020e tst r1, #-536870912 ; 0xe0000000 149c: 01a01181 lsleq r1, r1, #3 14a0: 03a03008 moveq r3, #8 14a4: 13a03001 movne r3, #1 14a8: e3510201 cmp r1, #268435456 ; 0x10000000 14ac: 31510000 cmpcc r1, r0 14b0: 31a01201 lslcc r1, r1, #4 14b4: 31a03203 lslcc r3, r3, #4 14b8: 3afffffa bcc 14a8 <__aeabi_uidiv+0x2c> 14bc: e3510102 cmp r1, #-2147483648 ; 0x80000000 14c0: 31510000 cmpcc r1, r0 14c4: 31a01081 lslcc r1, r1, #1 14c8: 31a03083 lslcc r3, r3, #1 14cc: 3afffffa bcc 14bc <__aeabi_uidiv+0x40> 14d0: e3a02000 mov r2, #0 14d4: e1500001 cmp r0, r1 14d8: 20400001 subcs r0, r0, r1 14dc: 21822003 orrcs r2, r2, r3 14e0: e15000a1 cmp r0, r1, lsr #1 14e4: 204000a1 subcs r0, r0, r1, lsr #1 14e8: 218220a3 orrcs r2, r2, r3, lsr #1 14ec: e1500121 cmp r0, r1, lsr #2 14f0: 20400121 subcs r0, r0, r1, lsr #2 14f4: 21822123 orrcs r2, r2, r3, lsr #2 14f8: e15001a1 cmp r0, r1, lsr #3 14fc: 204001a1 subcs r0, r0, r1, lsr #3 1500: 218221a3 orrcs r2, r2, r3, lsr #3 1504: e3500000 cmp r0, #0 1508: 11b03223 lsrsne r3, r3, #4 150c: 11a01221 lsrne r1, r1, #4 1510: 1affffef bne 14d4 <__aeabi_uidiv+0x58> 1514: e1a00002 mov r0, r2 1518: e12fff1e bx lr 151c: 03a00001 moveq r0, #1 1520: 13a00000 movne r0, #0 1524: e12fff1e bx lr 1528: e3510801 cmp r1, #65536 ; 0x10000 152c: 21a01821 lsrcs r1, r1, #16 1530: 23a02010 movcs r2, #16 1534: 33a02000 movcc r2, #0 1538: e3510c01 cmp r1, #256 ; 0x100 153c: 21a01421 lsrcs r1, r1, #8 1540: 22822008 addcs r2, r2, #8 1544: e3510010 cmp r1, #16 1548: 21a01221 lsrcs r1, r1, #4 154c: 22822004 addcs r2, r2, #4 1550: e3510004 cmp r1, #4 1554: 82822003 addhi r2, r2, #3 1558: 908220a1 addls r2, r2, r1, lsr #1 155c: e1a00230 lsr r0, r0, r2 1560: e12fff1e bx lr 1564: e3500000 cmp r0, #0 1568: 13e00000 mvnne r0, #0 156c: ea000007 b 1590 <__aeabi_idiv0> 00001570 <__aeabi_uidivmod>: 1570: e3510000 cmp r1, #0 1574: 0afffffa beq 1564 <__aeabi_uidiv+0xe8> 1578: e92d4003 push {r0, r1, lr} 157c: ebffffbe bl 147c <__aeabi_uidiv> 1580: e8bd4006 pop {r1, r2, lr} 1584: e0030092 mul r3, r2, r0 1588: e0411003 sub r1, r1, r3 158c: e12fff1e bx lr 00001590 <__aeabi_idiv0>: 1590: e12fff1e bx lr