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