Mercurial > hg > Members > tobaru > xv6-osx-rpi
view src/usr/sh.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
_sh: file format elf32-littlearm Disassembly of section .text: 00000000 <runcmd>: struct cmd *parsecmd(char*); // Execute cmd. Never returns. void runcmd(struct cmd *cmd) { 0: e92d4800 push {fp, lr} 4: e1a0b00d mov fp, sp 8: e24dd078 sub sp, sp, #120 ; 0x78 c: e1a01000 mov r1, r0 10: e50b0004 str r0, [fp, #-4] 14: e51b0004 ldr r0, [fp, #-4] 18: e3500000 cmp r0, #0 1c: e50b1024 str r1, [fp, #-36] ; 0xffffffdc 20: 1a000002 bne 30 <runcmd+0x30> 24: eaffffff b 28 <runcmd+0x28> 28: eb000645 bl 1944 <exit> 2c: e50b0028 str r0, [fp, #-40] ; 0xffffffd8 30: e51b0004 ldr r0, [fp, #-4] 34: e5900000 ldr r0, [r0] 38: e2400001 sub r0, r0, #1 3c: e3500004 cmp r0, #4 40: e50b002c str r0, [fp, #-44] ; 0xffffffd4 44: 8a000009 bhi 70 <runcmd+0x70> 48: e51b002c ldr r0, [fp, #-44] ; 0xffffffd4 4c: e1a01100 lsl r1, r0, #2 50: e28f2004 add r2, pc, #4 54: e7911002 ldr r1, [r1, r2] 58: e1a0f001 mov pc, r1 5c: 0000007c .word 0x0000007c 60: 000000d8 .word 0x000000d8 64: 00000184 .word 0x00000184 68: 00000140 .word 0x00000140 6c: 0000029c .word 0x0000029c 70: e59f0260 ldr r0, [pc, #608] ; 2d8 <runcmd+0x2d8> 74: eb000099 bl 2e0 <panic> 78: eaffffff b 7c <runcmd+0x7c> 7c: e51b0004 ldr r0, [fp, #-4] 80: e50b0014 str r0, [fp, #-20] ; 0xffffffec 84: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec 88: e5900004 ldr r0, [r0, #4] 8c: e3500000 cmp r0, #0 90: 1a000002 bne a0 <runcmd+0xa0> 94: eaffffff b 98 <runcmd+0x98> 98: eb000629 bl 1944 <exit> 9c: e50b0030 str r0, [fp, #-48] ; 0xffffffd0 a0: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec a4: e5b01004 ldr r1, [r0, #4]! a8: e50b0034 str r0, [fp, #-52] ; 0xffffffcc ac: e1a00001 mov r0, r1 b0: e51b1034 ldr r1, [fp, #-52] ; 0xffffffcc b4: eb000661 bl 1a40 <exec> b8: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec bc: e5912004 ldr r2, [r1, #4] c0: e59f1214 ldr r1, [pc, #532] ; 2dc <runcmd+0x2dc> c4: e3a0e002 mov lr, #2 c8: e50b0038 str r0, [fp, #-56] ; 0xffffffc8 cc: e1a0000e mov r0, lr d0: eb0006cf bl 1c14 <printf> d4: ea00007b b 2c8 <runcmd+0x2c8> d8: e51b0004 ldr r0, [fp, #-4] dc: e50b0020 str r0, [fp, #-32] ; 0xffffffe0 e0: e51b0020 ldr r0, [fp, #-32] ; 0xffffffe0 e4: e5900014 ldr r0, [r0, #20] e8: eb000642 bl 19f8 <close> ec: e51be020 ldr lr, [fp, #-32] ; 0xffffffe0 f0: e59e1008 ldr r1, [lr, #8] f4: e59ee010 ldr lr, [lr, #16] f8: e58d003c str r0, [sp, #60] ; 0x3c fc: e1a00001 mov r0, r1 100: e1a0100e mov r1, lr 104: eb000656 bl 1a64 <open> 108: e3500000 cmp r0, #0 10c: aa000007 bge 130 <runcmd+0x130> 110: eaffffff b 114 <runcmd+0x114> 114: e51b0020 ldr r0, [fp, #-32] ; 0xffffffe0 118: e5902008 ldr r2, [r0, #8] 11c: e59f11b0 ldr r1, [pc, #432] ; 2d4 <runcmd+0x2d4> 120: e3a00002 mov r0, #2 124: eb0006ba bl 1c14 <printf> 128: eb000605 bl 1944 <exit> 12c: e58d0038 str r0, [sp, #56] ; 0x38 130: e51b0020 ldr r0, [fp, #-32] ; 0xffffffe0 134: e5900004 ldr r0, [r0, #4] 138: ebffffb0 bl 0 <runcmd> 13c: ea000061 b 2c8 <runcmd+0x2c8> 140: e51b0004 ldr r0, [fp, #-4] 144: e50b0018 str r0, [fp, #-24] ; 0xffffffe8 148: eb000075 bl 324 <fork1> 14c: e3500000 cmp r0, #0 150: 1a000004 bne 168 <runcmd+0x168> 154: eaffffff b 158 <runcmd+0x158> 158: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8 15c: e5900004 ldr r0, [r0, #4] 160: ebffffa6 bl 0 <runcmd> 164: eaffffff b 168 <runcmd+0x168> 168: eb0005fe bl 1968 <wait> 16c: e51be018 ldr lr, [fp, #-24] ; 0xffffffe8 170: e59ee008 ldr lr, [lr, #8] 174: e58d0034 str r0, [sp, #52] ; 0x34 178: e1a0000e mov r0, lr 17c: ebffff9f bl 0 <runcmd> 180: ea000050 b 2c8 <runcmd+0x2c8> 184: e51b0004 ldr r0, [fp, #-4] 188: e50b001c str r0, [fp, #-28] ; 0xffffffe4 18c: e24b000c sub r0, fp, #12 190: eb0005fd bl 198c <pipe> 194: e3500000 cmp r0, #0 198: aa000003 bge 1ac <runcmd+0x1ac> 19c: eaffffff b 1a0 <runcmd+0x1a0> 1a0: e59f0128 ldr r0, [pc, #296] ; 2d0 <runcmd+0x2d0> 1a4: eb00004d bl 2e0 <panic> 1a8: eaffffff b 1ac <runcmd+0x1ac> 1ac: eb00005c bl 324 <fork1> 1b0: e3500000 cmp r0, #0 1b4: 1a000014 bne 20c <runcmd+0x20c> 1b8: eaffffff b 1bc <runcmd+0x1bc> 1bc: e3a00001 mov r0, #1 1c0: eb00060c bl 19f8 <close> 1c4: e51be008 ldr lr, [fp, #-8] 1c8: e58d0030 str r0, [sp, #48] ; 0x30 1cc: e1a0000e mov r0, lr 1d0: eb000662 bl 1b60 <dup> 1d4: e51be00c ldr lr, [fp, #-12] 1d8: e58d002c str r0, [sp, #44] ; 0x2c 1dc: e1a0000e mov r0, lr 1e0: eb000604 bl 19f8 <close> 1e4: e51be008 ldr lr, [fp, #-8] 1e8: e58d0028 str r0, [sp, #40] ; 0x28 1ec: e1a0000e mov r0, lr 1f0: eb000600 bl 19f8 <close> 1f4: e51be01c ldr lr, [fp, #-28] ; 0xffffffe4 1f8: e59ee004 ldr lr, [lr, #4] 1fc: e58d0024 str r0, [sp, #36] ; 0x24 200: e1a0000e mov r0, lr 204: ebffff7d bl 0 <runcmd> 208: eaffffff b 20c <runcmd+0x20c> 20c: eb000044 bl 324 <fork1> 210: e3500000 cmp r0, #0 214: 1a000014 bne 26c <runcmd+0x26c> 218: eaffffff b 21c <runcmd+0x21c> 21c: e3a00000 mov r0, #0 220: eb0005f4 bl 19f8 <close> 224: e51be00c ldr lr, [fp, #-12] 228: e58d0020 str r0, [sp, #32] 22c: e1a0000e mov r0, lr 230: eb00064a bl 1b60 <dup> 234: e51be00c ldr lr, [fp, #-12] 238: e58d001c str r0, [sp, #28] 23c: e1a0000e mov r0, lr 240: eb0005ec bl 19f8 <close> 244: e51be008 ldr lr, [fp, #-8] 248: e58d0018 str r0, [sp, #24] 24c: e1a0000e mov r0, lr 250: eb0005e8 bl 19f8 <close> 254: e51be01c ldr lr, [fp, #-28] ; 0xffffffe4 258: e59ee008 ldr lr, [lr, #8] 25c: e58d0014 str r0, [sp, #20] 260: e1a0000e mov r0, lr 264: ebffff65 bl 0 <runcmd> 268: eaffffff b 26c <runcmd+0x26c> 26c: e51b000c ldr r0, [fp, #-12] 270: eb0005e0 bl 19f8 <close> 274: e51be008 ldr lr, [fp, #-8] 278: e58d0010 str r0, [sp, #16] 27c: e1a0000e mov r0, lr 280: eb0005dc bl 19f8 <close> 284: e58d000c str r0, [sp, #12] 288: eb0005b6 bl 1968 <wait> 28c: e58d0008 str r0, [sp, #8] 290: eb0005b4 bl 1968 <wait> 294: e58d0004 str r0, [sp, #4] 298: ea00000a b 2c8 <runcmd+0x2c8> 29c: e51b0004 ldr r0, [fp, #-4] 2a0: e50b0010 str r0, [fp, #-16] 2a4: eb00001e bl 324 <fork1> 2a8: e3500000 cmp r0, #0 2ac: 1a000004 bne 2c4 <runcmd+0x2c4> 2b0: eaffffff b 2b4 <runcmd+0x2b4> 2b4: e51b0010 ldr r0, [fp, #-16] 2b8: e5900004 ldr r0, [r0, #4] 2bc: ebffff4f bl 0 <runcmd> 2c0: eaffffff b 2c4 <runcmd+0x2c4> 2c4: eaffffff b 2c8 <runcmd+0x2c8> 2c8: eb00059d bl 1944 <exit> 2cc: e58d0000 str r0, [sp] 2d0: 00002503 .word 0x00002503 2d4: 000024f3 .word 0x000024f3 2d8: 000024dc .word 0x000024dc 2dc: 000024e3 .word 0x000024e3 000002e0 <panic>: 2e0: e92d4800 push {fp, lr} 2e4: e1a0b00d mov fp, sp 2e8: e24dd010 sub sp, sp, #16 2ec: e1a01000 mov r1, r0 2f0: e50b0004 str r0, [fp, #-4] 2f4: e51b2004 ldr r2, [fp, #-4] 2f8: e59f0020 ldr r0, [pc, #32] ; 320 <panic+0x40> 2fc: e3a03002 mov r3, #2 300: e58d0008 str r0, [sp, #8] 304: e1a00003 mov r0, r3 308: e59d3008 ldr r3, [sp, #8] 30c: e58d1004 str r1, [sp, #4] 310: e1a01003 mov r1, r3 314: eb00063e bl 1c14 <printf> 318: eb000589 bl 1944 <exit> 31c: e58d0000 str r0, [sp] 320: 00002531 .word 0x00002531 00000324 <fork1>: 324: e92d4800 push {fp, lr} 328: e1a0b00d mov fp, sp 32c: e24dd008 sub sp, sp, #8 330: eb00057a bl 1920 <fork> 334: e58d0004 str r0, [sp, #4] 338: e59d0004 ldr r0, [sp, #4] 33c: e3700001 cmn r0, #1 340: 1a000003 bne 354 <fork1+0x30> 344: eaffffff b 348 <fork1+0x24> 348: e59f0010 ldr r0, [pc, #16] ; 360 <fork1+0x3c> 34c: ebffffe3 bl 2e0 <panic> 350: eaffffff b 354 <fork1+0x30> 354: e59d0004 ldr r0, [sp, #4] 358: e1a0d00b mov sp, fp 35c: e8bd8800 pop {fp, pc} 360: 00002521 .word 0x00002521 00000364 <getcmd>: 364: e92d4800 push {fp, lr} 368: e1a0b00d mov fp, sp 36c: e24dd020 sub sp, sp, #32 370: e1a02001 mov r2, r1 374: e1a03000 mov r3, r0 378: e50b0008 str r0, [fp, #-8] 37c: e50b100c str r1, [fp, #-12] 380: e59f1070 ldr r1, [pc, #112] ; 3f8 <getcmd+0x94> 384: e3a00002 mov r0, #2 388: e58d2010 str r2, [sp, #16] 38c: e58d300c str r3, [sp, #12] 390: eb00061f bl 1c14 <printf> 394: e51b0008 ldr r0, [fp, #-8] 398: e51b200c ldr r2, [fp, #-12] 39c: e3a01000 mov r1, #0 3a0: eb000446 bl 14c0 <memset> 3a4: e51b1008 ldr r1, [fp, #-8] 3a8: e51b200c ldr r2, [fp, #-12] 3ac: e58d0008 str r0, [sp, #8] 3b0: e1a00001 mov r0, r1 3b4: e1a01002 mov r1, r2 3b8: eb0004ba bl 16a8 <gets> 3bc: e51b1008 ldr r1, [fp, #-8] 3c0: e5d11000 ldrb r1, [r1] 3c4: e3510000 cmp r1, #0 3c8: e58d0004 str r0, [sp, #4] 3cc: 1a000003 bne 3e0 <getcmd+0x7c> 3d0: eaffffff b 3d4 <getcmd+0x70> 3d4: e3e00000 mvn r0, #0 3d8: e50b0004 str r0, [fp, #-4] 3dc: ea000002 b 3ec <getcmd+0x88> 3e0: e3a00000 mov r0, #0 3e4: e50b0004 str r0, [fp, #-4] 3e8: eaffffff b 3ec <getcmd+0x88> 3ec: e51b0004 ldr r0, [fp, #-4] 3f0: e1a0d00b mov sp, fp 3f4: e8bd8800 pop {fp, pc} 3f8: 00002508 .word 0x00002508 000003fc <main>: 3fc: e92d4800 push {fp, lr} 400: e1a0b00d mov fp, sp 404: e24dd018 sub sp, sp, #24 408: e3a00000 mov r0, #0 40c: e50b0004 str r0, [fp, #-4] 410: eaffffff b 414 <main+0x18> 414: e59f0110 ldr r0, [pc, #272] ; 52c <main+0x130> 418: e3a01002 mov r1, #2 41c: eb000590 bl 1a64 <open> 420: e50b0008 str r0, [fp, #-8] 424: e3500000 cmp r0, #0 428: ba000009 blt 454 <main+0x58> 42c: eaffffff b 430 <main+0x34> 430: e51b0008 ldr r0, [fp, #-8] 434: e3500003 cmp r0, #3 438: ba000004 blt 450 <main+0x54> 43c: eaffffff b 440 <main+0x44> 440: e51b0008 ldr r0, [fp, #-8] 444: eb00056b bl 19f8 <close> 448: e58d000c str r0, [sp, #12] 44c: ea000000 b 454 <main+0x58> 450: eaffffef b 414 <main+0x18> 454: eaffffff b 458 <main+0x5c> 458: e59f00d0 ldr r0, [pc, #208] ; 530 <main+0x134> 45c: e3a01064 mov r1, #100 ; 0x64 460: ebffffbf bl 364 <getcmd> 464: e3500000 cmp r0, #0 468: ba00002d blt 524 <main+0x128> 46c: eaffffff b 470 <main+0x74> 470: e59f00b8 ldr r0, [pc, #184] ; 530 <main+0x134> 474: e5d00000 ldrb r0, [r0] 478: e3500063 cmp r0, #99 ; 0x63 47c: 1a00001d bne 4f8 <main+0xfc> 480: eaffffff b 484 <main+0x88> 484: e59f00a4 ldr r0, [pc, #164] ; 530 <main+0x134> 488: e5d00001 ldrb r0, [r0, #1] 48c: e3500064 cmp r0, #100 ; 0x64 490: 1a000018 bne 4f8 <main+0xfc> 494: eaffffff b 498 <main+0x9c> 498: e59f0090 ldr r0, [pc, #144] ; 530 <main+0x134> 49c: e5d00002 ldrb r0, [r0, #2] 4a0: e3500020 cmp r0, #32 4a4: 1a000013 bne 4f8 <main+0xfc> 4a8: eaffffff b 4ac <main+0xb0> 4ac: e59f007c ldr r0, [pc, #124] ; 530 <main+0x134> 4b0: e58d0008 str r0, [sp, #8] 4b4: eb0003ec bl 146c <strlen> 4b8: e59de008 ldr lr, [sp, #8] 4bc: e08e0000 add r0, lr, r0 4c0: e3a01000 mov r1, #0 4c4: e5401001 strb r1, [r0, #-1] 4c8: e28e0003 add r0, lr, #3 4cc: eb00059a bl 1b3c <chdir> 4d0: e3500000 cmp r0, #0 4d4: aa000006 bge 4f4 <main+0xf8> 4d8: eaffffff b 4dc <main+0xe0> 4dc: e59f004c ldr r0, [pc, #76] ; 530 <main+0x134> 4e0: e2802003 add r2, r0, #3 4e4: e59f1048 ldr r1, [pc, #72] ; 534 <main+0x138> 4e8: e3a00002 mov r0, #2 4ec: eb0005c8 bl 1c14 <printf> 4f0: eaffffff b 4f4 <main+0xf8> 4f4: eaffffd7 b 458 <main+0x5c> 4f8: ebffff89 bl 324 <fork1> 4fc: e3500000 cmp r0, #0 500: 1a000004 bne 518 <main+0x11c> 504: eaffffff b 508 <main+0x10c> 508: e59f0020 ldr r0, [pc, #32] ; 530 <main+0x134> 50c: eb000009 bl 538 <parsecmd> 510: ebfffeba bl 0 <runcmd> 514: eaffffff b 518 <main+0x11c> 518: eb000512 bl 1968 <wait> 51c: e58d0004 str r0, [sp, #4] 520: eaffffcc b 458 <main+0x5c> 524: eb000506 bl 1944 <exit> 528: e58d0000 str r0, [sp] 52c: 0000250b .word 0x0000250b 530: 000025c4 .word 0x000025c4 534: 00002513 .word 0x00002513 00000538 <parsecmd>: 538: e92d4800 push {fp, lr} 53c: e1a0b00d mov fp, sp 540: e24dd020 sub sp, sp, #32 544: e1a01000 mov r1, r0 548: e50b0004 str r0, [fp, #-4] 54c: e51b0004 ldr r0, [fp, #-4] 550: e58d0010 str r0, [sp, #16] 554: e58d100c str r1, [sp, #12] 558: eb0003c3 bl 146c <strlen> 55c: e59d1010 ldr r1, [sp, #16] 560: e0810000 add r0, r1, r0 564: e50b0008 str r0, [fp, #-8] 568: e51b1008 ldr r1, [fp, #-8] 56c: e24b0004 sub r0, fp, #4 570: e58d0008 str r0, [sp, #8] 574: eb0001a5 bl c10 <parseline> 578: e50b000c str r0, [fp, #-12] 57c: e51b1008 ldr r1, [fp, #-8] 580: e59f2054 ldr r2, [pc, #84] ; 5dc <parsecmd+0xa4> 584: e59d0008 ldr r0, [sp, #8] 588: eb000162 bl b18 <peek> 58c: e51b1004 ldr r1, [fp, #-4] 590: e51b2008 ldr r2, [fp, #-8] 594: e1510002 cmp r1, r2 598: e58d0004 str r0, [sp, #4] 59c: 0a000007 beq 5c0 <parsecmd+0x88> 5a0: eaffffff b 5a4 <parsecmd+0x6c> 5a4: e51b2004 ldr r2, [fp, #-4] 5a8: e59f1030 ldr r1, [pc, #48] ; 5e0 <parsecmd+0xa8> 5ac: e3a00002 mov r0, #2 5b0: eb000597 bl 1c14 <printf> 5b4: e59f0028 ldr r0, [pc, #40] ; 5e4 <parsecmd+0xac> 5b8: ebffff48 bl 2e0 <panic> 5bc: eaffffff b 5c0 <parsecmd+0x88> 5c0: e51b000c ldr r0, [fp, #-12] 5c4: eb0001d3 bl d18 <nulterminate> 5c8: e51be00c ldr lr, [fp, #-12] 5cc: e58d0000 str r0, [sp] 5d0: e1a0000e mov r0, lr 5d4: e1a0d00b mov sp, fp 5d8: e8bd8800 pop {fp, pc} 5dc: 000024f2 .word 0x000024f2 5e0: 00002526 .word 0x00002526 5e4: 00002535 .word 0x00002535 000005e8 <execcmd>: 5e8: e92d4800 push {fp, lr} 5ec: e1a0b00d mov fp, sp 5f0: e24dd010 sub sp, sp, #16 5f4: e3a00054 mov r0, #84 ; 0x54 5f8: e58d0008 str r0, [sp, #8] 5fc: eb0006ea bl 21ac <malloc> 600: e50b0004 str r0, [fp, #-4] 604: e51b0004 ldr r0, [fp, #-4] 608: e3a01000 mov r1, #0 60c: e59d2008 ldr r2, [sp, #8] 610: eb0003aa bl 14c0 <memset> 614: e51b1004 ldr r1, [fp, #-4] 618: e3a02001 mov r2, #1 61c: e5812000 str r2, [r1] 620: e51b1004 ldr r1, [fp, #-4] 624: e58d0004 str r0, [sp, #4] 628: e1a00001 mov r0, r1 62c: e1a0d00b mov sp, fp 630: e8bd8800 pop {fp, pc} 00000634 <redircmd>: 634: e92d4c70 push {r4, r5, r6, sl, fp, lr} 638: e28db010 add fp, sp, #16 63c: e24dd030 sub sp, sp, #48 ; 0x30 640: e59bc008 ldr ip, [fp, #8] 644: e1a0e003 mov lr, r3 648: e1a04002 mov r4, r2 64c: e1a05001 mov r5, r1 650: e1a06000 mov r6, r0 654: e50b0014 str r0, [fp, #-20] ; 0xffffffec 658: e50b1018 str r1, [fp, #-24] ; 0xffffffe8 65c: e50b201c str r2, [fp, #-28] ; 0xffffffe4 660: e58d3020 str r3, [sp, #32] 664: e3a00018 mov r0, #24 668: e58d0018 str r0, [sp, #24] 66c: e58de014 str lr, [sp, #20] 670: e58d4010 str r4, [sp, #16] 674: e58d500c str r5, [sp, #12] 678: e58d6008 str r6, [sp, #8] 67c: e58dc004 str ip, [sp, #4] 680: eb0006c9 bl 21ac <malloc> 684: e58d001c str r0, [sp, #28] 688: e59d001c ldr r0, [sp, #28] 68c: e3a01000 mov r1, #0 690: e59d2018 ldr r2, [sp, #24] 694: eb000389 bl 14c0 <memset> 698: e59d101c ldr r1, [sp, #28] 69c: e3a02002 mov r2, #2 6a0: e5812000 str r2, [r1] 6a4: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 6a8: e59d201c ldr r2, [sp, #28] 6ac: e5821004 str r1, [r2, #4] 6b0: e51b1018 ldr r1, [fp, #-24] ; 0xffffffe8 6b4: e59d201c ldr r2, [sp, #28] 6b8: e5821008 str r1, [r2, #8] 6bc: e51b101c ldr r1, [fp, #-28] ; 0xffffffe4 6c0: e59d201c ldr r2, [sp, #28] 6c4: e582100c str r1, [r2, #12] 6c8: e59d1020 ldr r1, [sp, #32] 6cc: e59d201c ldr r2, [sp, #28] 6d0: e5821010 str r1, [r2, #16] 6d4: e59b1008 ldr r1, [fp, #8] 6d8: e59d201c ldr r2, [sp, #28] 6dc: e5821014 str r1, [r2, #20] 6e0: e59d101c ldr r1, [sp, #28] 6e4: e58d0000 str r0, [sp] 6e8: e1a00001 mov r0, r1 6ec: e24bd010 sub sp, fp, #16 6f0: e8bd8c70 pop {r4, r5, r6, sl, fp, pc} 000006f4 <pipecmd>: 6f4: e92d4800 push {fp, lr} 6f8: e1a0b00d mov fp, sp 6fc: e24dd020 sub sp, sp, #32 700: e1a02001 mov r2, r1 704: e1a03000 mov r3, r0 708: e50b0004 str r0, [fp, #-4] 70c: e50b1008 str r1, [fp, #-8] 710: e3a0000c mov r0, #12 714: e58d0010 str r0, [sp, #16] 718: e58d200c str r2, [sp, #12] 71c: e58d3008 str r3, [sp, #8] 720: eb0006a1 bl 21ac <malloc> 724: e50b000c str r0, [fp, #-12] 728: e51b000c ldr r0, [fp, #-12] 72c: e3a01000 mov r1, #0 730: e59d2010 ldr r2, [sp, #16] 734: eb000361 bl 14c0 <memset> 738: e51b100c ldr r1, [fp, #-12] 73c: e3a02003 mov r2, #3 740: e5812000 str r2, [r1] 744: e51b1004 ldr r1, [fp, #-4] 748: e51b200c ldr r2, [fp, #-12] 74c: e5821004 str r1, [r2, #4] 750: e51b1008 ldr r1, [fp, #-8] 754: e51b200c ldr r2, [fp, #-12] 758: e5821008 str r1, [r2, #8] 75c: e51b100c ldr r1, [fp, #-12] 760: e58d0004 str r0, [sp, #4] 764: e1a00001 mov r0, r1 768: e1a0d00b mov sp, fp 76c: e8bd8800 pop {fp, pc} 00000770 <listcmd>: 770: e92d4800 push {fp, lr} 774: e1a0b00d mov fp, sp 778: e24dd020 sub sp, sp, #32 77c: e1a02001 mov r2, r1 780: e1a03000 mov r3, r0 784: e50b0004 str r0, [fp, #-4] 788: e50b1008 str r1, [fp, #-8] 78c: e3a0000c mov r0, #12 790: e58d0010 str r0, [sp, #16] 794: e58d200c str r2, [sp, #12] 798: e58d3008 str r3, [sp, #8] 79c: eb000682 bl 21ac <malloc> 7a0: e50b000c str r0, [fp, #-12] 7a4: e51b000c ldr r0, [fp, #-12] 7a8: e3a01000 mov r1, #0 7ac: e59d2010 ldr r2, [sp, #16] 7b0: eb000342 bl 14c0 <memset> 7b4: e51b100c ldr r1, [fp, #-12] 7b8: e3a02004 mov r2, #4 7bc: e5812000 str r2, [r1] 7c0: e51b1004 ldr r1, [fp, #-4] 7c4: e51b200c ldr r2, [fp, #-12] 7c8: e5821004 str r1, [r2, #4] 7cc: e51b1008 ldr r1, [fp, #-8] 7d0: e51b200c ldr r2, [fp, #-12] 7d4: e5821008 str r1, [r2, #8] 7d8: e51b100c ldr r1, [fp, #-12] 7dc: e58d0004 str r0, [sp, #4] 7e0: e1a00001 mov r0, r1 7e4: e1a0d00b mov sp, fp 7e8: e8bd8800 pop {fp, pc} 000007ec <backcmd>: 7ec: e92d4800 push {fp, lr} 7f0: e1a0b00d mov fp, sp 7f4: e24dd018 sub sp, sp, #24 7f8: e1a01000 mov r1, r0 7fc: e50b0004 str r0, [fp, #-4] 800: e3a00008 mov r0, #8 804: e58d000c str r0, [sp, #12] 808: e58d1008 str r1, [sp, #8] 80c: eb000666 bl 21ac <malloc> 810: e50b0008 str r0, [fp, #-8] 814: e51b0008 ldr r0, [fp, #-8] 818: e3a01000 mov r1, #0 81c: e59d200c ldr r2, [sp, #12] 820: eb000326 bl 14c0 <memset> 824: e51b1008 ldr r1, [fp, #-8] 828: e3a02005 mov r2, #5 82c: e5812000 str r2, [r1] 830: e51b1004 ldr r1, [fp, #-4] 834: e51b2008 ldr r2, [fp, #-8] 838: e5821004 str r1, [r2, #4] 83c: e51b1008 ldr r1, [fp, #-8] 840: e58d0004 str r0, [sp, #4] 844: e1a00001 mov r0, r1 848: e1a0d00b mov sp, fp 84c: e8bd8800 pop {fp, pc} 00000850 <gettoken>: 850: e92d4830 push {r4, r5, fp, lr} 854: e28db008 add fp, sp, #8 858: e24dd038 sub sp, sp, #56 ; 0x38 85c: e1a0c003 mov ip, r3 860: e1a0e002 mov lr, r2 864: e1a04001 mov r4, r1 868: e1a05000 mov r5, r0 86c: e50b000c str r0, [fp, #-12] 870: e50b1010 str r1, [fp, #-16] 874: e50b2014 str r2, [fp, #-20] ; 0xffffffec 878: e50b3018 str r3, [fp, #-24] ; 0xffffffe8 87c: e51b000c ldr r0, [fp, #-12] 880: e5900000 ldr r0, [r0] 884: e50b001c str r0, [fp, #-28] ; 0xffffffe4 888: e58dc01c str ip, [sp, #28] 88c: e58de018 str lr, [sp, #24] 890: e58d4014 str r4, [sp, #20] 894: e58d5010 str r5, [sp, #16] 898: eaffffff b 89c <gettoken+0x4c> 89c: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 8a0: e51b1010 ldr r1, [fp, #-16] 8a4: e3a02000 mov r2, #0 8a8: e1500001 cmp r0, r1 8ac: e58d200c str r2, [sp, #12] 8b0: 2a000008 bcs 8d8 <gettoken+0x88> 8b4: eaffffff b 8b8 <gettoken+0x68> 8b8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 8bc: e5d01000 ldrb r1, [r0] 8c0: e59f0248 ldr r0, [pc, #584] ; b10 <gettoken+0x2c0> 8c4: eb000356 bl 1624 <strchr> 8c8: e3500000 cmp r0, #0 8cc: 13a00001 movne r0, #1 8d0: e58d000c str r0, [sp, #12] 8d4: eaffffff b 8d8 <gettoken+0x88> 8d8: e59d000c ldr r0, [sp, #12] 8dc: e3100001 tst r0, #1 8e0: 0a000004 beq 8f8 <gettoken+0xa8> 8e4: eaffffff b 8e8 <gettoken+0x98> 8e8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 8ec: e2800001 add r0, r0, #1 8f0: e50b001c str r0, [fp, #-28] ; 0xffffffe4 8f4: eaffffe8 b 89c <gettoken+0x4c> 8f8: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec 8fc: e3500000 cmp r0, #0 900: 0a000004 beq 918 <gettoken+0xc8> 904: eaffffff b 908 <gettoken+0xb8> 908: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 90c: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 910: e5810000 str r0, [r1] 914: eaffffff b 918 <gettoken+0xc8> 918: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 91c: e5d01000 ldrb r1, [r0] 920: e58d1020 str r1, [sp, #32] 924: e5d00000 ldrb r0, [r0] 928: e1a01000 mov r1, r0 92c: e3500000 cmp r0, #0 930: e58d1008 str r1, [sp, #8] 934: 0a000016 beq 994 <gettoken+0x144> 938: eaffffff b 93c <gettoken+0xec> 93c: e59d0008 ldr r0, [sp, #8] 940: e3500026 cmp r0, #38 ; 0x26 944: 0a000013 beq 998 <gettoken+0x148> 948: eaffffff b 94c <gettoken+0xfc> 94c: e59d0008 ldr r0, [sp, #8] 950: e2401028 sub r1, r0, #40 ; 0x28 954: e3510002 cmp r1, #2 958: 3a00000e bcc 998 <gettoken+0x148> 95c: eaffffff b 960 <gettoken+0x110> 960: e59d0008 ldr r0, [sp, #8] 964: e240103b sub r1, r0, #59 ; 0x3b 968: e3510002 cmp r1, #2 96c: 3a000009 bcc 998 <gettoken+0x148> 970: eaffffff b 974 <gettoken+0x124> 974: e59d0008 ldr r0, [sp, #8] 978: e350003e cmp r0, #62 ; 0x3e 97c: 0a000009 beq 9a8 <gettoken+0x158> 980: eaffffff b 984 <gettoken+0x134> 984: e59d0008 ldr r0, [sp, #8] 988: e350007c cmp r0, #124 ; 0x7c 98c: 0a000001 beq 998 <gettoken+0x148> 990: ea000013 b 9e4 <gettoken+0x194> 994: ea000037 b a78 <gettoken+0x228> 998: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 99c: e2800001 add r0, r0, #1 9a0: e50b001c str r0, [fp, #-28] ; 0xffffffe4 9a4: ea000033 b a78 <gettoken+0x228> 9a8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 9ac: e2800001 add r0, r0, #1 9b0: e50b001c str r0, [fp, #-28] ; 0xffffffe4 9b4: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 9b8: e5d00000 ldrb r0, [r0] 9bc: e350003e cmp r0, #62 ; 0x3e 9c0: 1a000006 bne 9e0 <gettoken+0x190> 9c4: eaffffff b 9c8 <gettoken+0x178> 9c8: e3a0002b mov r0, #43 ; 0x2b 9cc: e58d0020 str r0, [sp, #32] 9d0: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 9d4: e2800001 add r0, r0, #1 9d8: e50b001c str r0, [fp, #-28] ; 0xffffffe4 9dc: eaffffff b 9e0 <gettoken+0x190> 9e0: ea000024 b a78 <gettoken+0x228> 9e4: e3a00061 mov r0, #97 ; 0x61 9e8: e58d0020 str r0, [sp, #32] 9ec: eaffffff b 9f0 <gettoken+0x1a0> 9f0: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 9f4: e51b1010 ldr r1, [fp, #-16] 9f8: e3a02000 mov r2, #0 9fc: e1500001 cmp r0, r1 a00: e58d2004 str r2, [sp, #4] a04: 2a000012 bcs a54 <gettoken+0x204> a08: eaffffff b a0c <gettoken+0x1bc> a0c: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 a10: e5d01000 ldrb r1, [r0] a14: e59f00f4 ldr r0, [pc, #244] ; b10 <gettoken+0x2c0> a18: eb000301 bl 1624 <strchr> a1c: e3a01000 mov r1, #0 a20: e3500000 cmp r0, #0 a24: e58d1004 str r1, [sp, #4] a28: 1a000009 bne a54 <gettoken+0x204> a2c: eaffffff b a30 <gettoken+0x1e0> a30: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 a34: e5d01000 ldrb r1, [r0] a38: e59f00d4 ldr r0, [pc, #212] ; b14 <gettoken+0x2c4> a3c: eb0002f8 bl 1624 <strchr> a40: e3a01000 mov r1, #0 a44: e3500000 cmp r0, #0 a48: 03a01001 moveq r1, #1 a4c: e58d1004 str r1, [sp, #4] a50: eaffffff b a54 <gettoken+0x204> a54: e59d0004 ldr r0, [sp, #4] a58: e3100001 tst r0, #1 a5c: 0a000004 beq a74 <gettoken+0x224> a60: eaffffff b a64 <gettoken+0x214> a64: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 a68: e2800001 add r0, r0, #1 a6c: e50b001c str r0, [fp, #-28] ; 0xffffffe4 a70: eaffffde b 9f0 <gettoken+0x1a0> a74: eaffffff b a78 <gettoken+0x228> a78: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8 a7c: e3500000 cmp r0, #0 a80: 0a000004 beq a98 <gettoken+0x248> a84: eaffffff b a88 <gettoken+0x238> a88: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 a8c: e51b1018 ldr r1, [fp, #-24] ; 0xffffffe8 a90: e5810000 str r0, [r1] a94: eaffffff b a98 <gettoken+0x248> a98: eaffffff b a9c <gettoken+0x24c> a9c: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 aa0: e51b1010 ldr r1, [fp, #-16] aa4: e3a02000 mov r2, #0 aa8: e1500001 cmp r0, r1 aac: e58d2000 str r2, [sp] ab0: 2a000008 bcs ad8 <gettoken+0x288> ab4: eaffffff b ab8 <gettoken+0x268> ab8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 abc: e5d01000 ldrb r1, [r0] ac0: e59f0048 ldr r0, [pc, #72] ; b10 <gettoken+0x2c0> ac4: eb0002d6 bl 1624 <strchr> ac8: e3500000 cmp r0, #0 acc: 13a00001 movne r0, #1 ad0: e58d0000 str r0, [sp] ad4: eaffffff b ad8 <gettoken+0x288> ad8: e59d0000 ldr r0, [sp] adc: e3100001 tst r0, #1 ae0: 0a000004 beq af8 <gettoken+0x2a8> ae4: eaffffff b ae8 <gettoken+0x298> ae8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 aec: e2800001 add r0, r0, #1 af0: e50b001c str r0, [fp, #-28] ; 0xffffffe4 af4: eaffffe8 b a9c <gettoken+0x24c> af8: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 afc: e51b100c ldr r1, [fp, #-12] b00: e5810000 str r0, [r1] b04: e59d0020 ldr r0, [sp, #32] b08: e24bd008 sub sp, fp, #8 b0c: e8bd8830 pop {r4, r5, fp, pc} b10: 000025a4 .word 0x000025a4 b14: 000025aa .word 0x000025aa 00000b18 <peek>: b18: e92d4800 push {fp, lr} b1c: e1a0b00d mov fp, sp b20: e24dd028 sub sp, sp, #40 ; 0x28 b24: e1a03002 mov r3, r2 b28: e1a0c001 mov ip, r1 b2c: e1a0e000 mov lr, r0 b30: e50b0004 str r0, [fp, #-4] b34: e50b1008 str r1, [fp, #-8] b38: e50b200c str r2, [fp, #-12] b3c: e51b0004 ldr r0, [fp, #-4] b40: e5900000 ldr r0, [r0] b44: e50b0010 str r0, [fp, #-16] b48: e58d3014 str r3, [sp, #20] b4c: e58dc010 str ip, [sp, #16] b50: e58de00c str lr, [sp, #12] b54: eaffffff b b58 <peek+0x40> b58: e51b0010 ldr r0, [fp, #-16] b5c: e51b1008 ldr r1, [fp, #-8] b60: e3a02000 mov r2, #0 b64: e1500001 cmp r0, r1 b68: e58d2008 str r2, [sp, #8] b6c: 2a000008 bcs b94 <peek+0x7c> b70: eaffffff b b74 <peek+0x5c> b74: e51b0010 ldr r0, [fp, #-16] b78: e5d01000 ldrb r1, [r0] b7c: e59f0088 ldr r0, [pc, #136] ; c0c <peek+0xf4> b80: eb0002a7 bl 1624 <strchr> b84: e3500000 cmp r0, #0 b88: 13a00001 movne r0, #1 b8c: e58d0008 str r0, [sp, #8] b90: eaffffff b b94 <peek+0x7c> b94: e59d0008 ldr r0, [sp, #8] b98: e3100001 tst r0, #1 b9c: 0a000004 beq bb4 <peek+0x9c> ba0: eaffffff b ba4 <peek+0x8c> ba4: e51b0010 ldr r0, [fp, #-16] ba8: e2800001 add r0, r0, #1 bac: e50b0010 str r0, [fp, #-16] bb0: eaffffe8 b b58 <peek+0x40> bb4: e51b0010 ldr r0, [fp, #-16] bb8: e51b1004 ldr r1, [fp, #-4] bbc: e5810000 str r0, [r1] bc0: e51b0010 ldr r0, [fp, #-16] bc4: e5d00000 ldrb r0, [r0] bc8: e3a01000 mov r1, #0 bcc: e3500000 cmp r0, #0 bd0: e58d1004 str r1, [sp, #4] bd4: 0a000008 beq bfc <peek+0xe4> bd8: eaffffff b bdc <peek+0xc4> bdc: e51b000c ldr r0, [fp, #-12] be0: e51b1010 ldr r1, [fp, #-16] be4: e5d11000 ldrb r1, [r1] be8: eb00028d bl 1624 <strchr> bec: e3500000 cmp r0, #0 bf0: 13a00001 movne r0, #1 bf4: e58d0004 str r0, [sp, #4] bf8: eaffffff b bfc <peek+0xe4> bfc: e59d0004 ldr r0, [sp, #4] c00: e2000001 and r0, r0, #1 c04: e1a0d00b mov sp, fp c08: e8bd8800 pop {fp, pc} c0c: 000025a4 .word 0x000025a4 00000c10 <parseline>: c10: e92d4800 push {fp, lr} c14: e1a0b00d mov fp, sp c18: e24dd030 sub sp, sp, #48 ; 0x30 c1c: e1a02001 mov r2, r1 c20: e1a03000 mov r3, r0 c24: e50b0004 str r0, [fp, #-4] c28: e50b1008 str r1, [fp, #-8] c2c: e51b0004 ldr r0, [fp, #-4] c30: e51b1008 ldr r1, [fp, #-8] c34: e50b2010 str r2, [fp, #-16] c38: e50b3014 str r3, [fp, #-20] ; 0xffffffec c3c: eb00009a bl eac <parsepipe> c40: e50b000c str r0, [fp, #-12] c44: eaffffff b c48 <parseline+0x38> c48: e51b0004 ldr r0, [fp, #-4] c4c: e51b1008 ldr r1, [fp, #-8] c50: e59f20b8 ldr r2, [pc, #184] ; d10 <parseline+0x100> c54: ebffffaf bl b18 <peek> c58: e3500000 cmp r0, #0 c5c: 0a00000c beq c94 <parseline+0x84> c60: eaffffff b c64 <parseline+0x54> c64: e51b0004 ldr r0, [fp, #-4] c68: e51b1008 ldr r1, [fp, #-8] c6c: e3a02000 mov r2, #0 c70: e58d2018 str r2, [sp, #24] c74: e59d3018 ldr r3, [sp, #24] c78: ebfffef4 bl 850 <gettoken> c7c: e51b100c ldr r1, [fp, #-12] c80: e58d0014 str r0, [sp, #20] c84: e1a00001 mov r0, r1 c88: ebfffed7 bl 7ec <backcmd> c8c: e50b000c str r0, [fp, #-12] c90: eaffffec b c48 <parseline+0x38> c94: e51b0004 ldr r0, [fp, #-4] c98: e51b1008 ldr r1, [fp, #-8] c9c: e59f2070 ldr r2, [pc, #112] ; d14 <parseline+0x104> ca0: ebffff9c bl b18 <peek> ca4: e3500000 cmp r0, #0 ca8: 0a000015 beq d04 <parseline+0xf4> cac: eaffffff b cb0 <parseline+0xa0> cb0: e51b0004 ldr r0, [fp, #-4] cb4: e51b1008 ldr r1, [fp, #-8] cb8: e3a02000 mov r2, #0 cbc: e58d2010 str r2, [sp, #16] cc0: e59d3010 ldr r3, [sp, #16] cc4: ebfffee1 bl 850 <gettoken> cc8: e51b100c ldr r1, [fp, #-12] ccc: e51b2004 ldr r2, [fp, #-4] cd0: e51b3008 ldr r3, [fp, #-8] cd4: e58d000c str r0, [sp, #12] cd8: e1a00002 mov r0, r2 cdc: e58d1008 str r1, [sp, #8] ce0: e1a01003 mov r1, r3 ce4: ebffffc9 bl c10 <parseline> ce8: e59d1008 ldr r1, [sp, #8] cec: e58d0004 str r0, [sp, #4] cf0: e1a00001 mov r0, r1 cf4: e59d1004 ldr r1, [sp, #4] cf8: ebfffe9c bl 770 <listcmd> cfc: e50b000c str r0, [fp, #-12] d00: eaffffff b d04 <parseline+0xf4> d04: e51b000c ldr r0, [fp, #-12] d08: e1a0d00b mov sp, fp d0c: e8bd8800 pop {fp, pc} d10: 0000253c .word 0x0000253c d14: 00002583 .word 0x00002583 00000d18 <nulterminate>: d18: e92d4800 push {fp, lr} d1c: e1a0b00d mov fp, sp d20: e24dd040 sub sp, sp, #64 ; 0x40 d24: e1a01000 mov r1, r0 d28: e50b0008 str r0, [fp, #-8] d2c: e51b0008 ldr r0, [fp, #-8] d30: e3500000 cmp r0, #0 d34: e58d101c str r1, [sp, #28] d38: 1a000003 bne d4c <nulterminate+0x34> d3c: eaffffff b d40 <nulterminate+0x28> d40: e3a00000 mov r0, #0 d44: e50b0004 str r0, [fp, #-4] d48: ea000054 b ea0 <nulterminate+0x188> d4c: e51b0008 ldr r0, [fp, #-8] d50: e5900000 ldr r0, [r0] d54: e2400001 sub r0, r0, #1 d58: e3500004 cmp r0, #4 d5c: e58d0018 str r0, [sp, #24] d60: 8a00004b bhi e94 <nulterminate+0x17c> d64: e59d0018 ldr r0, [sp, #24] d68: e1a01100 lsl r1, r0, #2 d6c: e28f2004 add r2, pc, #4 d70: e7911002 ldr r1, [r1, r2] d74: e1a0f001 mov pc, r1 d78: 00000d8c .word 0x00000d8c d7c: 00000dec .word 0x00000dec d80: 00000e18 .word 0x00000e18 d84: 00000e48 .word 0x00000e48 d88: 00000e78 .word 0x00000e78 d8c: e51b0008 ldr r0, [fp, #-8] d90: e50b0014 str r0, [fp, #-20] ; 0xffffffec d94: e3a00000 mov r0, #0 d98: e50b000c str r0, [fp, #-12] d9c: eaffffff b da0 <nulterminate+0x88> da0: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec da4: e51b100c ldr r1, [fp, #-12] da8: e0800101 add r0, r0, r1, lsl #2 dac: e5900004 ldr r0, [r0, #4] db0: e3500000 cmp r0, #0 db4: 0a00000b beq de8 <nulterminate+0xd0> db8: eaffffff b dbc <nulterminate+0xa4> dbc: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec dc0: e51b100c ldr r1, [fp, #-12] dc4: e0800101 add r0, r0, r1, lsl #2 dc8: e590002c ldr r0, [r0, #44] ; 0x2c dcc: e3a01000 mov r1, #0 dd0: e5c01000 strb r1, [r0] dd4: eaffffff b dd8 <nulterminate+0xc0> dd8: e51b000c ldr r0, [fp, #-12] ddc: e2800001 add r0, r0, #1 de0: e50b000c str r0, [fp, #-12] de4: eaffffed b da0 <nulterminate+0x88> de8: ea000029 b e94 <nulterminate+0x17c> dec: e51b0008 ldr r0, [fp, #-8] df0: e58d0020 str r0, [sp, #32] df4: e59d0020 ldr r0, [sp, #32] df8: e5900004 ldr r0, [r0, #4] dfc: ebffffc5 bl d18 <nulterminate> e00: e59de020 ldr lr, [sp, #32] e04: e59ee00c ldr lr, [lr, #12] e08: e3a01000 mov r1, #0 e0c: e5ce1000 strb r1, [lr] e10: e58d0014 str r0, [sp, #20] e14: ea00001e b e94 <nulterminate+0x17c> e18: e51b0008 ldr r0, [fp, #-8] e1c: e50b001c str r0, [fp, #-28] ; 0xffffffe4 e20: e51b001c ldr r0, [fp, #-28] ; 0xffffffe4 e24: e5900004 ldr r0, [r0, #4] e28: ebffffba bl d18 <nulterminate> e2c: e51be01c ldr lr, [fp, #-28] ; 0xffffffe4 e30: e59ee008 ldr lr, [lr, #8] e34: e58d0010 str r0, [sp, #16] e38: e1a0000e mov r0, lr e3c: ebffffb5 bl d18 <nulterminate> e40: e58d000c str r0, [sp, #12] e44: ea000012 b e94 <nulterminate+0x17c> e48: e51b0008 ldr r0, [fp, #-8] e4c: e50b0018 str r0, [fp, #-24] ; 0xffffffe8 e50: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8 e54: e5900004 ldr r0, [r0, #4] e58: ebffffae bl d18 <nulterminate> e5c: e51be018 ldr lr, [fp, #-24] ; 0xffffffe8 e60: e59ee008 ldr lr, [lr, #8] e64: e58d0008 str r0, [sp, #8] e68: e1a0000e mov r0, lr e6c: ebffffa9 bl d18 <nulterminate> e70: e58d0004 str r0, [sp, #4] e74: ea000006 b e94 <nulterminate+0x17c> e78: e51b0008 ldr r0, [fp, #-8] e7c: e50b0010 str r0, [fp, #-16] e80: e51b0010 ldr r0, [fp, #-16] e84: e5900004 ldr r0, [r0, #4] e88: ebffffa2 bl d18 <nulterminate> e8c: e58d0000 str r0, [sp] e90: eaffffff b e94 <nulterminate+0x17c> e94: e51b0008 ldr r0, [fp, #-8] e98: e50b0004 str r0, [fp, #-4] e9c: eaffffff b ea0 <nulterminate+0x188> ea0: e51b0004 ldr r0, [fp, #-4] ea4: e1a0d00b mov sp, fp ea8: e8bd8800 pop {fp, pc} 00000eac <parsepipe>: eac: e92d4800 push {fp, lr} eb0: e1a0b00d mov fp, sp eb4: e24dd028 sub sp, sp, #40 ; 0x28 eb8: e1a02001 mov r2, r1 ebc: e1a03000 mov r3, r0 ec0: e50b0004 str r0, [fp, #-4] ec4: e50b1008 str r1, [fp, #-8] ec8: e51b0004 ldr r0, [fp, #-4] ecc: e51b1008 ldr r1, [fp, #-8] ed0: e50b2010 str r2, [fp, #-16] ed4: e58d3014 str r3, [sp, #20] ed8: eb000020 bl f60 <parseexec> edc: e50b000c str r0, [fp, #-12] ee0: e51b0004 ldr r0, [fp, #-4] ee4: e51b1008 ldr r1, [fp, #-8] ee8: e59f206c ldr r2, [pc, #108] ; f5c <parsepipe+0xb0> eec: ebffff09 bl b18 <peek> ef0: e3500000 cmp r0, #0 ef4: 0a000015 beq f50 <parsepipe+0xa4> ef8: eaffffff b efc <parsepipe+0x50> efc: e51b0004 ldr r0, [fp, #-4] f00: e51b1008 ldr r1, [fp, #-8] f04: e3a02000 mov r2, #0 f08: e58d2010 str r2, [sp, #16] f0c: e59d3010 ldr r3, [sp, #16] f10: ebfffe4e bl 850 <gettoken> f14: e51b100c ldr r1, [fp, #-12] f18: e51b2004 ldr r2, [fp, #-4] f1c: e51b3008 ldr r3, [fp, #-8] f20: e58d000c str r0, [sp, #12] f24: e1a00002 mov r0, r2 f28: e58d1008 str r1, [sp, #8] f2c: e1a01003 mov r1, r3 f30: ebffffdd bl eac <parsepipe> f34: e59d1008 ldr r1, [sp, #8] f38: e58d0004 str r0, [sp, #4] f3c: e1a00001 mov r0, r1 f40: e59d1004 ldr r1, [sp, #4] f44: ebfffdea bl 6f4 <pipecmd> f48: e50b000c str r0, [fp, #-12] f4c: eaffffff b f50 <parsepipe+0xa4> f50: e51b000c ldr r0, [fp, #-12] f54: e1a0d00b mov sp, fp f58: e8bd8800 pop {fp, pc} f5c: 0000253e .word 0x0000253e 00000f60 <parseexec>: f60: e92d4800 push {fp, lr} f64: e1a0b00d mov fp, sp f68: e24dd030 sub sp, sp, #48 ; 0x30 f6c: e1a02001 mov r2, r1 f70: e1a03000 mov r3, r0 f74: e50b0008 str r0, [fp, #-8] f78: e50b100c str r1, [fp, #-12] f7c: e51b0008 ldr r0, [fp, #-8] f80: e51b100c ldr r1, [fp, #-12] f84: e59fc15c ldr ip, [pc, #348] ; 10e8 <parseexec+0x188> f88: e58d2008 str r2, [sp, #8] f8c: e1a0200c mov r2, ip f90: e58d3004 str r3, [sp, #4] f94: ebfffedf bl b18 <peek> f98: e3500000 cmp r0, #0 f9c: 0a000005 beq fb8 <parseexec+0x58> fa0: eaffffff b fa4 <parseexec+0x44> fa4: e51b0008 ldr r0, [fp, #-8] fa8: e51b100c ldr r1, [fp, #-12] fac: eb0000aa bl 125c <parseblock> fb0: e50b0004 str r0, [fp, #-4] fb4: ea000048 b 10dc <parseexec+0x17c> fb8: ebfffd8a bl 5e8 <execcmd> fbc: e58d000c str r0, [sp, #12] fc0: e59d000c ldr r0, [sp, #12] fc4: e58d0010 str r0, [sp, #16] fc8: e3a0e000 mov lr, #0 fcc: e58de014 str lr, [sp, #20] fd0: e51b1008 ldr r1, [fp, #-8] fd4: e51b200c ldr r2, [fp, #-12] fd8: eb000046 bl 10f8 <parseredirs> fdc: e58d000c str r0, [sp, #12] fe0: eaffffff b fe4 <parseexec+0x84> fe4: e51b0008 ldr r0, [fp, #-8] fe8: e51b100c ldr r1, [fp, #-12] fec: e59f20f8 ldr r2, [pc, #248] ; 10ec <parseexec+0x18c> ff0: ebfffec8 bl b18 <peek> ff4: e3500000 cmp r0, #0 ff8: 1a00002b bne 10ac <parseexec+0x14c> ffc: eaffffff b 1000 <parseexec+0xa0> 1000: e51b0008 ldr r0, [fp, #-8] 1004: e51b100c ldr r1, [fp, #-12] 1008: e24b2010 sub r2, fp, #16 100c: e24b3014 sub r3, fp, #20 1010: ebfffe0e bl 850 <gettoken> 1014: e58d0018 str r0, [sp, #24] 1018: e3500000 cmp r0, #0 101c: 1a000001 bne 1028 <parseexec+0xc8> 1020: eaffffff b 1024 <parseexec+0xc4> 1024: ea000020 b 10ac <parseexec+0x14c> 1028: e59d0018 ldr r0, [sp, #24] 102c: e3500061 cmp r0, #97 ; 0x61 1030: 0a000003 beq 1044 <parseexec+0xe4> 1034: eaffffff b 1038 <parseexec+0xd8> 1038: e59f00b0 ldr r0, [pc, #176] ; 10f0 <parseexec+0x190> 103c: ebfffca7 bl 2e0 <panic> 1040: eaffffff b 1044 <parseexec+0xe4> 1044: e51b0010 ldr r0, [fp, #-16] 1048: e59d1010 ldr r1, [sp, #16] 104c: e59d2014 ldr r2, [sp, #20] 1050: e0811102 add r1, r1, r2, lsl #2 1054: e5810004 str r0, [r1, #4] 1058: e51b0014 ldr r0, [fp, #-20] ; 0xffffffec 105c: e59d1010 ldr r1, [sp, #16] 1060: e59d2014 ldr r2, [sp, #20] 1064: e0811102 add r1, r1, r2, lsl #2 1068: e581002c str r0, [r1, #44] ; 0x2c 106c: e59d0014 ldr r0, [sp, #20] 1070: e2800001 add r0, r0, #1 1074: e58d0014 str r0, [sp, #20] 1078: e59d0014 ldr r0, [sp, #20] 107c: e350000a cmp r0, #10 1080: ba000003 blt 1094 <parseexec+0x134> 1084: eaffffff b 1088 <parseexec+0x128> 1088: e59f0064 ldr r0, [pc, #100] ; 10f4 <parseexec+0x194> 108c: ebfffc93 bl 2e0 <panic> 1090: eaffffff b 1094 <parseexec+0x134> 1094: e59d000c ldr r0, [sp, #12] 1098: e51b1008 ldr r1, [fp, #-8] 109c: e51b200c ldr r2, [fp, #-12] 10a0: eb000014 bl 10f8 <parseredirs> 10a4: e58d000c str r0, [sp, #12] 10a8: eaffffcd b fe4 <parseexec+0x84> 10ac: e59d0010 ldr r0, [sp, #16] 10b0: e59d1014 ldr r1, [sp, #20] 10b4: e0800101 add r0, r0, r1, lsl #2 10b8: e3a01000 mov r1, #0 10bc: e5801004 str r1, [r0, #4] 10c0: e59d0010 ldr r0, [sp, #16] 10c4: e59d2014 ldr r2, [sp, #20] 10c8: e0800102 add r0, r0, r2, lsl #2 10cc: e580102c str r1, [r0, #44] ; 0x2c 10d0: e59d000c ldr r0, [sp, #12] 10d4: e50b0004 str r0, [fp, #-4] 10d8: eaffffff b 10dc <parseexec+0x17c> 10dc: e51b0004 ldr r0, [fp, #-4] 10e0: e1a0d00b mov sp, fp 10e4: e8bd8800 pop {fp, pc} 10e8: 00002560 .word 0x00002560 10ec: 00002580 .word 0x00002580 10f0: 00002535 .word 0x00002535 10f4: 00002585 .word 0x00002585 000010f8 <parseredirs>: 10f8: e92d4800 push {fp, lr} 10fc: e1a0b00d mov fp, sp 1100: e24dd030 sub sp, sp, #48 ; 0x30 1104: e1a03002 mov r3, r2 1108: e1a0c001 mov ip, r1 110c: e1a0e000 mov lr, r0 1110: e50b0004 str r0, [fp, #-4] 1114: e50b1008 str r1, [fp, #-8] 1118: e50b200c str r2, [fp, #-12] 111c: e58d3014 str r3, [sp, #20] 1120: e58dc010 str ip, [sp, #16] 1124: e58de00c str lr, [sp, #12] 1128: eaffffff b 112c <parseredirs+0x34> 112c: e51b0008 ldr r0, [fp, #-8] 1130: e51b100c ldr r1, [fp, #-12] 1134: e59f2118 ldr r2, [pc, #280] ; 1254 <parseredirs+0x15c> 1138: ebfffe76 bl b18 <peek> 113c: e3500000 cmp r0, #0 1140: 0a000040 beq 1248 <parseredirs+0x150> 1144: eaffffff b 1148 <parseredirs+0x50> 1148: e51b0008 ldr r0, [fp, #-8] 114c: e51b100c ldr r1, [fp, #-12] 1150: e3a02000 mov r2, #0 1154: e58d2008 str r2, [sp, #8] 1158: e59d3008 ldr r3, [sp, #8] 115c: ebfffdbb bl 850 <gettoken> 1160: e50b0010 str r0, [fp, #-16] 1164: e51b0008 ldr r0, [fp, #-8] 1168: e51b100c ldr r1, [fp, #-12] 116c: e24b2014 sub r2, fp, #20 1170: e28d3018 add r3, sp, #24 1174: ebfffdb5 bl 850 <gettoken> 1178: e3500061 cmp r0, #97 ; 0x61 117c: 0a000003 beq 1190 <parseredirs+0x98> 1180: eaffffff b 1184 <parseredirs+0x8c> 1184: e59f00cc ldr r0, [pc, #204] ; 1258 <parseredirs+0x160> 1188: ebfffc54 bl 2e0 <panic> 118c: eaffffff b 1190 <parseredirs+0x98> 1190: e51b0010 ldr r0, [fp, #-16] 1194: e350002b cmp r0, #43 ; 0x2b 1198: e58d0004 str r0, [sp, #4] 119c: 0a00001d beq 1218 <parseredirs+0x120> 11a0: eaffffff b 11a4 <parseredirs+0xac> 11a4: e59d0004 ldr r0, [sp, #4] 11a8: e350003c cmp r0, #60 ; 0x3c 11ac: 0a000004 beq 11c4 <parseredirs+0xcc> 11b0: eaffffff b 11b4 <parseredirs+0xbc> 11b4: e59d0004 ldr r0, [sp, #4] 11b8: e350003e cmp r0, #62 ; 0x3e 11bc: 0a00000a beq 11ec <parseredirs+0xf4> 11c0: ea00001f b 1244 <parseredirs+0x14c> 11c4: e51b0004 ldr r0, [fp, #-4] 11c8: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 11cc: e59d2018 ldr r2, [sp, #24] 11d0: e1a0300d mov r3, sp 11d4: e3a0c000 mov ip, #0 11d8: e583c000 str ip, [r3] 11dc: e1a0300c mov r3, ip 11e0: ebfffd13 bl 634 <redircmd> 11e4: e50b0004 str r0, [fp, #-4] 11e8: ea000015 b 1244 <parseredirs+0x14c> 11ec: e51b0004 ldr r0, [fp, #-4] 11f0: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 11f4: e59d2018 ldr r2, [sp, #24] 11f8: e1a0300d mov r3, sp 11fc: e3a0c001 mov ip, #1 1200: e583c000 str ip, [r3] 1204: e3a03001 mov r3, #1 1208: e3833c02 orr r3, r3, #512 ; 0x200 120c: ebfffd08 bl 634 <redircmd> 1210: e50b0004 str r0, [fp, #-4] 1214: ea00000a b 1244 <parseredirs+0x14c> 1218: e51b0004 ldr r0, [fp, #-4] 121c: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 1220: e59d2018 ldr r2, [sp, #24] 1224: e1a0300d mov r3, sp 1228: e3a0c001 mov ip, #1 122c: e583c000 str ip, [r3] 1230: e3a03001 mov r3, #1 1234: e3833c02 orr r3, r3, #512 ; 0x200 1238: ebfffcfd bl 634 <redircmd> 123c: e50b0004 str r0, [fp, #-4] 1240: eaffffff b 1244 <parseredirs+0x14c> 1244: eaffffb8 b 112c <parseredirs+0x34> 1248: e51b0004 ldr r0, [fp, #-4] 124c: e1a0d00b mov sp, fp 1250: e8bd8800 pop {fp, pc} 1254: 00002540 .word 0x00002540 1258: 00002543 .word 0x00002543 0000125c <parseblock>: return cmd; } struct cmd* parseblock(char **ps, char *es) { 125c: e92d4800 push {fp, lr} 1260: e1a0b00d mov fp, sp 1264: e24dd028 sub sp, sp, #40 ; 0x28 1268: e1a02001 mov r2, r1 126c: e1a03000 mov r3, r0 1270: e50b0004 str r0, [fp, #-4] 1274: e50b1008 str r1, [fp, #-8] struct cmd *cmd; if(!peek(ps, es, "(")) 1278: e51b0004 ldr r0, [fp, #-4] 127c: e51b1008 ldr r1, [fp, #-8] 1280: e59fc0c8 ldr ip, [pc, #200] ; 1350 <parseblock+0xf4> 1284: e50b2010 str r2, [fp, #-16] 1288: e1a0200c mov r2, ip 128c: e58d3014 str r3, [sp, #20] 1290: ebfffe20 bl b18 <peek> 1294: e3500000 cmp r0, #0 1298: 1a000003 bne 12ac <parseblock+0x50> 129c: eaffffff b 12a0 <parseblock+0x44> panic("parseblock"); 12a0: e59f00ac ldr r0, [pc, #172] ; 1354 <parseblock+0xf8> 12a4: ebfffc0d bl 2e0 <panic> 12a8: eaffffff b 12ac <parseblock+0x50> gettoken(ps, es, 0, 0); 12ac: e51b0004 ldr r0, [fp, #-4] 12b0: e51b1008 ldr r1, [fp, #-8] 12b4: e3a02000 mov r2, #0 12b8: e58d2010 str r2, [sp, #16] 12bc: e59d3010 ldr r3, [sp, #16] 12c0: ebfffd62 bl 850 <gettoken> cmd = parseline(ps, es); 12c4: e51b1004 ldr r1, [fp, #-4] 12c8: e51b2008 ldr r2, [fp, #-8] 12cc: e58d000c str r0, [sp, #12] 12d0: e1a00001 mov r0, r1 12d4: e1a01002 mov r1, r2 12d8: ebfffe4c bl c10 <parseline> 12dc: e50b000c str r0, [fp, #-12] if(!peek(ps, es, ")")) 12e0: e51b0004 ldr r0, [fp, #-4] 12e4: e51b1008 ldr r1, [fp, #-8] 12e8: e59f2068 ldr r2, [pc, #104] ; 1358 <parseblock+0xfc> 12ec: ebfffe09 bl b18 <peek> 12f0: e3500000 cmp r0, #0 12f4: 1a000003 bne 1308 <parseblock+0xac> 12f8: eaffffff b 12fc <parseblock+0xa0> panic("syntax - missing )"); 12fc: e59f0058 ldr r0, [pc, #88] ; 135c <parseblock+0x100> 1300: ebfffbf6 bl 2e0 <panic> 1304: eaffffff b 1308 <parseblock+0xac> gettoken(ps, es, 0, 0); 1308: e51b0004 ldr r0, [fp, #-4] 130c: e51b1008 ldr r1, [fp, #-8] 1310: e3a02000 mov r2, #0 1314: e58d2008 str r2, [sp, #8] 1318: e59d3008 ldr r3, [sp, #8] 131c: ebfffd4b bl 850 <gettoken> cmd = parseredirs(cmd, ps, es); 1320: e51b100c ldr r1, [fp, #-12] 1324: e51b2004 ldr r2, [fp, #-4] 1328: e51b3008 ldr r3, [fp, #-8] 132c: e58d0004 str r0, [sp, #4] 1330: e1a00001 mov r0, r1 1334: e1a01002 mov r1, r2 1338: e1a02003 mov r2, r3 133c: ebffff6d bl 10f8 <parseredirs> 1340: e50b000c str r0, [fp, #-12] return cmd; 1344: e51b000c ldr r0, [fp, #-12] 1348: e1a0d00b mov sp, fp 134c: e8bd8800 pop {fp, pc} 1350: 00002560 .word 0x00002560 1354: 00002562 .word 0x00002562 1358: 0000257e .word 0x0000257e 135c: 0000256d .word 0x0000256d 00001360 <strcpy>: #include "fcntl.h" #include "user.h" char* strcpy(char *s, char *t) { 1360: e24dd014 sub sp, sp, #20 1364: e1a02001 mov r2, r1 1368: e1a03000 mov r3, r0 136c: e58d0010 str r0, [sp, #16] 1370: e58d100c str r1, [sp, #12] 1374: e59d0010 ldr r0, [sp, #16] 1378: e58d0008 str r0, [sp, #8] 137c: e58d2004 str r2, [sp, #4] 1380: e58d3000 str r3, [sp] 1384: eaffffff b 1388 <strcpy+0x28> 1388: e59d000c ldr r0, [sp, #12] 138c: e2801001 add r1, r0, #1 1390: e58d100c str r1, [sp, #12] 1394: e5d00000 ldrb r0, [r0] 1398: e59d1010 ldr r1, [sp, #16] 139c: e2812001 add r2, r1, #1 13a0: e58d2010 str r2, [sp, #16] 13a4: e5c10000 strb r0, [r1] 13a8: e3500000 cmp r0, #0 13ac: 0a000001 beq 13b8 <strcpy+0x58> 13b0: eaffffff b 13b4 <strcpy+0x54> 13b4: eafffff3 b 1388 <strcpy+0x28> 13b8: e59d0008 ldr r0, [sp, #8] 13bc: e28dd014 add sp, sp, #20 13c0: e12fff1e bx lr 000013c4 <strcmp>: 13c4: e24dd014 sub sp, sp, #20 13c8: e1a02001 mov r2, r1 13cc: e1a03000 mov r3, r0 13d0: e58d0010 str r0, [sp, #16] 13d4: e58d100c str r1, [sp, #12] 13d8: e58d2008 str r2, [sp, #8] 13dc: e58d3004 str r3, [sp, #4] 13e0: eaffffff b 13e4 <strcmp+0x20> 13e4: e59d0010 ldr r0, [sp, #16] 13e8: e5d00000 ldrb r0, [r0] 13ec: e3a01000 mov r1, #0 13f0: e3500000 cmp r0, #0 13f4: e58d1000 str r1, [sp] 13f8: 0a000009 beq 1424 <strcmp+0x60> 13fc: eaffffff b 1400 <strcmp+0x3c> 1400: e59d0010 ldr r0, [sp, #16] 1404: e5d00000 ldrb r0, [r0] 1408: e59d100c ldr r1, [sp, #12] 140c: e5d11000 ldrb r1, [r1] 1410: e3a02000 mov r2, #0 1414: e1500001 cmp r0, r1 1418: 03a02001 moveq r2, #1 141c: e58d2000 str r2, [sp] 1420: eaffffff b 1424 <strcmp+0x60> 1424: e59d0000 ldr r0, [sp] 1428: e3100001 tst r0, #1 142c: 0a000007 beq 1450 <strcmp+0x8c> 1430: eaffffff b 1434 <strcmp+0x70> 1434: e59d0010 ldr r0, [sp, #16] 1438: e2800001 add r0, r0, #1 143c: e58d0010 str r0, [sp, #16] 1440: e59d000c ldr r0, [sp, #12] 1444: e2800001 add r0, r0, #1 1448: e58d000c str r0, [sp, #12] 144c: eaffffe4 b 13e4 <strcmp+0x20> 1450: e59d0010 ldr r0, [sp, #16] 1454: e5d00000 ldrb r0, [r0] 1458: e59d100c ldr r1, [sp, #12] 145c: e5d11000 ldrb r1, [r1] 1460: e0400001 sub r0, r0, r1 1464: e28dd014 add sp, sp, #20 1468: e12fff1e bx lr 0000146c <strlen>: 146c: e24dd00c sub sp, sp, #12 1470: e1a01000 mov r1, r0 1474: e58d0008 str r0, [sp, #8] 1478: e3a00000 mov r0, #0 147c: e58d0004 str r0, [sp, #4] 1480: e58d1000 str r1, [sp] 1484: eaffffff b 1488 <strlen+0x1c> 1488: e59d0008 ldr r0, [sp, #8] 148c: e59d1004 ldr r1, [sp, #4] 1490: e7d00001 ldrb r0, [r0, r1] 1494: e3500000 cmp r0, #0 1498: 0a000005 beq 14b4 <strlen+0x48> 149c: eaffffff b 14a0 <strlen+0x34> 14a0: eaffffff b 14a4 <strlen+0x38> 14a4: e59d0004 ldr r0, [sp, #4] 14a8: e2800001 add r0, r0, #1 14ac: e58d0004 str r0, [sp, #4] 14b0: eafffff4 b 1488 <strlen+0x1c> 14b4: e59d0004 ldr r0, [sp, #4] 14b8: e28dd00c add sp, sp, #12 14bc: e12fff1e bx lr 000014c0 <memset>: 14c0: e92d4800 push {fp, lr} 14c4: e1a0b00d mov fp, sp 14c8: e24dd02c sub sp, sp, #44 ; 0x2c 14cc: e1a03002 mov r3, r2 14d0: e1a0c001 mov ip, r1 14d4: e1a0e000 mov lr, r0 14d8: e50b0004 str r0, [fp, #-4] 14dc: e50b1008 str r1, [fp, #-8] 14e0: e50b200c str r2, [fp, #-12] 14e4: e51b0004 ldr r0, [fp, #-4] 14e8: e50b0010 str r0, [fp, #-16] 14ec: e51b0008 ldr r0, [fp, #-8] 14f0: e54b0011 strb r0, [fp, #-17] ; 0xffffffef 14f4: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 14f8: e1a01c00 lsl r1, r0, #24 14fc: e1811800 orr r1, r1, r0, lsl #16 1500: e1811400 orr r1, r1, r0, lsl #8 1504: e1810000 orr r0, r1, r0 1508: e58d0014 str r0, [sp, #20] 150c: e58d300c str r3, [sp, #12] 1510: e58dc008 str ip, [sp, #8] 1514: e58de004 str lr, [sp, #4] 1518: eaffffff b 151c <memset+0x5c> 151c: e51b000c ldr r0, [fp, #-12] 1520: e3a01000 mov r1, #0 1524: e3500000 cmp r0, #0 1528: e58d1000 str r1, [sp] 152c: 0a000006 beq 154c <memset+0x8c> 1530: eaffffff b 1534 <memset+0x74> 1534: e55b0010 ldrb r0, [fp, #-16] 1538: e2000003 and r0, r0, #3 153c: e3500000 cmp r0, #0 1540: 13a00001 movne r0, #1 1544: e58d0000 str r0, [sp] 1548: eaffffff b 154c <memset+0x8c> 154c: e59d0000 ldr r0, [sp] 1550: e3100001 tst r0, #1 1554: 0a00000b beq 1588 <memset+0xc8> 1558: eaffffff b 155c <memset+0x9c> 155c: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 1560: e51b1010 ldr r1, [fp, #-16] 1564: e5c10000 strb r0, [r1] 1568: eaffffff b 156c <memset+0xac> 156c: e51b000c ldr r0, [fp, #-12] 1570: e2400001 sub r0, r0, #1 1574: e50b000c str r0, [fp, #-12] 1578: e51b0010 ldr r0, [fp, #-16] 157c: e2800001 add r0, r0, #1 1580: e50b0010 str r0, [fp, #-16] 1584: eaffffe4 b 151c <memset+0x5c> 1588: e51b0010 ldr r0, [fp, #-16] 158c: e58d0010 str r0, [sp, #16] 1590: eaffffff b 1594 <memset+0xd4> 1594: e51b000c ldr r0, [fp, #-12] 1598: e3500004 cmp r0, #4 159c: 3a00000b bcc 15d0 <memset+0x110> 15a0: eaffffff b 15a4 <memset+0xe4> 15a4: e59d0014 ldr r0, [sp, #20] 15a8: e59d1010 ldr r1, [sp, #16] 15ac: e5810000 str r0, [r1] 15b0: eaffffff b 15b4 <memset+0xf4> 15b4: e51b000c ldr r0, [fp, #-12] 15b8: e2400004 sub r0, r0, #4 15bc: e50b000c str r0, [fp, #-12] 15c0: e59d0010 ldr r0, [sp, #16] 15c4: e2800004 add r0, r0, #4 15c8: e58d0010 str r0, [sp, #16] 15cc: eafffff0 b 1594 <memset+0xd4> 15d0: e59d0010 ldr r0, [sp, #16] 15d4: e50b0010 str r0, [fp, #-16] 15d8: eaffffff b 15dc <memset+0x11c> 15dc: e51b000c ldr r0, [fp, #-12] 15e0: e3500000 cmp r0, #0 15e4: 0a00000b beq 1618 <memset+0x158> 15e8: eaffffff b 15ec <memset+0x12c> 15ec: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef 15f0: e51b1010 ldr r1, [fp, #-16] 15f4: e5c10000 strb r0, [r1] 15f8: eaffffff b 15fc <memset+0x13c> 15fc: e51b000c ldr r0, [fp, #-12] 1600: e2400001 sub r0, r0, #1 1604: e50b000c str r0, [fp, #-12] 1608: e51b0010 ldr r0, [fp, #-16] 160c: e2800001 add r0, r0, #1 1610: e50b0010 str r0, [fp, #-16] 1614: eafffff0 b 15dc <memset+0x11c> 1618: e51b0004 ldr r0, [fp, #-4] 161c: e1a0d00b mov sp, fp 1620: e8bd8800 pop {fp, pc} 00001624 <strchr>: 1624: e24dd014 sub sp, sp, #20 1628: e1a02001 mov r2, r1 162c: e1a03000 mov r3, r0 1630: e58d000c str r0, [sp, #12] 1634: e5cd100b strb r1, [sp, #11] 1638: e58d2004 str r2, [sp, #4] 163c: e58d3000 str r3, [sp] 1640: eaffffff b 1644 <strchr+0x20> 1644: e59d000c ldr r0, [sp, #12] 1648: e5d00000 ldrb r0, [r0] 164c: e3500000 cmp r0, #0 1650: 0a00000e beq 1690 <strchr+0x6c> 1654: eaffffff b 1658 <strchr+0x34> 1658: e59d000c ldr r0, [sp, #12] 165c: e5d00000 ldrb r0, [r0] 1660: e5dd100b ldrb r1, [sp, #11] 1664: e1500001 cmp r0, r1 1668: 1a000003 bne 167c <strchr+0x58> 166c: eaffffff b 1670 <strchr+0x4c> 1670: e59d000c ldr r0, [sp, #12] 1674: e58d0010 str r0, [sp, #16] 1678: ea000007 b 169c <strchr+0x78> 167c: eaffffff b 1680 <strchr+0x5c> 1680: e59d000c ldr r0, [sp, #12] 1684: e2800001 add r0, r0, #1 1688: e58d000c str r0, [sp, #12] 168c: eaffffec b 1644 <strchr+0x20> 1690: e3a00000 mov r0, #0 1694: e58d0010 str r0, [sp, #16] 1698: eaffffff b 169c <strchr+0x78> 169c: e59d0010 ldr r0, [sp, #16] 16a0: e28dd014 add sp, sp, #20 16a4: e12fff1e bx lr 000016a8 <gets>: 16a8: e92d4800 push {fp, lr} 16ac: e1a0b00d mov fp, sp 16b0: e24dd020 sub sp, sp, #32 16b4: e1a02001 mov r2, r1 16b8: e1a03000 mov r3, r0 16bc: e50b0004 str r0, [fp, #-4] 16c0: e50b1008 str r1, [fp, #-8] 16c4: e3a00000 mov r0, #0 16c8: e50b000c str r0, [fp, #-12] 16cc: e58d2008 str r2, [sp, #8] 16d0: e58d3004 str r3, [sp, #4] 16d4: eaffffff b 16d8 <gets+0x30> 16d8: e51b000c ldr r0, [fp, #-12] 16dc: e2800001 add r0, r0, #1 16e0: e51b1008 ldr r1, [fp, #-8] 16e4: e1500001 cmp r0, r1 16e8: aa00001a bge 1758 <gets+0xb0> 16ec: eaffffff b 16f0 <gets+0x48> 16f0: e3a00000 mov r0, #0 16f4: e28d100f add r1, sp, #15 16f8: e3a02001 mov r2, #1 16fc: eb0000ab bl 19b0 <read> 1700: e58d0010 str r0, [sp, #16] 1704: e59d0010 ldr r0, [sp, #16] 1708: e3500000 cmp r0, #0 170c: ca000001 bgt 1718 <gets+0x70> 1710: eaffffff b 1714 <gets+0x6c> 1714: ea00000f b 1758 <gets+0xb0> 1718: e5dd000f ldrb r0, [sp, #15] 171c: e51b1004 ldr r1, [fp, #-4] 1720: e51b200c ldr r2, [fp, #-12] 1724: e2823001 add r3, r2, #1 1728: e50b300c str r3, [fp, #-12] 172c: e7c10002 strb r0, [r1, r2] 1730: e5dd000f ldrb r0, [sp, #15] 1734: e350000a cmp r0, #10 1738: 0a000004 beq 1750 <gets+0xa8> 173c: eaffffff b 1740 <gets+0x98> 1740: e5dd000f ldrb r0, [sp, #15] 1744: e350000d cmp r0, #13 1748: 1a000001 bne 1754 <gets+0xac> 174c: eaffffff b 1750 <gets+0xa8> 1750: ea000000 b 1758 <gets+0xb0> 1754: eaffffdf b 16d8 <gets+0x30> 1758: e51b0004 ldr r0, [fp, #-4] 175c: e51b100c ldr r1, [fp, #-12] 1760: e3a02000 mov r2, #0 1764: e7c02001 strb r2, [r0, r1] 1768: e51b0004 ldr r0, [fp, #-4] 176c: e1a0d00b mov sp, fp 1770: e8bd8800 pop {fp, pc} 00001774 <stat>: 1774: e92d4800 push {fp, lr} 1778: e1a0b00d mov fp, sp 177c: e24dd020 sub sp, sp, #32 1780: e1a02001 mov r2, r1 1784: e1a03000 mov r3, r0 1788: e50b0008 str r0, [fp, #-8] 178c: e50b100c str r1, [fp, #-12] 1790: e51b0008 ldr r0, [fp, #-8] 1794: e3a01000 mov r1, #0 1798: e58d2008 str r2, [sp, #8] 179c: e58d3004 str r3, [sp, #4] 17a0: eb0000af bl 1a64 <open> 17a4: e58d0010 str r0, [sp, #16] 17a8: e59d0010 ldr r0, [sp, #16] 17ac: e3500000 cmp r0, #0 17b0: aa000003 bge 17c4 <stat+0x50> 17b4: eaffffff b 17b8 <stat+0x44> 17b8: e3e00000 mvn r0, #0 17bc: e50b0004 str r0, [fp, #-4] 17c0: ea000009 b 17ec <stat+0x78> 17c4: e59d0010 ldr r0, [sp, #16] 17c8: e51b100c ldr r1, [fp, #-12] 17cc: eb0000bf bl 1ad0 <fstat> 17d0: e58d000c str r0, [sp, #12] 17d4: e59d0010 ldr r0, [sp, #16] 17d8: eb000086 bl 19f8 <close> 17dc: e59d100c ldr r1, [sp, #12] 17e0: e50b1004 str r1, [fp, #-4] 17e4: e58d0000 str r0, [sp] 17e8: eaffffff b 17ec <stat+0x78> 17ec: e51b0004 ldr r0, [fp, #-4] 17f0: e1a0d00b mov sp, fp 17f4: e8bd8800 pop {fp, pc} 000017f8 <atoi>: 17f8: e24dd010 sub sp, sp, #16 17fc: e1a01000 mov r1, r0 1800: e58d000c str r0, [sp, #12] 1804: e3a00000 mov r0, #0 1808: e58d0008 str r0, [sp, #8] 180c: e58d1004 str r1, [sp, #4] 1810: eaffffff b 1814 <atoi+0x1c> 1814: e59d000c ldr r0, [sp, #12] 1818: e5d00000 ldrb r0, [r0] 181c: e3a01000 mov r1, #0 1820: e3500030 cmp r0, #48 ; 0x30 1824: e58d1000 str r1, [sp] 1828: ba000007 blt 184c <atoi+0x54> 182c: eaffffff b 1830 <atoi+0x38> 1830: e59d000c ldr r0, [sp, #12] 1834: e5d00000 ldrb r0, [r0] 1838: e3a01000 mov r1, #0 183c: e350003a cmp r0, #58 ; 0x3a 1840: b3a01001 movlt r1, #1 1844: e58d1000 str r1, [sp] 1848: eaffffff b 184c <atoi+0x54> 184c: e59d0000 ldr r0, [sp] 1850: e3100001 tst r0, #1 1854: 0a00000a beq 1884 <atoi+0x8c> 1858: eaffffff b 185c <atoi+0x64> 185c: e59d0008 ldr r0, [sp, #8] 1860: e0800100 add r0, r0, r0, lsl #2 1864: e59d100c ldr r1, [sp, #12] 1868: e2812001 add r2, r1, #1 186c: e58d200c str r2, [sp, #12] 1870: e5d11000 ldrb r1, [r1] 1874: e0810080 add r0, r1, r0, lsl #1 1878: e2400030 sub r0, r0, #48 ; 0x30 187c: e58d0008 str r0, [sp, #8] 1880: eaffffe3 b 1814 <atoi+0x1c> 1884: e59d0008 ldr r0, [sp, #8] 1888: e28dd010 add sp, sp, #16 188c: e12fff1e bx lr 00001890 <memmove>: 1890: e92d4800 push {fp, lr} 1894: e1a0b00d mov fp, sp 1898: e24dd020 sub sp, sp, #32 189c: e1a03002 mov r3, r2 18a0: e1a0c001 mov ip, r1 18a4: e1a0e000 mov lr, r0 18a8: e50b0004 str r0, [fp, #-4] 18ac: e50b1008 str r1, [fp, #-8] 18b0: e50b200c str r2, [fp, #-12] 18b4: e51b0004 ldr r0, [fp, #-4] 18b8: e58d0010 str r0, [sp, #16] 18bc: e51b0008 ldr r0, [fp, #-8] 18c0: e58d000c str r0, [sp, #12] 18c4: e58d3008 str r3, [sp, #8] 18c8: e58dc004 str ip, [sp, #4] 18cc: e58de000 str lr, [sp] 18d0: eaffffff b 18d4 <memmove+0x44> 18d4: e51b000c ldr r0, [fp, #-12] 18d8: e2401001 sub r1, r0, #1 18dc: e50b100c str r1, [fp, #-12] 18e0: e3500001 cmp r0, #1 18e4: ba000009 blt 1910 <memmove+0x80> 18e8: eaffffff b 18ec <memmove+0x5c> 18ec: e59d000c ldr r0, [sp, #12] 18f0: e2801001 add r1, r0, #1 18f4: e58d100c str r1, [sp, #12] 18f8: e5d00000 ldrb r0, [r0] 18fc: e59d1010 ldr r1, [sp, #16] 1900: e2812001 add r2, r1, #1 1904: e58d2010 str r2, [sp, #16] 1908: e5c10000 strb r0, [r1] 190c: eafffff0 b 18d4 <memmove+0x44> 1910: e51b0004 ldr r0, [fp, #-4] 1914: e1a0d00b mov sp, fp 1918: e8bd8800 pop {fp, pc} 0000191c <raise>: return vdst; } void raise() {} 191c: e12fff1e bx lr 00001920 <fork>: 1920: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1924: e1a04003 mov r4, r3 1928: e1a03002 mov r3, r2 192c: e1a02001 mov r2, r1 1930: e1a01000 mov r1, r0 1934: e3a00001 mov r0, #1 1938: ef000000 svc 0x00000000 193c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1940: e12fff1e bx lr 00001944 <exit>: 1944: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1948: e1a04003 mov r4, r3 194c: e1a03002 mov r3, r2 1950: e1a02001 mov r2, r1 1954: e1a01000 mov r1, r0 1958: e3a00002 mov r0, #2 195c: ef000000 svc 0x00000000 1960: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1964: e12fff1e bx lr 00001968 <wait>: 1968: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 196c: e1a04003 mov r4, r3 1970: e1a03002 mov r3, r2 1974: e1a02001 mov r2, r1 1978: e1a01000 mov r1, r0 197c: e3a00003 mov r0, #3 1980: ef000000 svc 0x00000000 1984: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1988: e12fff1e bx lr 0000198c <pipe>: 198c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1990: e1a04003 mov r4, r3 1994: e1a03002 mov r3, r2 1998: e1a02001 mov r2, r1 199c: e1a01000 mov r1, r0 19a0: e3a00004 mov r0, #4 19a4: ef000000 svc 0x00000000 19a8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 19ac: e12fff1e bx lr 000019b0 <read>: 19b0: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 19b4: e1a04003 mov r4, r3 19b8: e1a03002 mov r3, r2 19bc: e1a02001 mov r2, r1 19c0: e1a01000 mov r1, r0 19c4: e3a00005 mov r0, #5 19c8: ef000000 svc 0x00000000 19cc: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 19d0: e12fff1e bx lr 000019d4 <write>: 19d4: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 19d8: e1a04003 mov r4, r3 19dc: e1a03002 mov r3, r2 19e0: e1a02001 mov r2, r1 19e4: e1a01000 mov r1, r0 19e8: e3a00010 mov r0, #16 19ec: ef000000 svc 0x00000000 19f0: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 19f4: e12fff1e bx lr 000019f8 <close>: 19f8: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 19fc: e1a04003 mov r4, r3 1a00: e1a03002 mov r3, r2 1a04: e1a02001 mov r2, r1 1a08: e1a01000 mov r1, r0 1a0c: e3a00015 mov r0, #21 1a10: ef000000 svc 0x00000000 1a14: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1a18: e12fff1e bx lr 00001a1c <kill>: 1a1c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1a20: e1a04003 mov r4, r3 1a24: e1a03002 mov r3, r2 1a28: e1a02001 mov r2, r1 1a2c: e1a01000 mov r1, r0 1a30: e3a00006 mov r0, #6 1a34: ef000000 svc 0x00000000 1a38: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1a3c: e12fff1e bx lr 00001a40 <exec>: 1a40: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1a44: e1a04003 mov r4, r3 1a48: e1a03002 mov r3, r2 1a4c: e1a02001 mov r2, r1 1a50: e1a01000 mov r1, r0 1a54: e3a00007 mov r0, #7 1a58: ef000000 svc 0x00000000 1a5c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1a60: e12fff1e bx lr 00001a64 <open>: 1a64: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1a68: e1a04003 mov r4, r3 1a6c: e1a03002 mov r3, r2 1a70: e1a02001 mov r2, r1 1a74: e1a01000 mov r1, r0 1a78: e3a0000f mov r0, #15 1a7c: ef000000 svc 0x00000000 1a80: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1a84: e12fff1e bx lr 00001a88 <mknod>: 1a88: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1a8c: e1a04003 mov r4, r3 1a90: e1a03002 mov r3, r2 1a94: e1a02001 mov r2, r1 1a98: e1a01000 mov r1, r0 1a9c: e3a00011 mov r0, #17 1aa0: ef000000 svc 0x00000000 1aa4: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1aa8: e12fff1e bx lr 00001aac <unlink>: 1aac: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1ab0: e1a04003 mov r4, r3 1ab4: e1a03002 mov r3, r2 1ab8: e1a02001 mov r2, r1 1abc: e1a01000 mov r1, r0 1ac0: e3a00012 mov r0, #18 1ac4: ef000000 svc 0x00000000 1ac8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1acc: e12fff1e bx lr 00001ad0 <fstat>: 1ad0: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1ad4: e1a04003 mov r4, r3 1ad8: e1a03002 mov r3, r2 1adc: e1a02001 mov r2, r1 1ae0: e1a01000 mov r1, r0 1ae4: e3a00008 mov r0, #8 1ae8: ef000000 svc 0x00000000 1aec: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1af0: e12fff1e bx lr 00001af4 <link>: 1af4: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1af8: e1a04003 mov r4, r3 1afc: e1a03002 mov r3, r2 1b00: e1a02001 mov r2, r1 1b04: e1a01000 mov r1, r0 1b08: e3a00013 mov r0, #19 1b0c: ef000000 svc 0x00000000 1b10: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1b14: e12fff1e bx lr 00001b18 <mkdir>: 1b18: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1b1c: e1a04003 mov r4, r3 1b20: e1a03002 mov r3, r2 1b24: e1a02001 mov r2, r1 1b28: e1a01000 mov r1, r0 1b2c: e3a00014 mov r0, #20 1b30: ef000000 svc 0x00000000 1b34: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1b38: e12fff1e bx lr 00001b3c <chdir>: 1b3c: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1b40: e1a04003 mov r4, r3 1b44: e1a03002 mov r3, r2 1b48: e1a02001 mov r2, r1 1b4c: e1a01000 mov r1, r0 1b50: e3a00009 mov r0, #9 1b54: ef000000 svc 0x00000000 1b58: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1b5c: e12fff1e bx lr 00001b60 <dup>: 1b60: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1b64: e1a04003 mov r4, r3 1b68: e1a03002 mov r3, r2 1b6c: e1a02001 mov r2, r1 1b70: e1a01000 mov r1, r0 1b74: e3a0000a mov r0, #10 1b78: ef000000 svc 0x00000000 1b7c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1b80: e12fff1e bx lr 00001b84 <getpid>: 1b84: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1b88: e1a04003 mov r4, r3 1b8c: e1a03002 mov r3, r2 1b90: e1a02001 mov r2, r1 1b94: e1a01000 mov r1, r0 1b98: e3a0000b mov r0, #11 1b9c: ef000000 svc 0x00000000 1ba0: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1ba4: e12fff1e bx lr 00001ba8 <sbrk>: 1ba8: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1bac: e1a04003 mov r4, r3 1bb0: e1a03002 mov r3, r2 1bb4: e1a02001 mov r2, r1 1bb8: e1a01000 mov r1, r0 1bbc: e3a0000c mov r0, #12 1bc0: ef000000 svc 0x00000000 1bc4: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1bc8: e12fff1e bx lr 00001bcc <sleep>: 1bcc: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1bd0: e1a04003 mov r4, r3 1bd4: e1a03002 mov r3, r2 1bd8: e1a02001 mov r2, r1 1bdc: e1a01000 mov r1, r0 1be0: e3a0000d mov r0, #13 1be4: ef000000 svc 0x00000000 1be8: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1bec: e12fff1e bx lr 00001bf0 <uptime>: 1bf0: e52d4004 push {r4} ; (str r4, [sp, #-4]!) 1bf4: e1a04003 mov r4, r3 1bf8: e1a03002 mov r3, r2 1bfc: e1a02001 mov r2, r1 1c00: e1a01000 mov r1, r0 1c04: e3a0000e mov r0, #14 1c08: ef000000 svc 0x00000000 1c0c: e49d4004 pop {r4} ; (ldr r4, [sp], #4) 1c10: e12fff1e bx lr 00001c14 <printf>: } // Print to the given fd. Only understands %d, %x, %p, %s. void printf(int fd, char *fmt, ...) { 1c14: e92d4800 push {fp, lr} 1c18: e1a0b00d mov fp, sp 1c1c: e24dd028 sub sp, sp, #40 ; 0x28 1c20: e1a02001 mov r2, r1 1c24: e1a03000 mov r3, r0 1c28: e50b0004 str r0, [fp, #-4] 1c2c: e50b1008 str r1, [fp, #-8] 1c30: e3a00000 mov r0, #0 1c34: e58d0010 str r0, [sp, #16] 1c38: e24b1008 sub r1, fp, #8 1c3c: e2811004 add r1, r1, #4 1c40: e58d100c str r1, [sp, #12] 1c44: e58d0014 str r0, [sp, #20] 1c48: e58d2008 str r2, [sp, #8] 1c4c: e58d3004 str r3, [sp, #4] 1c50: eaffffff b 1c54 <printf+0x40> 1c54: e51b0008 ldr r0, [fp, #-8] 1c58: e59d1014 ldr r1, [sp, #20] 1c5c: e7d00001 ldrb r0, [r0, r1] 1c60: e3500000 cmp r0, #0 1c64: 0a00007e beq 1e64 <printf+0x250> 1c68: eaffffff b 1c6c <printf+0x58> 1c6c: e51b0008 ldr r0, [fp, #-8] 1c70: e59d1014 ldr r1, [sp, #20] 1c74: e7d00001 ldrb r0, [r0, r1] 1c78: e50b0010 str r0, [fp, #-16] 1c7c: e59d0010 ldr r0, [sp, #16] 1c80: e3500000 cmp r0, #0 1c84: 1a00000c bne 1cbc <printf+0xa8> 1c88: eaffffff b 1c8c <printf+0x78> 1c8c: e51b0010 ldr r0, [fp, #-16] 1c90: e3500025 cmp r0, #37 ; 0x25 1c94: 1a000003 bne 1ca8 <printf+0x94> 1c98: eaffffff b 1c9c <printf+0x88> 1c9c: e3a00025 mov r0, #37 ; 0x25 1ca0: e58d0010 str r0, [sp, #16] 1ca4: ea000003 b 1cb8 <printf+0xa4> 1ca8: e51b0004 ldr r0, [fp, #-4] 1cac: e55b1010 ldrb r1, [fp, #-16] 1cb0: eb00006e bl 1e70 <putc> 1cb4: eaffffff b 1cb8 <printf+0xa4> 1cb8: ea000064 b 1e50 <printf+0x23c> 1cbc: e59d0010 ldr r0, [sp, #16] 1cc0: e3500025 cmp r0, #37 ; 0x25 1cc4: 1a000060 bne 1e4c <printf+0x238> 1cc8: eaffffff b 1ccc <printf+0xb8> 1ccc: e51b0010 ldr r0, [fp, #-16] 1cd0: e3500064 cmp r0, #100 ; 0x64 1cd4: 1a00000a bne 1d04 <printf+0xf0> 1cd8: eaffffff b 1cdc <printf+0xc8> 1cdc: e51b0004 ldr r0, [fp, #-4] 1ce0: e59d100c ldr r1, [sp, #12] 1ce4: e5911000 ldr r1, [r1] 1ce8: e3a0200a mov r2, #10 1cec: e3a03001 mov r3, #1 1cf0: eb00006f bl 1eb4 <printint> 1cf4: e59d000c ldr r0, [sp, #12] 1cf8: e2800004 add r0, r0, #4 1cfc: e58d000c str r0, [sp, #12] 1d00: ea00004e b 1e40 <printf+0x22c> 1d04: e51b0010 ldr r0, [fp, #-16] 1d08: e3500078 cmp r0, #120 ; 0x78 1d0c: 0a000004 beq 1d24 <printf+0x110> 1d10: eaffffff b 1d14 <printf+0x100> 1d14: e51b0010 ldr r0, [fp, #-16] 1d18: e3500070 cmp r0, #112 ; 0x70 1d1c: 1a00000a bne 1d4c <printf+0x138> 1d20: eaffffff b 1d24 <printf+0x110> 1d24: e51b0004 ldr r0, [fp, #-4] 1d28: e59d100c ldr r1, [sp, #12] 1d2c: e5911000 ldr r1, [r1] 1d30: e3a02010 mov r2, #16 1d34: e3a03000 mov r3, #0 1d38: eb00005d bl 1eb4 <printint> 1d3c: e59d000c ldr r0, [sp, #12] 1d40: e2800004 add r0, r0, #4 1d44: e58d000c str r0, [sp, #12] 1d48: ea00003b b 1e3c <printf+0x228> 1d4c: e51b0010 ldr r0, [fp, #-16] 1d50: e3500073 cmp r0, #115 ; 0x73 1d54: 1a00001a bne 1dc4 <printf+0x1b0> 1d58: eaffffff b 1d5c <printf+0x148> 1d5c: e59d000c ldr r0, [sp, #12] 1d60: e4901004 ldr r1, [r0], #4 1d64: e50b100c str r1, [fp, #-12] 1d68: e58d000c str r0, [sp, #12] 1d6c: e51b000c ldr r0, [fp, #-12] 1d70: e3500000 cmp r0, #0 1d74: 1a000003 bne 1d88 <printf+0x174> 1d78: eaffffff b 1d7c <printf+0x168> 1d7c: e59f00e8 ldr r0, [pc, #232] ; 1e6c <printf+0x258> 1d80: e50b000c str r0, [fp, #-12] 1d84: eaffffff b 1d88 <printf+0x174> 1d88: eaffffff b 1d8c <printf+0x178> 1d8c: e51b000c ldr r0, [fp, #-12] 1d90: e5d00000 ldrb r0, [r0] 1d94: e3500000 cmp r0, #0 1d98: 0a000008 beq 1dc0 <printf+0x1ac> 1d9c: eaffffff b 1da0 <printf+0x18c> 1da0: e51b0004 ldr r0, [fp, #-4] 1da4: e51b100c ldr r1, [fp, #-12] 1da8: e5d11000 ldrb r1, [r1] 1dac: eb00002f bl 1e70 <putc> 1db0: e51b000c ldr r0, [fp, #-12] 1db4: e2800001 add r0, r0, #1 1db8: e50b000c str r0, [fp, #-12] 1dbc: eafffff2 b 1d8c <printf+0x178> 1dc0: ea00001c b 1e38 <printf+0x224> 1dc4: e51b0010 ldr r0, [fp, #-16] 1dc8: e3500063 cmp r0, #99 ; 0x63 1dcc: 1a000008 bne 1df4 <printf+0x1e0> 1dd0: eaffffff b 1dd4 <printf+0x1c0> 1dd4: e51b0004 ldr r0, [fp, #-4] 1dd8: e59d100c ldr r1, [sp, #12] 1ddc: e5d11000 ldrb r1, [r1] 1de0: eb000022 bl 1e70 <putc> 1de4: e59d000c ldr r0, [sp, #12] 1de8: e2800004 add r0, r0, #4 1dec: e58d000c str r0, [sp, #12] 1df0: ea00000f b 1e34 <printf+0x220> 1df4: e51b0010 ldr r0, [fp, #-16] 1df8: e3500025 cmp r0, #37 ; 0x25 1dfc: 1a000004 bne 1e14 <printf+0x200> 1e00: eaffffff b 1e04 <printf+0x1f0> 1e04: e51b0004 ldr r0, [fp, #-4] 1e08: e55b1010 ldrb r1, [fp, #-16] 1e0c: eb000017 bl 1e70 <putc> 1e10: ea000006 b 1e30 <printf+0x21c> 1e14: e51b0004 ldr r0, [fp, #-4] 1e18: e3a01025 mov r1, #37 ; 0x25 1e1c: eb000013 bl 1e70 <putc> 1e20: e51b0004 ldr r0, [fp, #-4] 1e24: e55b1010 ldrb r1, [fp, #-16] 1e28: eb000010 bl 1e70 <putc> 1e2c: eaffffff b 1e30 <printf+0x21c> 1e30: eaffffff b 1e34 <printf+0x220> 1e34: eaffffff b 1e38 <printf+0x224> 1e38: eaffffff b 1e3c <printf+0x228> 1e3c: eaffffff b 1e40 <printf+0x22c> 1e40: e3a00000 mov r0, #0 1e44: e58d0010 str r0, [sp, #16] 1e48: eaffffff b 1e4c <printf+0x238> 1e4c: eaffffff b 1e50 <printf+0x23c> 1e50: eaffffff b 1e54 <printf+0x240> 1e54: e59d0014 ldr r0, [sp, #20] 1e58: e2800001 add r0, r0, #1 1e5c: e58d0014 str r0, [sp, #20] 1e60: eaffff7b b 1c54 <printf+0x40> 1e64: e1a0d00b mov sp, fp 1e68: e8bd8800 pop {fp, pc} 1e6c: 00002593 .word 0x00002593 00001e70 <putc>: { 1e70: e92d4800 push {fp, lr} 1e74: e1a0b00d mov fp, sp 1e78: e24dd018 sub sp, sp, #24 1e7c: e1a02001 mov r2, r1 1e80: e1a03000 mov r3, r0 1e84: e50b0004 str r0, [fp, #-4] 1e88: e54b1005 strb r1, [fp, #-5] write(fd, &c, 1); 1e8c: e51b0004 ldr r0, [fp, #-4] 1e90: e24b1005 sub r1, fp, #5 1e94: e3a0c001 mov ip, #1 1e98: e58d200c str r2, [sp, #12] 1e9c: e1a0200c mov r2, ip 1ea0: e58d3008 str r3, [sp, #8] 1ea4: ebfffeca bl 19d4 <write> } 1ea8: e58d0004 str r0, [sp, #4] 1eac: e1a0d00b mov sp, fp 1eb0: e8bd8800 pop {fp, pc} 00001eb4 <printint>: { 1eb4: e92d4830 push {r4, r5, fp, lr} 1eb8: e28db008 add fp, sp, #8 1ebc: e24dd040 sub sp, sp, #64 ; 0x40 1ec0: e1a0c003 mov ip, r3 1ec4: e1a0e002 mov lr, r2 1ec8: e1a04001 mov r4, r1 1ecc: e1a05000 mov r5, r0 1ed0: e50b000c str r0, [fp, #-12] 1ed4: e50b1010 str r1, [fp, #-16] 1ed8: e50b2014 str r2, [fp, #-20] ; 0xffffffec 1edc: e50b3018 str r3, [fp, #-24] ; 0xffffffe8 1ee0: e3a00000 mov r0, #0 1ee4: e58d0018 str r0, [sp, #24] 1ee8: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8 1eec: e3500000 cmp r0, #0 1ef0: e58dc010 str ip, [sp, #16] 1ef4: e58de00c str lr, [sp, #12] 1ef8: e58d4008 str r4, [sp, #8] 1efc: e58d5004 str r5, [sp, #4] 1f00: 0a00000a beq 1f30 <printint+0x7c> 1f04: eaffffff b 1f08 <printint+0x54> 1f08: e51b0010 ldr r0, [fp, #-16] 1f0c: e3500000 cmp r0, #0 1f10: aa000006 bge 1f30 <printint+0x7c> 1f14: eaffffff b 1f18 <printint+0x64> 1f18: e3a00001 mov r0, #1 1f1c: e58d0018 str r0, [sp, #24] 1f20: e51b0010 ldr r0, [fp, #-16] 1f24: e2600000 rsb r0, r0, #0 1f28: e58d0014 str r0, [sp, #20] 1f2c: ea000002 b 1f3c <printint+0x88> 1f30: e51b0010 ldr r0, [fp, #-16] 1f34: e58d0014 str r0, [sp, #20] 1f38: eaffffff b 1f3c <printint+0x88> 1f3c: e3a00000 mov r0, #0 1f40: e58d001c str r0, [sp, #28] 1f44: eaffffff b 1f48 <printint+0x94> 1f48: e59d0014 ldr r0, [sp, #20] 1f4c: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 1f50: eb000158 bl 24b8 <__aeabi_uidivmod> 1f54: e59fe0a0 ldr lr, [pc, #160] ; 1ffc <printint+0x148> 1f58: e7de1001 ldrb r1, [lr, r1] 1f5c: e59de01c ldr lr, [sp, #28] 1f60: e28e2001 add r2, lr, #1 1f64: e58d201c str r2, [sp, #28] 1f68: e28d2020 add r2, sp, #32 1f6c: e7c2100e strb r1, [r2, lr] 1f70: e58d0000 str r0, [sp] 1f74: eaffffff b 1f78 <printint+0xc4> 1f78: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec 1f7c: e59d0014 ldr r0, [sp, #20] 1f80: eb00010f bl 23c4 <__aeabi_uidiv> 1f84: e58d0014 str r0, [sp, #20] 1f88: e3500000 cmp r0, #0 1f8c: 1affffed bne 1f48 <printint+0x94> 1f90: eaffffff b 1f94 <printint+0xe0> 1f94: e59d0018 ldr r0, [sp, #24] 1f98: e3500000 cmp r0, #0 1f9c: 0a000007 beq 1fc0 <printint+0x10c> 1fa0: eaffffff b 1fa4 <printint+0xf0> 1fa4: e59d001c ldr r0, [sp, #28] 1fa8: e2801001 add r1, r0, #1 1fac: e58d101c str r1, [sp, #28] 1fb0: e28d1020 add r1, sp, #32 1fb4: e3a0202d mov r2, #45 ; 0x2d 1fb8: e7c12000 strb r2, [r1, r0] 1fbc: eaffffff b 1fc0 <printint+0x10c> 1fc0: eaffffff b 1fc4 <printint+0x110> 1fc4: e59d001c ldr r0, [sp, #28] 1fc8: e2400001 sub r0, r0, #1 1fcc: e58d001c str r0, [sp, #28] 1fd0: e3500000 cmp r0, #0 1fd4: ba000006 blt 1ff4 <printint+0x140> 1fd8: eaffffff b 1fdc <printint+0x128> 1fdc: e51b000c ldr r0, [fp, #-12] 1fe0: e59d101c ldr r1, [sp, #28] 1fe4: e28d2020 add r2, sp, #32 1fe8: e7d21001 ldrb r1, [r2, r1] 1fec: ebffff9f bl 1e70 <putc> 1ff0: eafffff3 b 1fc4 <printint+0x110> 1ff4: e24bd008 sub sp, fp, #8 1ff8: e8bd8830 pop {r4, r5, fp, pc} 1ffc: 000025b2 .word 0x000025b2 00002000 <free>: static Header base; static Header *freep; void free(void *ap) { 2000: e24dd014 sub sp, sp, #20 2004: e1a01000 mov r1, r0 2008: e58d0010 str r0, [sp, #16] 200c: e59d0010 ldr r0, [sp, #16] 2010: e2400008 sub r0, r0, #8 2014: e58d000c str r0, [sp, #12] 2018: e59f0188 ldr r0, [pc, #392] ; 21a8 <free+0x1a8> 201c: e5900000 ldr r0, [r0] 2020: e58d0008 str r0, [sp, #8] 2024: e58d1004 str r1, [sp, #4] 2028: eaffffff b 202c <free+0x2c> 202c: e59d000c ldr r0, [sp, #12] 2030: e59d1008 ldr r1, [sp, #8] 2034: e3a02000 mov r2, #0 2038: e1500001 cmp r0, r1 203c: e58d2000 str r2, [sp] 2040: 9a000008 bls 2068 <free+0x68> 2044: eaffffff b 2048 <free+0x48> 2048: e59d000c ldr r0, [sp, #12] 204c: e59d1008 ldr r1, [sp, #8] 2050: e5911000 ldr r1, [r1] 2054: e3a02000 mov r2, #0 2058: e1500001 cmp r0, r1 205c: 33a02001 movcc r2, #1 2060: e58d2000 str r2, [sp] 2064: eaffffff b 2068 <free+0x68> 2068: e59d0000 ldr r0, [sp] 206c: e1e00000 mvn r0, r0 2070: e3100001 tst r0, #1 2074: 0a000016 beq 20d4 <free+0xd4> 2078: eaffffff b 207c <free+0x7c> 207c: e59d0008 ldr r0, [sp, #8] 2080: e5901000 ldr r1, [r0] 2084: e1500001 cmp r0, r1 2088: 3a00000c bcc 20c0 <free+0xc0> 208c: eaffffff b 2090 <free+0x90> 2090: e59d000c ldr r0, [sp, #12] 2094: e59d1008 ldr r1, [sp, #8] 2098: e1500001 cmp r0, r1 209c: 8a000006 bhi 20bc <free+0xbc> 20a0: eaffffff b 20a4 <free+0xa4> 20a4: e59d000c ldr r0, [sp, #12] 20a8: e59d1008 ldr r1, [sp, #8] 20ac: e5911000 ldr r1, [r1] 20b0: e1500001 cmp r0, r1 20b4: 2a000001 bcs 20c0 <free+0xc0> 20b8: eaffffff b 20bc <free+0xbc> 20bc: ea000004 b 20d4 <free+0xd4> 20c0: eaffffff b 20c4 <free+0xc4> 20c4: e59d0008 ldr r0, [sp, #8] 20c8: e5900000 ldr r0, [r0] 20cc: e58d0008 str r0, [sp, #8] 20d0: eaffffd5 b 202c <free+0x2c> 20d4: e59d000c ldr r0, [sp, #12] 20d8: e5901004 ldr r1, [r0, #4] 20dc: e0800181 add r0, r0, r1, lsl #3 20e0: e59d1008 ldr r1, [sp, #8] 20e4: e5911000 ldr r1, [r1] 20e8: e1500001 cmp r0, r1 20ec: 1a00000d bne 2128 <free+0x128> 20f0: eaffffff b 20f4 <free+0xf4> 20f4: e59d0008 ldr r0, [sp, #8] 20f8: e5900000 ldr r0, [r0] 20fc: e5900004 ldr r0, [r0, #4] 2100: e59d100c ldr r1, [sp, #12] 2104: e5912004 ldr r2, [r1, #4] 2108: e0820000 add r0, r2, r0 210c: e5810004 str r0, [r1, #4] 2110: e59d0008 ldr r0, [sp, #8] 2114: e5900000 ldr r0, [r0] 2118: e5900000 ldr r0, [r0] 211c: e59d100c ldr r1, [sp, #12] 2120: e5810000 str r0, [r1] 2124: ea000004 b 213c <free+0x13c> 2128: e59d0008 ldr r0, [sp, #8] 212c: e5900000 ldr r0, [r0] 2130: e59d100c ldr r1, [sp, #12] 2134: e5810000 str r0, [r1] 2138: eaffffff b 213c <free+0x13c> 213c: e59d0008 ldr r0, [sp, #8] 2140: e5901004 ldr r1, [r0, #4] 2144: e0800181 add r0, r0, r1, lsl #3 2148: e59d100c ldr r1, [sp, #12] 214c: e1500001 cmp r0, r1 2150: 1a00000b bne 2184 <free+0x184> 2154: eaffffff b 2158 <free+0x158> 2158: e59d000c ldr r0, [sp, #12] 215c: e5900004 ldr r0, [r0, #4] 2160: e59d1008 ldr r1, [sp, #8] 2164: e5912004 ldr r2, [r1, #4] 2168: e0820000 add r0, r2, r0 216c: e5810004 str r0, [r1, #4] 2170: e59d000c ldr r0, [sp, #12] 2174: e5900000 ldr r0, [r0] 2178: e59d1008 ldr r1, [sp, #8] 217c: e5810000 str r0, [r1] 2180: ea000003 b 2194 <free+0x194> 2184: e59d000c ldr r0, [sp, #12] 2188: e59d1008 ldr r1, [sp, #8] 218c: e5810000 str r0, [r1] 2190: eaffffff b 2194 <free+0x194> 2194: e59d0008 ldr r0, [sp, #8] 2198: e59f1008 ldr r1, [pc, #8] ; 21a8 <free+0x1a8> 219c: e5810000 str r0, [r1] 21a0: e28dd014 add sp, sp, #20 21a4: e12fff1e bx lr 21a8: 00002628 .word 0x00002628 000021ac <malloc>: 21ac: e92d4800 push {fp, lr} 21b0: e1a0b00d mov fp, sp 21b4: e24dd018 sub sp, sp, #24 21b8: e1a01000 mov r1, r0 21bc: e50b0008 str r0, [fp, #-8] 21c0: e51b0008 ldr r0, [fp, #-8] 21c4: e2800007 add r0, r0, #7 21c8: e3a02001 mov r2, #1 21cc: e08201a0 add r0, r2, r0, lsr #3 21d0: e58d0004 str r0, [sp, #4] 21d4: e59f013c ldr r0, [pc, #316] ; 2318 <malloc+0x16c> 21d8: e5900000 ldr r0, [r0] 21dc: e58d0008 str r0, [sp, #8] 21e0: e3500000 cmp r0, #0 21e4: e58d1000 str r1, [sp] 21e8: 1a000008 bne 2210 <malloc+0x64> 21ec: eaffffff b 21f0 <malloc+0x44> 21f0: e59f0124 ldr r0, [pc, #292] ; 231c <malloc+0x170> 21f4: e58d0008 str r0, [sp, #8] 21f8: e59f1118 ldr r1, [pc, #280] ; 2318 <malloc+0x16c> 21fc: e5810000 str r0, [r1] 2200: e5800000 str r0, [r0] 2204: e3a01000 mov r1, #0 2208: e5801004 str r1, [r0, #4] 220c: eaffffff b 2210 <malloc+0x64> 2210: e59d0008 ldr r0, [sp, #8] 2214: e5900000 ldr r0, [r0] 2218: e58d000c str r0, [sp, #12] 221c: eaffffff b 2220 <malloc+0x74> 2220: e59d000c ldr r0, [sp, #12] 2224: e5900004 ldr r0, [r0, #4] 2228: e59d1004 ldr r1, [sp, #4] 222c: e1500001 cmp r0, r1 2230: 3a00001f bcc 22b4 <malloc+0x108> 2234: eaffffff b 2238 <malloc+0x8c> 2238: e59d000c ldr r0, [sp, #12] 223c: e5900004 ldr r0, [r0, #4] 2240: e59d1004 ldr r1, [sp, #4] 2244: e1500001 cmp r0, r1 2248: 1a000005 bne 2264 <malloc+0xb8> 224c: eaffffff b 2250 <malloc+0xa4> 2250: e59d000c ldr r0, [sp, #12] 2254: e5900000 ldr r0, [r0] 2258: e59d1008 ldr r1, [sp, #8] 225c: e5810000 str r0, [r1] 2260: ea00000c b 2298 <malloc+0xec> 2264: e59d0004 ldr r0, [sp, #4] 2268: e59d100c ldr r1, [sp, #12] 226c: e5912004 ldr r2, [r1, #4] 2270: e0420000 sub r0, r2, r0 2274: e5810004 str r0, [r1, #4] 2278: e59d000c ldr r0, [sp, #12] 227c: e5901004 ldr r1, [r0, #4] 2280: e0800181 add r0, r0, r1, lsl #3 2284: e58d000c str r0, [sp, #12] 2288: e59d0004 ldr r0, [sp, #4] 228c: e59d100c ldr r1, [sp, #12] 2290: e5810004 str r0, [r1, #4] 2294: eaffffff b 2298 <malloc+0xec> 2298: e59d0008 ldr r0, [sp, #8] 229c: e59f1074 ldr r1, [pc, #116] ; 2318 <malloc+0x16c> 22a0: e5810000 str r0, [r1] 22a4: e59d000c ldr r0, [sp, #12] 22a8: e2800008 add r0, r0, #8 22ac: e50b0004 str r0, [fp, #-4] 22b0: ea000015 b 230c <malloc+0x160> 22b4: e59d000c ldr r0, [sp, #12] 22b8: e59f1058 ldr r1, [pc, #88] ; 2318 <malloc+0x16c> 22bc: e5911000 ldr r1, [r1] 22c0: e1500001 cmp r0, r1 22c4: 1a00000a bne 22f4 <malloc+0x148> 22c8: eaffffff b 22cc <malloc+0x120> 22cc: e59d0004 ldr r0, [sp, #4] 22d0: eb000012 bl 2320 <morecore> 22d4: e58d000c str r0, [sp, #12] 22d8: e3500000 cmp r0, #0 22dc: 1a000003 bne 22f0 <malloc+0x144> 22e0: eaffffff b 22e4 <malloc+0x138> 22e4: e3a00000 mov r0, #0 22e8: e50b0004 str r0, [fp, #-4] 22ec: ea000006 b 230c <malloc+0x160> 22f0: eaffffff b 22f4 <malloc+0x148> 22f4: eaffffff b 22f8 <malloc+0x14c> 22f8: e59d000c ldr r0, [sp, #12] 22fc: e58d0008 str r0, [sp, #8] 2300: e5900000 ldr r0, [r0] 2304: e58d000c str r0, [sp, #12] 2308: eaffffc4 b 2220 <malloc+0x74> 230c: e51b0004 ldr r0, [fp, #-4] 2310: e1a0d00b mov sp, fp 2314: e8bd8800 pop {fp, pc} 2318: 00002628 .word 0x00002628 231c: 0000262c .word 0x0000262c 00002320 <morecore>: freep = p; } static Header* morecore(uint nu) { 2320: e92d4800 push {fp, lr} 2324: e1a0b00d mov fp, sp 2328: e24dd018 sub sp, sp, #24 232c: e1a01000 mov r1, r0 2330: e50b0008 str r0, [fp, #-8] char *p; Header *hp; if(nu < 4096) 2334: e51b0008 ldr r0, [fp, #-8] 2338: e3a02000 mov r2, #0 233c: e1520620 cmp r2, r0, lsr #12 2340: e58d1004 str r1, [sp, #4] 2344: 1a000003 bne 2358 <morecore+0x38> 2348: eaffffff b 234c <morecore+0x2c> nu = 4096; 234c: e3a00a01 mov r0, #4096 ; 0x1000 2350: e50b0008 str r0, [fp, #-8] 2354: eaffffff b 2358 <morecore+0x38> p = sbrk(nu * sizeof(Header)); 2358: e51b0008 ldr r0, [fp, #-8] 235c: e1a00180 lsl r0, r0, #3 2360: ebfffe10 bl 1ba8 <sbrk> 2364: e58d000c str r0, [sp, #12] if(p == (char*)-1) 2368: e59d000c ldr r0, [sp, #12] 236c: e3700001 cmn r0, #1 2370: 1a000003 bne 2384 <morecore+0x64> 2374: eaffffff b 2378 <morecore+0x58> return 0; 2378: e3a00000 mov r0, #0 237c: e50b0004 str r0, [fp, #-4] 2380: ea00000b b 23b4 <morecore+0x94> hp = (Header*)p; 2384: e59d000c ldr r0, [sp, #12] 2388: e58d0008 str r0, [sp, #8] hp->s.size = nu; 238c: e51b0008 ldr r0, [fp, #-8] 2390: e59d1008 ldr r1, [sp, #8] 2394: e5810004 str r0, [r1, #4] free((void*)(hp + 1)); 2398: e59d0008 ldr r0, [sp, #8] 239c: e2800008 add r0, r0, #8 23a0: ebffff16 bl 2000 <free> return freep; 23a4: e59f0014 ldr r0, [pc, #20] ; 23c0 <morecore+0xa0> 23a8: e5900000 ldr r0, [r0] 23ac: e50b0004 str r0, [fp, #-4] 23b0: eaffffff b 23b4 <morecore+0x94> } 23b4: e51b0004 ldr r0, [fp, #-4] 23b8: e1a0d00b mov sp, fp 23bc: e8bd8800 pop {fp, pc} 23c0: 00002628 .word 0x00002628 000023c4 <__aeabi_uidiv>: 23c4: e2512001 subs r2, r1, #1 23c8: 012fff1e bxeq lr 23cc: 3a000036 bcc 24ac <__aeabi_uidiv+0xe8> 23d0: e1500001 cmp r0, r1 23d4: 9a000022 bls 2464 <__aeabi_uidiv+0xa0> 23d8: e1110002 tst r1, r2 23dc: 0a000023 beq 2470 <__aeabi_uidiv+0xac> 23e0: e311020e tst r1, #-536870912 ; 0xe0000000 23e4: 01a01181 lsleq r1, r1, #3 23e8: 03a03008 moveq r3, #8 23ec: 13a03001 movne r3, #1 23f0: e3510201 cmp r1, #268435456 ; 0x10000000 23f4: 31510000 cmpcc r1, r0 23f8: 31a01201 lslcc r1, r1, #4 23fc: 31a03203 lslcc r3, r3, #4 2400: 3afffffa bcc 23f0 <__aeabi_uidiv+0x2c> 2404: e3510102 cmp r1, #-2147483648 ; 0x80000000 2408: 31510000 cmpcc r1, r0 240c: 31a01081 lslcc r1, r1, #1 2410: 31a03083 lslcc r3, r3, #1 2414: 3afffffa bcc 2404 <__aeabi_uidiv+0x40> 2418: e3a02000 mov r2, #0 241c: e1500001 cmp r0, r1 2420: 20400001 subcs r0, r0, r1 2424: 21822003 orrcs r2, r2, r3 2428: e15000a1 cmp r0, r1, lsr #1 242c: 204000a1 subcs r0, r0, r1, lsr #1 2430: 218220a3 orrcs r2, r2, r3, lsr #1 2434: e1500121 cmp r0, r1, lsr #2 2438: 20400121 subcs r0, r0, r1, lsr #2 243c: 21822123 orrcs r2, r2, r3, lsr #2 2440: e15001a1 cmp r0, r1, lsr #3 2444: 204001a1 subcs r0, r0, r1, lsr #3 2448: 218221a3 orrcs r2, r2, r3, lsr #3 244c: e3500000 cmp r0, #0 2450: 11b03223 lsrsne r3, r3, #4 2454: 11a01221 lsrne r1, r1, #4 2458: 1affffef bne 241c <__aeabi_uidiv+0x58> 245c: e1a00002 mov r0, r2 2460: e12fff1e bx lr 2464: 03a00001 moveq r0, #1 2468: 13a00000 movne r0, #0 246c: e12fff1e bx lr 2470: e3510801 cmp r1, #65536 ; 0x10000 2474: 21a01821 lsrcs r1, r1, #16 2478: 23a02010 movcs r2, #16 247c: 33a02000 movcc r2, #0 2480: e3510c01 cmp r1, #256 ; 0x100 2484: 21a01421 lsrcs r1, r1, #8 2488: 22822008 addcs r2, r2, #8 248c: e3510010 cmp r1, #16 2490: 21a01221 lsrcs r1, r1, #4 2494: 22822004 addcs r2, r2, #4 2498: e3510004 cmp r1, #4 249c: 82822003 addhi r2, r2, #3 24a0: 908220a1 addls r2, r2, r1, lsr #1 24a4: e1a00230 lsr r0, r0, r2 24a8: e12fff1e bx lr 24ac: e3500000 cmp r0, #0 24b0: 13e00000 mvnne r0, #0 24b4: ea000007 b 24d8 <__aeabi_idiv0> 000024b8 <__aeabi_uidivmod>: 24b8: e3510000 cmp r1, #0 24bc: 0afffffa beq 24ac <__aeabi_uidiv+0xe8> 24c0: e92d4003 push {r0, r1, lr} 24c4: ebffffbe bl 23c4 <__aeabi_uidiv> 24c8: e8bd4006 pop {r1, r2, lr} 24cc: e0030092 mul r3, r2, r0 24d0: e0411003 sub r1, r1, r3 24d4: e12fff1e bx lr 000024d8 <__aeabi_idiv0>: 24d8: e12fff1e bx lr