comparison src/usr/init.asm @ 0:53676d1f5817 default tip

firsh commit
author tobaru
date Sun, 04 Feb 2018 17:54:49 +0900
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:53676d1f5817
1
2 _init: file format elf32-littlearm
3
4
5 Disassembly of section .text:
6
7 00000000 <main>:
8
9 char *argv[] = { "sh", 0 };
10
11 int
12 main(void)
13 {
14 0: e92d4800 push {fp, lr}
15 4: e1a0b00d mov fp, sp
16 8: e24dd038 sub sp, sp, #56 ; 0x38
17 c: e3a00000 mov r0, #0
18 10: e50b0004 str r0, [fp, #-4]
19 int pid, wpid;
20
21 if(open("console", O_RDWR) < 0){
22 14: e59f0138 ldr r0, [pc, #312] ; 154 <main+0x154>
23 18: e3a01002 mov r1, #2
24 1c: eb000214 bl 874 <open>
25 20: e3500000 cmp r0, #0
26 24: aa00000d bge 60 <main+0x60>
27 28: eaffffff b 2c <main+0x2c>
28 mknod("console", 1, 1);
29 2c: e59f0120 ldr r0, [pc, #288] ; 154 <main+0x154>
30 30: e3a01001 mov r1, #1
31 34: e50b0010 str r0, [fp, #-16]
32 38: e50b1014 str r1, [fp, #-20] ; 0xffffffec
33 3c: e51b2014 ldr r2, [fp, #-20] ; 0xffffffec
34 40: eb000214 bl 898 <mknod>
35 open("console", O_RDWR);
36 44: e3a01002 mov r1, #2
37 48: e51b2010 ldr r2, [fp, #-16]
38 4c: e50b0018 str r0, [fp, #-24] ; 0xffffffe8
39 50: e1a00002 mov r0, r2
40 54: eb000206 bl 874 <open>
41 }
42 58: e58d001c str r0, [sp, #28]
43 5c: eaffffff b 60 <main+0x60>
44 dup(0); // stdout
45 60: e3a00000 mov r0, #0
46 64: e58d0018 str r0, [sp, #24]
47 68: eb000240 bl 970 <dup>
48 dup(0); // stderr
49 6c: e59de018 ldr lr, [sp, #24]
50 70: e58d0014 str r0, [sp, #20]
51 74: e1a0000e mov r0, lr
52 78: eb00023c bl 970 <dup>
53
54 for(;;){
55 7c: e58d0010 str r0, [sp, #16]
56 80: eaffffff b 84 <main+0x84>
57 printf(1, "init: starting sh\n");
58 84: e59f10cc ldr r1, [pc, #204] ; 158 <main+0x158>
59 88: e3a00001 mov r0, #1
60 8c: eb000264 bl a24 <printf>
61 pid = fork();
62 90: eb0001a6 bl 730 <fork>
63 94: e50b0008 str r0, [fp, #-8]
64 if(pid < 0){
65 98: e51b0008 ldr r0, [fp, #-8]
66 9c: e3500000 cmp r0, #0
67 a0: aa000005 bge bc <main+0xbc>
68 a4: eaffffff b a8 <main+0xa8>
69 printf(1, "init: fork failed\n");
70 a8: e59f10bc ldr r1, [pc, #188] ; 16c <main+0x16c>
71 ac: e3a00001 mov r0, #1
72 b0: eb00025b bl a24 <printf>
73 exit();
74 b4: eb0001a6 bl 754 <exit>
75 b8: e58d000c str r0, [sp, #12]
76 }
77 if(pid == 0){
78 bc: e51b0008 ldr r0, [fp, #-8]
79 c0: e3500000 cmp r0, #0
80 c4: 1a00000a bne f4 <main+0xf4>
81 c8: eaffffff b cc <main+0xcc>
82 exec("sh", argv);
83 cc: e59f008c ldr r0, [pc, #140] ; 160 <main+0x160>
84 d0: e59f108c ldr r1, [pc, #140] ; 164 <main+0x164>
85 d4: eb0001dd bl 850 <exec>
86 printf(1, "init: exec sh failed\n");
87 d8: e59f1088 ldr r1, [pc, #136] ; 168 <main+0x168>
88 dc: e3a0e001 mov lr, #1
89 e0: e58d0008 str r0, [sp, #8]
90 e4: e1a0000e mov r0, lr
91 e8: eb00024d bl a24 <printf>
92 exit();
93 ec: eb000198 bl 754 <exit>
94 f0: e58d0004 str r0, [sp, #4]
95 }
96 while((wpid=wait()) >= 0 && wpid != pid)
97 f4: eaffffff b f8 <main+0xf8>
98 f8: eb00019e bl 778 <wait>
99 fc: e50b000c str r0, [fp, #-12]
100 100: e3a0e000 mov lr, #0
101 104: e3500000 cmp r0, #0
102 108: e58de000 str lr, [sp]
103 10c: ba000007 blt 130 <main+0x130>
104 110: eaffffff b 114 <main+0x114>
105 114: e51b000c ldr r0, [fp, #-12]
106 118: e51b1008 ldr r1, [fp, #-8]
107 11c: e3a02000 mov r2, #0
108 120: e1500001 cmp r0, r1
109 124: 13a02001 movne r2, #1
110 128: e58d2000 str r2, [sp]
111 12c: eaffffff b 130 <main+0x130>
112 130: e59d0000 ldr r0, [sp]
113 134: e3100001 tst r0, #1
114 138: 0a000004 beq 150 <main+0x150>
115 13c: eaffffff b 140 <main+0x140>
116 printf(1, "zombie!\n");
117 140: e59f1014 ldr r1, [pc, #20] ; 15c <main+0x15c>
118 144: e3a00001 mov r0, #1
119 148: eb000235 bl a24 <printf>
120 while((wpid=wait()) >= 0 && wpid != pid)
121 14c: eaffffe9 b f8 <main+0xf8>
122 for(;;){
123 150: eaffffcb b 84 <main+0x84>
124 154: 000012ef .word 0x000012ef
125 158: 000012f7 .word 0x000012f7
126 15c: 00001333 .word 0x00001333
127 160: 000012ec .word 0x000012ec
128 164: 0000134c .word 0x0000134c
129 168: 0000131d .word 0x0000131d
130 16c: 0000130a .word 0x0000130a
131
132 00000170 <strcpy>:
133 #include "fcntl.h"
134 #include "user.h"
135
136 char*
137 strcpy(char *s, char *t)
138 {
139 170: e24dd014 sub sp, sp, #20
140 174: e1a02001 mov r2, r1
141 178: e1a03000 mov r3, r0
142 17c: e58d0010 str r0, [sp, #16]
143 180: e58d100c str r1, [sp, #12]
144 184: e59d0010 ldr r0, [sp, #16]
145 188: e58d0008 str r0, [sp, #8]
146 18c: e58d2004 str r2, [sp, #4]
147 190: e58d3000 str r3, [sp]
148 194: eaffffff b 198 <strcpy+0x28>
149 198: e59d000c ldr r0, [sp, #12]
150 19c: e2801001 add r1, r0, #1
151 1a0: e58d100c str r1, [sp, #12]
152 1a4: e5d00000 ldrb r0, [r0]
153 1a8: e59d1010 ldr r1, [sp, #16]
154 1ac: e2812001 add r2, r1, #1
155 1b0: e58d2010 str r2, [sp, #16]
156 1b4: e5c10000 strb r0, [r1]
157 1b8: e3500000 cmp r0, #0
158 1bc: 0a000001 beq 1c8 <strcpy+0x58>
159 1c0: eaffffff b 1c4 <strcpy+0x54>
160 1c4: eafffff3 b 198 <strcpy+0x28>
161 1c8: e59d0008 ldr r0, [sp, #8]
162 1cc: e28dd014 add sp, sp, #20
163 1d0: e12fff1e bx lr
164
165 000001d4 <strcmp>:
166 1d4: e24dd014 sub sp, sp, #20
167 1d8: e1a02001 mov r2, r1
168 1dc: e1a03000 mov r3, r0
169 1e0: e58d0010 str r0, [sp, #16]
170 1e4: e58d100c str r1, [sp, #12]
171 1e8: e58d2008 str r2, [sp, #8]
172 1ec: e58d3004 str r3, [sp, #4]
173 1f0: eaffffff b 1f4 <strcmp+0x20>
174 1f4: e59d0010 ldr r0, [sp, #16]
175 1f8: e5d00000 ldrb r0, [r0]
176 1fc: e3a01000 mov r1, #0
177 200: e3500000 cmp r0, #0
178 204: e58d1000 str r1, [sp]
179 208: 0a000009 beq 234 <strcmp+0x60>
180 20c: eaffffff b 210 <strcmp+0x3c>
181 210: e59d0010 ldr r0, [sp, #16]
182 214: e5d00000 ldrb r0, [r0]
183 218: e59d100c ldr r1, [sp, #12]
184 21c: e5d11000 ldrb r1, [r1]
185 220: e3a02000 mov r2, #0
186 224: e1500001 cmp r0, r1
187 228: 03a02001 moveq r2, #1
188 22c: e58d2000 str r2, [sp]
189 230: eaffffff b 234 <strcmp+0x60>
190 234: e59d0000 ldr r0, [sp]
191 238: e3100001 tst r0, #1
192 23c: 0a000007 beq 260 <strcmp+0x8c>
193 240: eaffffff b 244 <strcmp+0x70>
194 244: e59d0010 ldr r0, [sp, #16]
195 248: e2800001 add r0, r0, #1
196 24c: e58d0010 str r0, [sp, #16]
197 250: e59d000c ldr r0, [sp, #12]
198 254: e2800001 add r0, r0, #1
199 258: e58d000c str r0, [sp, #12]
200 25c: eaffffe4 b 1f4 <strcmp+0x20>
201 260: e59d0010 ldr r0, [sp, #16]
202 264: e5d00000 ldrb r0, [r0]
203 268: e59d100c ldr r1, [sp, #12]
204 26c: e5d11000 ldrb r1, [r1]
205 270: e0400001 sub r0, r0, r1
206 274: e28dd014 add sp, sp, #20
207 278: e12fff1e bx lr
208
209 0000027c <strlen>:
210 27c: e24dd00c sub sp, sp, #12
211 280: e1a01000 mov r1, r0
212 284: e58d0008 str r0, [sp, #8]
213 288: e3a00000 mov r0, #0
214 28c: e58d0004 str r0, [sp, #4]
215 290: e58d1000 str r1, [sp]
216 294: eaffffff b 298 <strlen+0x1c>
217 298: e59d0008 ldr r0, [sp, #8]
218 29c: e59d1004 ldr r1, [sp, #4]
219 2a0: e7d00001 ldrb r0, [r0, r1]
220 2a4: e3500000 cmp r0, #0
221 2a8: 0a000005 beq 2c4 <strlen+0x48>
222 2ac: eaffffff b 2b0 <strlen+0x34>
223 2b0: eaffffff b 2b4 <strlen+0x38>
224 2b4: e59d0004 ldr r0, [sp, #4]
225 2b8: e2800001 add r0, r0, #1
226 2bc: e58d0004 str r0, [sp, #4]
227 2c0: eafffff4 b 298 <strlen+0x1c>
228 2c4: e59d0004 ldr r0, [sp, #4]
229 2c8: e28dd00c add sp, sp, #12
230 2cc: e12fff1e bx lr
231
232 000002d0 <memset>:
233 2d0: e92d4800 push {fp, lr}
234 2d4: e1a0b00d mov fp, sp
235 2d8: e24dd02c sub sp, sp, #44 ; 0x2c
236 2dc: e1a03002 mov r3, r2
237 2e0: e1a0c001 mov ip, r1
238 2e4: e1a0e000 mov lr, r0
239 2e8: e50b0004 str r0, [fp, #-4]
240 2ec: e50b1008 str r1, [fp, #-8]
241 2f0: e50b200c str r2, [fp, #-12]
242 2f4: e51b0004 ldr r0, [fp, #-4]
243 2f8: e50b0010 str r0, [fp, #-16]
244 2fc: e51b0008 ldr r0, [fp, #-8]
245 300: e54b0011 strb r0, [fp, #-17] ; 0xffffffef
246 304: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
247 308: e1a01c00 lsl r1, r0, #24
248 30c: e1811800 orr r1, r1, r0, lsl #16
249 310: e1811400 orr r1, r1, r0, lsl #8
250 314: e1810000 orr r0, r1, r0
251 318: e58d0014 str r0, [sp, #20]
252 31c: e58d300c str r3, [sp, #12]
253 320: e58dc008 str ip, [sp, #8]
254 324: e58de004 str lr, [sp, #4]
255 328: eaffffff b 32c <memset+0x5c>
256 32c: e51b000c ldr r0, [fp, #-12]
257 330: e3a01000 mov r1, #0
258 334: e3500000 cmp r0, #0
259 338: e58d1000 str r1, [sp]
260 33c: 0a000006 beq 35c <memset+0x8c>
261 340: eaffffff b 344 <memset+0x74>
262 344: e55b0010 ldrb r0, [fp, #-16]
263 348: e2000003 and r0, r0, #3
264 34c: e3500000 cmp r0, #0
265 350: 13a00001 movne r0, #1
266 354: e58d0000 str r0, [sp]
267 358: eaffffff b 35c <memset+0x8c>
268 35c: e59d0000 ldr r0, [sp]
269 360: e3100001 tst r0, #1
270 364: 0a00000b beq 398 <memset+0xc8>
271 368: eaffffff b 36c <memset+0x9c>
272 36c: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
273 370: e51b1010 ldr r1, [fp, #-16]
274 374: e5c10000 strb r0, [r1]
275 378: eaffffff b 37c <memset+0xac>
276 37c: e51b000c ldr r0, [fp, #-12]
277 380: e2400001 sub r0, r0, #1
278 384: e50b000c str r0, [fp, #-12]
279 388: e51b0010 ldr r0, [fp, #-16]
280 38c: e2800001 add r0, r0, #1
281 390: e50b0010 str r0, [fp, #-16]
282 394: eaffffe4 b 32c <memset+0x5c>
283 398: e51b0010 ldr r0, [fp, #-16]
284 39c: e58d0010 str r0, [sp, #16]
285 3a0: eaffffff b 3a4 <memset+0xd4>
286 3a4: e51b000c ldr r0, [fp, #-12]
287 3a8: e3500004 cmp r0, #4
288 3ac: 3a00000b bcc 3e0 <memset+0x110>
289 3b0: eaffffff b 3b4 <memset+0xe4>
290 3b4: e59d0014 ldr r0, [sp, #20]
291 3b8: e59d1010 ldr r1, [sp, #16]
292 3bc: e5810000 str r0, [r1]
293 3c0: eaffffff b 3c4 <memset+0xf4>
294 3c4: e51b000c ldr r0, [fp, #-12]
295 3c8: e2400004 sub r0, r0, #4
296 3cc: e50b000c str r0, [fp, #-12]
297 3d0: e59d0010 ldr r0, [sp, #16]
298 3d4: e2800004 add r0, r0, #4
299 3d8: e58d0010 str r0, [sp, #16]
300 3dc: eafffff0 b 3a4 <memset+0xd4>
301 3e0: e59d0010 ldr r0, [sp, #16]
302 3e4: e50b0010 str r0, [fp, #-16]
303 3e8: eaffffff b 3ec <memset+0x11c>
304 3ec: e51b000c ldr r0, [fp, #-12]
305 3f0: e3500000 cmp r0, #0
306 3f4: 0a00000b beq 428 <memset+0x158>
307 3f8: eaffffff b 3fc <memset+0x12c>
308 3fc: e55b0011 ldrb r0, [fp, #-17] ; 0xffffffef
309 400: e51b1010 ldr r1, [fp, #-16]
310 404: e5c10000 strb r0, [r1]
311 408: eaffffff b 40c <memset+0x13c>
312 40c: e51b000c ldr r0, [fp, #-12]
313 410: e2400001 sub r0, r0, #1
314 414: e50b000c str r0, [fp, #-12]
315 418: e51b0010 ldr r0, [fp, #-16]
316 41c: e2800001 add r0, r0, #1
317 420: e50b0010 str r0, [fp, #-16]
318 424: eafffff0 b 3ec <memset+0x11c>
319 428: e51b0004 ldr r0, [fp, #-4]
320 42c: e1a0d00b mov sp, fp
321 430: e8bd8800 pop {fp, pc}
322
323 00000434 <strchr>:
324 434: e24dd014 sub sp, sp, #20
325 438: e1a02001 mov r2, r1
326 43c: e1a03000 mov r3, r0
327 440: e58d000c str r0, [sp, #12]
328 444: e5cd100b strb r1, [sp, #11]
329 448: e58d2004 str r2, [sp, #4]
330 44c: e58d3000 str r3, [sp]
331 450: eaffffff b 454 <strchr+0x20>
332 454: e59d000c ldr r0, [sp, #12]
333 458: e5d00000 ldrb r0, [r0]
334 45c: e3500000 cmp r0, #0
335 460: 0a00000e beq 4a0 <strchr+0x6c>
336 464: eaffffff b 468 <strchr+0x34>
337 468: e59d000c ldr r0, [sp, #12]
338 46c: e5d00000 ldrb r0, [r0]
339 470: e5dd100b ldrb r1, [sp, #11]
340 474: e1500001 cmp r0, r1
341 478: 1a000003 bne 48c <strchr+0x58>
342 47c: eaffffff b 480 <strchr+0x4c>
343 480: e59d000c ldr r0, [sp, #12]
344 484: e58d0010 str r0, [sp, #16]
345 488: ea000007 b 4ac <strchr+0x78>
346 48c: eaffffff b 490 <strchr+0x5c>
347 490: e59d000c ldr r0, [sp, #12]
348 494: e2800001 add r0, r0, #1
349 498: e58d000c str r0, [sp, #12]
350 49c: eaffffec b 454 <strchr+0x20>
351 4a0: e3a00000 mov r0, #0
352 4a4: e58d0010 str r0, [sp, #16]
353 4a8: eaffffff b 4ac <strchr+0x78>
354 4ac: e59d0010 ldr r0, [sp, #16]
355 4b0: e28dd014 add sp, sp, #20
356 4b4: e12fff1e bx lr
357
358 000004b8 <gets>:
359 4b8: e92d4800 push {fp, lr}
360 4bc: e1a0b00d mov fp, sp
361 4c0: e24dd020 sub sp, sp, #32
362 4c4: e1a02001 mov r2, r1
363 4c8: e1a03000 mov r3, r0
364 4cc: e50b0004 str r0, [fp, #-4]
365 4d0: e50b1008 str r1, [fp, #-8]
366 4d4: e3a00000 mov r0, #0
367 4d8: e50b000c str r0, [fp, #-12]
368 4dc: e58d2008 str r2, [sp, #8]
369 4e0: e58d3004 str r3, [sp, #4]
370 4e4: eaffffff b 4e8 <gets+0x30>
371 4e8: e51b000c ldr r0, [fp, #-12]
372 4ec: e2800001 add r0, r0, #1
373 4f0: e51b1008 ldr r1, [fp, #-8]
374 4f4: e1500001 cmp r0, r1
375 4f8: aa00001a bge 568 <gets+0xb0>
376 4fc: eaffffff b 500 <gets+0x48>
377 500: e3a00000 mov r0, #0
378 504: e28d100f add r1, sp, #15
379 508: e3a02001 mov r2, #1
380 50c: eb0000ab bl 7c0 <read>
381 510: e58d0010 str r0, [sp, #16]
382 514: e59d0010 ldr r0, [sp, #16]
383 518: e3500000 cmp r0, #0
384 51c: ca000001 bgt 528 <gets+0x70>
385 520: eaffffff b 524 <gets+0x6c>
386 524: ea00000f b 568 <gets+0xb0>
387 528: e5dd000f ldrb r0, [sp, #15]
388 52c: e51b1004 ldr r1, [fp, #-4]
389 530: e51b200c ldr r2, [fp, #-12]
390 534: e2823001 add r3, r2, #1
391 538: e50b300c str r3, [fp, #-12]
392 53c: e7c10002 strb r0, [r1, r2]
393 540: e5dd000f ldrb r0, [sp, #15]
394 544: e350000a cmp r0, #10
395 548: 0a000004 beq 560 <gets+0xa8>
396 54c: eaffffff b 550 <gets+0x98>
397 550: e5dd000f ldrb r0, [sp, #15]
398 554: e350000d cmp r0, #13
399 558: 1a000001 bne 564 <gets+0xac>
400 55c: eaffffff b 560 <gets+0xa8>
401 560: ea000000 b 568 <gets+0xb0>
402 564: eaffffdf b 4e8 <gets+0x30>
403 568: e51b0004 ldr r0, [fp, #-4]
404 56c: e51b100c ldr r1, [fp, #-12]
405 570: e3a02000 mov r2, #0
406 574: e7c02001 strb r2, [r0, r1]
407 578: e51b0004 ldr r0, [fp, #-4]
408 57c: e1a0d00b mov sp, fp
409 580: e8bd8800 pop {fp, pc}
410
411 00000584 <stat>:
412 584: e92d4800 push {fp, lr}
413 588: e1a0b00d mov fp, sp
414 58c: e24dd020 sub sp, sp, #32
415 590: e1a02001 mov r2, r1
416 594: e1a03000 mov r3, r0
417 598: e50b0008 str r0, [fp, #-8]
418 59c: e50b100c str r1, [fp, #-12]
419 5a0: e51b0008 ldr r0, [fp, #-8]
420 5a4: e3a01000 mov r1, #0
421 5a8: e58d2008 str r2, [sp, #8]
422 5ac: e58d3004 str r3, [sp, #4]
423 5b0: eb0000af bl 874 <open>
424 5b4: e58d0010 str r0, [sp, #16]
425 5b8: e59d0010 ldr r0, [sp, #16]
426 5bc: e3500000 cmp r0, #0
427 5c0: aa000003 bge 5d4 <stat+0x50>
428 5c4: eaffffff b 5c8 <stat+0x44>
429 5c8: e3e00000 mvn r0, #0
430 5cc: e50b0004 str r0, [fp, #-4]
431 5d0: ea000009 b 5fc <stat+0x78>
432 5d4: e59d0010 ldr r0, [sp, #16]
433 5d8: e51b100c ldr r1, [fp, #-12]
434 5dc: eb0000bf bl 8e0 <fstat>
435 5e0: e58d000c str r0, [sp, #12]
436 5e4: e59d0010 ldr r0, [sp, #16]
437 5e8: eb000086 bl 808 <close>
438 5ec: e59d100c ldr r1, [sp, #12]
439 5f0: e50b1004 str r1, [fp, #-4]
440 5f4: e58d0000 str r0, [sp]
441 5f8: eaffffff b 5fc <stat+0x78>
442 5fc: e51b0004 ldr r0, [fp, #-4]
443 600: e1a0d00b mov sp, fp
444 604: e8bd8800 pop {fp, pc}
445
446 00000608 <atoi>:
447 608: e24dd010 sub sp, sp, #16
448 60c: e1a01000 mov r1, r0
449 610: e58d000c str r0, [sp, #12]
450 614: e3a00000 mov r0, #0
451 618: e58d0008 str r0, [sp, #8]
452 61c: e58d1004 str r1, [sp, #4]
453 620: eaffffff b 624 <atoi+0x1c>
454 624: e59d000c ldr r0, [sp, #12]
455 628: e5d00000 ldrb r0, [r0]
456 62c: e3a01000 mov r1, #0
457 630: e3500030 cmp r0, #48 ; 0x30
458 634: e58d1000 str r1, [sp]
459 638: ba000007 blt 65c <atoi+0x54>
460 63c: eaffffff b 640 <atoi+0x38>
461 640: e59d000c ldr r0, [sp, #12]
462 644: e5d00000 ldrb r0, [r0]
463 648: e3a01000 mov r1, #0
464 64c: e350003a cmp r0, #58 ; 0x3a
465 650: b3a01001 movlt r1, #1
466 654: e58d1000 str r1, [sp]
467 658: eaffffff b 65c <atoi+0x54>
468 65c: e59d0000 ldr r0, [sp]
469 660: e3100001 tst r0, #1
470 664: 0a00000a beq 694 <atoi+0x8c>
471 668: eaffffff b 66c <atoi+0x64>
472 66c: e59d0008 ldr r0, [sp, #8]
473 670: e0800100 add r0, r0, r0, lsl #2
474 674: e59d100c ldr r1, [sp, #12]
475 678: e2812001 add r2, r1, #1
476 67c: e58d200c str r2, [sp, #12]
477 680: e5d11000 ldrb r1, [r1]
478 684: e0810080 add r0, r1, r0, lsl #1
479 688: e2400030 sub r0, r0, #48 ; 0x30
480 68c: e58d0008 str r0, [sp, #8]
481 690: eaffffe3 b 624 <atoi+0x1c>
482 694: e59d0008 ldr r0, [sp, #8]
483 698: e28dd010 add sp, sp, #16
484 69c: e12fff1e bx lr
485
486 000006a0 <memmove>:
487 6a0: e92d4800 push {fp, lr}
488 6a4: e1a0b00d mov fp, sp
489 6a8: e24dd020 sub sp, sp, #32
490 6ac: e1a03002 mov r3, r2
491 6b0: e1a0c001 mov ip, r1
492 6b4: e1a0e000 mov lr, r0
493 6b8: e50b0004 str r0, [fp, #-4]
494 6bc: e50b1008 str r1, [fp, #-8]
495 6c0: e50b200c str r2, [fp, #-12]
496 6c4: e51b0004 ldr r0, [fp, #-4]
497 6c8: e58d0010 str r0, [sp, #16]
498 6cc: e51b0008 ldr r0, [fp, #-8]
499 6d0: e58d000c str r0, [sp, #12]
500 6d4: e58d3008 str r3, [sp, #8]
501 6d8: e58dc004 str ip, [sp, #4]
502 6dc: e58de000 str lr, [sp]
503 6e0: eaffffff b 6e4 <memmove+0x44>
504 6e4: e51b000c ldr r0, [fp, #-12]
505 6e8: e2401001 sub r1, r0, #1
506 6ec: e50b100c str r1, [fp, #-12]
507 6f0: e3500001 cmp r0, #1
508 6f4: ba000009 blt 720 <memmove+0x80>
509 6f8: eaffffff b 6fc <memmove+0x5c>
510 6fc: e59d000c ldr r0, [sp, #12]
511 700: e2801001 add r1, r0, #1
512 704: e58d100c str r1, [sp, #12]
513 708: e5d00000 ldrb r0, [r0]
514 70c: e59d1010 ldr r1, [sp, #16]
515 710: e2812001 add r2, r1, #1
516 714: e58d2010 str r2, [sp, #16]
517 718: e5c10000 strb r0, [r1]
518 71c: eafffff0 b 6e4 <memmove+0x44>
519 720: e51b0004 ldr r0, [fp, #-4]
520 724: e1a0d00b mov sp, fp
521 728: e8bd8800 pop {fp, pc}
522
523 0000072c <raise>:
524 return vdst;
525 }
526
527 void
528 raise()
529 {}
530 72c: e12fff1e bx lr
531
532 00000730 <fork>:
533 730: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
534 734: e1a04003 mov r4, r3
535 738: e1a03002 mov r3, r2
536 73c: e1a02001 mov r2, r1
537 740: e1a01000 mov r1, r0
538 744: e3a00001 mov r0, #1
539 748: ef000000 svc 0x00000000
540 74c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
541 750: e12fff1e bx lr
542
543 00000754 <exit>:
544 754: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
545 758: e1a04003 mov r4, r3
546 75c: e1a03002 mov r3, r2
547 760: e1a02001 mov r2, r1
548 764: e1a01000 mov r1, r0
549 768: e3a00002 mov r0, #2
550 76c: ef000000 svc 0x00000000
551 770: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
552 774: e12fff1e bx lr
553
554 00000778 <wait>:
555 778: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
556 77c: e1a04003 mov r4, r3
557 780: e1a03002 mov r3, r2
558 784: e1a02001 mov r2, r1
559 788: e1a01000 mov r1, r0
560 78c: e3a00003 mov r0, #3
561 790: ef000000 svc 0x00000000
562 794: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
563 798: e12fff1e bx lr
564
565 0000079c <pipe>:
566 79c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
567 7a0: e1a04003 mov r4, r3
568 7a4: e1a03002 mov r3, r2
569 7a8: e1a02001 mov r2, r1
570 7ac: e1a01000 mov r1, r0
571 7b0: e3a00004 mov r0, #4
572 7b4: ef000000 svc 0x00000000
573 7b8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
574 7bc: e12fff1e bx lr
575
576 000007c0 <read>:
577 7c0: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
578 7c4: e1a04003 mov r4, r3
579 7c8: e1a03002 mov r3, r2
580 7cc: e1a02001 mov r2, r1
581 7d0: e1a01000 mov r1, r0
582 7d4: e3a00005 mov r0, #5
583 7d8: ef000000 svc 0x00000000
584 7dc: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
585 7e0: e12fff1e bx lr
586
587 000007e4 <write>:
588 7e4: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
589 7e8: e1a04003 mov r4, r3
590 7ec: e1a03002 mov r3, r2
591 7f0: e1a02001 mov r2, r1
592 7f4: e1a01000 mov r1, r0
593 7f8: e3a00010 mov r0, #16
594 7fc: ef000000 svc 0x00000000
595 800: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
596 804: e12fff1e bx lr
597
598 00000808 <close>:
599 808: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
600 80c: e1a04003 mov r4, r3
601 810: e1a03002 mov r3, r2
602 814: e1a02001 mov r2, r1
603 818: e1a01000 mov r1, r0
604 81c: e3a00015 mov r0, #21
605 820: ef000000 svc 0x00000000
606 824: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
607 828: e12fff1e bx lr
608
609 0000082c <kill>:
610 82c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
611 830: e1a04003 mov r4, r3
612 834: e1a03002 mov r3, r2
613 838: e1a02001 mov r2, r1
614 83c: e1a01000 mov r1, r0
615 840: e3a00006 mov r0, #6
616 844: ef000000 svc 0x00000000
617 848: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
618 84c: e12fff1e bx lr
619
620 00000850 <exec>:
621 850: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
622 854: e1a04003 mov r4, r3
623 858: e1a03002 mov r3, r2
624 85c: e1a02001 mov r2, r1
625 860: e1a01000 mov r1, r0
626 864: e3a00007 mov r0, #7
627 868: ef000000 svc 0x00000000
628 86c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
629 870: e12fff1e bx lr
630
631 00000874 <open>:
632 874: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
633 878: e1a04003 mov r4, r3
634 87c: e1a03002 mov r3, r2
635 880: e1a02001 mov r2, r1
636 884: e1a01000 mov r1, r0
637 888: e3a0000f mov r0, #15
638 88c: ef000000 svc 0x00000000
639 890: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
640 894: e12fff1e bx lr
641
642 00000898 <mknod>:
643 898: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
644 89c: e1a04003 mov r4, r3
645 8a0: e1a03002 mov r3, r2
646 8a4: e1a02001 mov r2, r1
647 8a8: e1a01000 mov r1, r0
648 8ac: e3a00011 mov r0, #17
649 8b0: ef000000 svc 0x00000000
650 8b4: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
651 8b8: e12fff1e bx lr
652
653 000008bc <unlink>:
654 8bc: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
655 8c0: e1a04003 mov r4, r3
656 8c4: e1a03002 mov r3, r2
657 8c8: e1a02001 mov r2, r1
658 8cc: e1a01000 mov r1, r0
659 8d0: e3a00012 mov r0, #18
660 8d4: ef000000 svc 0x00000000
661 8d8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
662 8dc: e12fff1e bx lr
663
664 000008e0 <fstat>:
665 8e0: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
666 8e4: e1a04003 mov r4, r3
667 8e8: e1a03002 mov r3, r2
668 8ec: e1a02001 mov r2, r1
669 8f0: e1a01000 mov r1, r0
670 8f4: e3a00008 mov r0, #8
671 8f8: ef000000 svc 0x00000000
672 8fc: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
673 900: e12fff1e bx lr
674
675 00000904 <link>:
676 904: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
677 908: e1a04003 mov r4, r3
678 90c: e1a03002 mov r3, r2
679 910: e1a02001 mov r2, r1
680 914: e1a01000 mov r1, r0
681 918: e3a00013 mov r0, #19
682 91c: ef000000 svc 0x00000000
683 920: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
684 924: e12fff1e bx lr
685
686 00000928 <mkdir>:
687 928: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
688 92c: e1a04003 mov r4, r3
689 930: e1a03002 mov r3, r2
690 934: e1a02001 mov r2, r1
691 938: e1a01000 mov r1, r0
692 93c: e3a00014 mov r0, #20
693 940: ef000000 svc 0x00000000
694 944: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
695 948: e12fff1e bx lr
696
697 0000094c <chdir>:
698 94c: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
699 950: e1a04003 mov r4, r3
700 954: e1a03002 mov r3, r2
701 958: e1a02001 mov r2, r1
702 95c: e1a01000 mov r1, r0
703 960: e3a00009 mov r0, #9
704 964: ef000000 svc 0x00000000
705 968: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
706 96c: e12fff1e bx lr
707
708 00000970 <dup>:
709 970: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
710 974: e1a04003 mov r4, r3
711 978: e1a03002 mov r3, r2
712 97c: e1a02001 mov r2, r1
713 980: e1a01000 mov r1, r0
714 984: e3a0000a mov r0, #10
715 988: ef000000 svc 0x00000000
716 98c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
717 990: e12fff1e bx lr
718
719 00000994 <getpid>:
720 994: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
721 998: e1a04003 mov r4, r3
722 99c: e1a03002 mov r3, r2
723 9a0: e1a02001 mov r2, r1
724 9a4: e1a01000 mov r1, r0
725 9a8: e3a0000b mov r0, #11
726 9ac: ef000000 svc 0x00000000
727 9b0: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
728 9b4: e12fff1e bx lr
729
730 000009b8 <sbrk>:
731 9b8: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
732 9bc: e1a04003 mov r4, r3
733 9c0: e1a03002 mov r3, r2
734 9c4: e1a02001 mov r2, r1
735 9c8: e1a01000 mov r1, r0
736 9cc: e3a0000c mov r0, #12
737 9d0: ef000000 svc 0x00000000
738 9d4: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
739 9d8: e12fff1e bx lr
740
741 000009dc <sleep>:
742 9dc: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
743 9e0: e1a04003 mov r4, r3
744 9e4: e1a03002 mov r3, r2
745 9e8: e1a02001 mov r2, r1
746 9ec: e1a01000 mov r1, r0
747 9f0: e3a0000d mov r0, #13
748 9f4: ef000000 svc 0x00000000
749 9f8: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
750 9fc: e12fff1e bx lr
751
752 00000a00 <uptime>:
753 a00: e52d4004 push {r4} ; (str r4, [sp, #-4]!)
754 a04: e1a04003 mov r4, r3
755 a08: e1a03002 mov r3, r2
756 a0c: e1a02001 mov r2, r1
757 a10: e1a01000 mov r1, r0
758 a14: e3a0000e mov r0, #14
759 a18: ef000000 svc 0x00000000
760 a1c: e49d4004 pop {r4} ; (ldr r4, [sp], #4)
761 a20: e12fff1e bx lr
762
763 00000a24 <printf>:
764 }
765
766 // Print to the given fd. Only understands %d, %x, %p, %s.
767 void
768 printf(int fd, char *fmt, ...)
769 {
770 a24: e92d4800 push {fp, lr}
771 a28: e1a0b00d mov fp, sp
772 a2c: e24dd028 sub sp, sp, #40 ; 0x28
773 a30: e1a02001 mov r2, r1
774 a34: e1a03000 mov r3, r0
775 a38: e50b0004 str r0, [fp, #-4]
776 a3c: e50b1008 str r1, [fp, #-8]
777 a40: e3a00000 mov r0, #0
778 a44: e58d0010 str r0, [sp, #16]
779 a48: e24b1008 sub r1, fp, #8
780 a4c: e2811004 add r1, r1, #4
781 a50: e58d100c str r1, [sp, #12]
782 a54: e58d0014 str r0, [sp, #20]
783 a58: e58d2008 str r2, [sp, #8]
784 a5c: e58d3004 str r3, [sp, #4]
785 a60: eaffffff b a64 <printf+0x40>
786 a64: e51b0008 ldr r0, [fp, #-8]
787 a68: e59d1014 ldr r1, [sp, #20]
788 a6c: e7d00001 ldrb r0, [r0, r1]
789 a70: e3500000 cmp r0, #0
790 a74: 0a00007e beq c74 <printf+0x250>
791 a78: eaffffff b a7c <printf+0x58>
792 a7c: e51b0008 ldr r0, [fp, #-8]
793 a80: e59d1014 ldr r1, [sp, #20]
794 a84: e7d00001 ldrb r0, [r0, r1]
795 a88: e50b0010 str r0, [fp, #-16]
796 a8c: e59d0010 ldr r0, [sp, #16]
797 a90: e3500000 cmp r0, #0
798 a94: 1a00000c bne acc <printf+0xa8>
799 a98: eaffffff b a9c <printf+0x78>
800 a9c: e51b0010 ldr r0, [fp, #-16]
801 aa0: e3500025 cmp r0, #37 ; 0x25
802 aa4: 1a000003 bne ab8 <printf+0x94>
803 aa8: eaffffff b aac <printf+0x88>
804 aac: e3a00025 mov r0, #37 ; 0x25
805 ab0: e58d0010 str r0, [sp, #16]
806 ab4: ea000003 b ac8 <printf+0xa4>
807 ab8: e51b0004 ldr r0, [fp, #-4]
808 abc: e55b1010 ldrb r1, [fp, #-16]
809 ac0: eb00006e bl c80 <putc>
810 ac4: eaffffff b ac8 <printf+0xa4>
811 ac8: ea000064 b c60 <printf+0x23c>
812 acc: e59d0010 ldr r0, [sp, #16]
813 ad0: e3500025 cmp r0, #37 ; 0x25
814 ad4: 1a000060 bne c5c <printf+0x238>
815 ad8: eaffffff b adc <printf+0xb8>
816 adc: e51b0010 ldr r0, [fp, #-16]
817 ae0: e3500064 cmp r0, #100 ; 0x64
818 ae4: 1a00000a bne b14 <printf+0xf0>
819 ae8: eaffffff b aec <printf+0xc8>
820 aec: e51b0004 ldr r0, [fp, #-4]
821 af0: e59d100c ldr r1, [sp, #12]
822 af4: e5911000 ldr r1, [r1]
823 af8: e3a0200a mov r2, #10
824 afc: e3a03001 mov r3, #1
825 b00: eb00006f bl cc4 <printint>
826 b04: e59d000c ldr r0, [sp, #12]
827 b08: e2800004 add r0, r0, #4
828 b0c: e58d000c str r0, [sp, #12]
829 b10: ea00004e b c50 <printf+0x22c>
830 b14: e51b0010 ldr r0, [fp, #-16]
831 b18: e3500078 cmp r0, #120 ; 0x78
832 b1c: 0a000004 beq b34 <printf+0x110>
833 b20: eaffffff b b24 <printf+0x100>
834 b24: e51b0010 ldr r0, [fp, #-16]
835 b28: e3500070 cmp r0, #112 ; 0x70
836 b2c: 1a00000a bne b5c <printf+0x138>
837 b30: eaffffff b b34 <printf+0x110>
838 b34: e51b0004 ldr r0, [fp, #-4]
839 b38: e59d100c ldr r1, [sp, #12]
840 b3c: e5911000 ldr r1, [r1]
841 b40: e3a02010 mov r2, #16
842 b44: e3a03000 mov r3, #0
843 b48: eb00005d bl cc4 <printint>
844 b4c: e59d000c ldr r0, [sp, #12]
845 b50: e2800004 add r0, r0, #4
846 b54: e58d000c str r0, [sp, #12]
847 b58: ea00003b b c4c <printf+0x228>
848 b5c: e51b0010 ldr r0, [fp, #-16]
849 b60: e3500073 cmp r0, #115 ; 0x73
850 b64: 1a00001a bne bd4 <printf+0x1b0>
851 b68: eaffffff b b6c <printf+0x148>
852 b6c: e59d000c ldr r0, [sp, #12]
853 b70: e4901004 ldr r1, [r0], #4
854 b74: e50b100c str r1, [fp, #-12]
855 b78: e58d000c str r0, [sp, #12]
856 b7c: e51b000c ldr r0, [fp, #-12]
857 b80: e3500000 cmp r0, #0
858 b84: 1a000003 bne b98 <printf+0x174>
859 b88: eaffffff b b8c <printf+0x168>
860 b8c: e59f00e8 ldr r0, [pc, #232] ; c7c <printf+0x258>
861 b90: e50b000c str r0, [fp, #-12]
862 b94: eaffffff b b98 <printf+0x174>
863 b98: eaffffff b b9c <printf+0x178>
864 b9c: e51b000c ldr r0, [fp, #-12]
865 ba0: e5d00000 ldrb r0, [r0]
866 ba4: e3500000 cmp r0, #0
867 ba8: 0a000008 beq bd0 <printf+0x1ac>
868 bac: eaffffff b bb0 <printf+0x18c>
869 bb0: e51b0004 ldr r0, [fp, #-4]
870 bb4: e51b100c ldr r1, [fp, #-12]
871 bb8: e5d11000 ldrb r1, [r1]
872 bbc: eb00002f bl c80 <putc>
873 bc0: e51b000c ldr r0, [fp, #-12]
874 bc4: e2800001 add r0, r0, #1
875 bc8: e50b000c str r0, [fp, #-12]
876 bcc: eafffff2 b b9c <printf+0x178>
877 bd0: ea00001c b c48 <printf+0x224>
878 bd4: e51b0010 ldr r0, [fp, #-16]
879 bd8: e3500063 cmp r0, #99 ; 0x63
880 bdc: 1a000008 bne c04 <printf+0x1e0>
881 be0: eaffffff b be4 <printf+0x1c0>
882 be4: e51b0004 ldr r0, [fp, #-4]
883 be8: e59d100c ldr r1, [sp, #12]
884 bec: e5d11000 ldrb r1, [r1]
885 bf0: eb000022 bl c80 <putc>
886 bf4: e59d000c ldr r0, [sp, #12]
887 bf8: e2800004 add r0, r0, #4
888 bfc: e58d000c str r0, [sp, #12]
889 c00: ea00000f b c44 <printf+0x220>
890 c04: e51b0010 ldr r0, [fp, #-16]
891 c08: e3500025 cmp r0, #37 ; 0x25
892 c0c: 1a000004 bne c24 <printf+0x200>
893 c10: eaffffff b c14 <printf+0x1f0>
894 c14: e51b0004 ldr r0, [fp, #-4]
895 c18: e55b1010 ldrb r1, [fp, #-16]
896 c1c: eb000017 bl c80 <putc>
897 c20: ea000006 b c40 <printf+0x21c>
898 c24: e51b0004 ldr r0, [fp, #-4]
899 c28: e3a01025 mov r1, #37 ; 0x25
900 c2c: eb000013 bl c80 <putc>
901 c30: e51b0004 ldr r0, [fp, #-4]
902 c34: e55b1010 ldrb r1, [fp, #-16]
903 c38: eb000010 bl c80 <putc>
904 c3c: eaffffff b c40 <printf+0x21c>
905 c40: eaffffff b c44 <printf+0x220>
906 c44: eaffffff b c48 <printf+0x224>
907 c48: eaffffff b c4c <printf+0x228>
908 c4c: eaffffff b c50 <printf+0x22c>
909 c50: e3a00000 mov r0, #0
910 c54: e58d0010 str r0, [sp, #16]
911 c58: eaffffff b c5c <printf+0x238>
912 c5c: eaffffff b c60 <printf+0x23c>
913 c60: eaffffff b c64 <printf+0x240>
914 c64: e59d0014 ldr r0, [sp, #20]
915 c68: e2800001 add r0, r0, #1
916 c6c: e58d0014 str r0, [sp, #20]
917 c70: eaffff7b b a64 <printf+0x40>
918 c74: e1a0d00b mov sp, fp
919 c78: e8bd8800 pop {fp, pc}
920 c7c: 0000133c .word 0x0000133c
921
922 00000c80 <putc>:
923 {
924 c80: e92d4800 push {fp, lr}
925 c84: e1a0b00d mov fp, sp
926 c88: e24dd018 sub sp, sp, #24
927 c8c: e1a02001 mov r2, r1
928 c90: e1a03000 mov r3, r0
929 c94: e50b0004 str r0, [fp, #-4]
930 c98: e54b1005 strb r1, [fp, #-5]
931 write(fd, &c, 1);
932 c9c: e51b0004 ldr r0, [fp, #-4]
933 ca0: e24b1005 sub r1, fp, #5
934 ca4: e3a0c001 mov ip, #1
935 ca8: e58d200c str r2, [sp, #12]
936 cac: e1a0200c mov r2, ip
937 cb0: e58d3008 str r3, [sp, #8]
938 cb4: ebfffeca bl 7e4 <write>
939 }
940 cb8: e58d0004 str r0, [sp, #4]
941 cbc: e1a0d00b mov sp, fp
942 cc0: e8bd8800 pop {fp, pc}
943
944 00000cc4 <printint>:
945 {
946 cc4: e92d4830 push {r4, r5, fp, lr}
947 cc8: e28db008 add fp, sp, #8
948 ccc: e24dd040 sub sp, sp, #64 ; 0x40
949 cd0: e1a0c003 mov ip, r3
950 cd4: e1a0e002 mov lr, r2
951 cd8: e1a04001 mov r4, r1
952 cdc: e1a05000 mov r5, r0
953 ce0: e50b000c str r0, [fp, #-12]
954 ce4: e50b1010 str r1, [fp, #-16]
955 ce8: e50b2014 str r2, [fp, #-20] ; 0xffffffec
956 cec: e50b3018 str r3, [fp, #-24] ; 0xffffffe8
957 cf0: e3a00000 mov r0, #0
958 cf4: e58d0018 str r0, [sp, #24]
959 cf8: e51b0018 ldr r0, [fp, #-24] ; 0xffffffe8
960 cfc: e3500000 cmp r0, #0
961 d00: e58dc010 str ip, [sp, #16]
962 d04: e58de00c str lr, [sp, #12]
963 d08: e58d4008 str r4, [sp, #8]
964 d0c: e58d5004 str r5, [sp, #4]
965 d10: 0a00000a beq d40 <printint+0x7c>
966 d14: eaffffff b d18 <printint+0x54>
967 d18: e51b0010 ldr r0, [fp, #-16]
968 d1c: e3500000 cmp r0, #0
969 d20: aa000006 bge d40 <printint+0x7c>
970 d24: eaffffff b d28 <printint+0x64>
971 d28: e3a00001 mov r0, #1
972 d2c: e58d0018 str r0, [sp, #24]
973 d30: e51b0010 ldr r0, [fp, #-16]
974 d34: e2600000 rsb r0, r0, #0
975 d38: e58d0014 str r0, [sp, #20]
976 d3c: ea000002 b d4c <printint+0x88>
977 d40: e51b0010 ldr r0, [fp, #-16]
978 d44: e58d0014 str r0, [sp, #20]
979 d48: eaffffff b d4c <printint+0x88>
980 d4c: e3a00000 mov r0, #0
981 d50: e58d001c str r0, [sp, #28]
982 d54: eaffffff b d58 <printint+0x94>
983 d58: e59d0014 ldr r0, [sp, #20]
984 d5c: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
985 d60: eb000158 bl 12c8 <__aeabi_uidivmod>
986 d64: e59fe0a0 ldr lr, [pc, #160] ; e0c <printint+0x148>
987 d68: e7de1001 ldrb r1, [lr, r1]
988 d6c: e59de01c ldr lr, [sp, #28]
989 d70: e28e2001 add r2, lr, #1
990 d74: e58d201c str r2, [sp, #28]
991 d78: e28d2020 add r2, sp, #32
992 d7c: e7c2100e strb r1, [r2, lr]
993 d80: e58d0000 str r0, [sp]
994 d84: eaffffff b d88 <printint+0xc4>
995 d88: e51b1014 ldr r1, [fp, #-20] ; 0xffffffec
996 d8c: e59d0014 ldr r0, [sp, #20]
997 d90: eb00010f bl 11d4 <__aeabi_uidiv>
998 d94: e58d0014 str r0, [sp, #20]
999 d98: e3500000 cmp r0, #0
1000 d9c: 1affffed bne d58 <printint+0x94>
1001 da0: eaffffff b da4 <printint+0xe0>
1002 da4: e59d0018 ldr r0, [sp, #24]
1003 da8: e3500000 cmp r0, #0
1004 dac: 0a000007 beq dd0 <printint+0x10c>
1005 db0: eaffffff b db4 <printint+0xf0>
1006 db4: e59d001c ldr r0, [sp, #28]
1007 db8: e2801001 add r1, r0, #1
1008 dbc: e58d101c str r1, [sp, #28]
1009 dc0: e28d1020 add r1, sp, #32
1010 dc4: e3a0202d mov r2, #45 ; 0x2d
1011 dc8: e7c12000 strb r2, [r1, r0]
1012 dcc: eaffffff b dd0 <printint+0x10c>
1013 dd0: eaffffff b dd4 <printint+0x110>
1014 dd4: e59d001c ldr r0, [sp, #28]
1015 dd8: e2400001 sub r0, r0, #1
1016 ddc: e58d001c str r0, [sp, #28]
1017 de0: e3500000 cmp r0, #0
1018 de4: ba000006 blt e04 <printint+0x140>
1019 de8: eaffffff b dec <printint+0x128>
1020 dec: e51b000c ldr r0, [fp, #-12]
1021 df0: e59d101c ldr r1, [sp, #28]
1022 df4: e28d2020 add r2, sp, #32
1023 df8: e7d21001 ldrb r1, [r2, r1]
1024 dfc: ebffff9f bl c80 <putc>
1025 e00: eafffff3 b dd4 <printint+0x110>
1026 e04: e24bd008 sub sp, fp, #8
1027 e08: e8bd8830 pop {r4, r5, fp, pc}
1028 e0c: 00001354 .word 0x00001354
1029
1030 00000e10 <free>:
1031 static Header base;
1032 static Header *freep;
1033
1034 void
1035 free(void *ap)
1036 {
1037 e10: e24dd014 sub sp, sp, #20
1038 e14: e1a01000 mov r1, r0
1039 e18: e58d0010 str r0, [sp, #16]
1040 e1c: e59d0010 ldr r0, [sp, #16]
1041 e20: e2400008 sub r0, r0, #8
1042 e24: e58d000c str r0, [sp, #12]
1043 e28: e59f0188 ldr r0, [pc, #392] ; fb8 <free+0x1a8>
1044 e2c: e5900000 ldr r0, [r0]
1045 e30: e58d0008 str r0, [sp, #8]
1046 e34: e58d1004 str r1, [sp, #4]
1047 e38: eaffffff b e3c <free+0x2c>
1048 e3c: e59d000c ldr r0, [sp, #12]
1049 e40: e59d1008 ldr r1, [sp, #8]
1050 e44: e3a02000 mov r2, #0
1051 e48: e1500001 cmp r0, r1
1052 e4c: e58d2000 str r2, [sp]
1053 e50: 9a000008 bls e78 <free+0x68>
1054 e54: eaffffff b e58 <free+0x48>
1055 e58: e59d000c ldr r0, [sp, #12]
1056 e5c: e59d1008 ldr r1, [sp, #8]
1057 e60: e5911000 ldr r1, [r1]
1058 e64: e3a02000 mov r2, #0
1059 e68: e1500001 cmp r0, r1
1060 e6c: 33a02001 movcc r2, #1
1061 e70: e58d2000 str r2, [sp]
1062 e74: eaffffff b e78 <free+0x68>
1063 e78: e59d0000 ldr r0, [sp]
1064 e7c: e1e00000 mvn r0, r0
1065 e80: e3100001 tst r0, #1
1066 e84: 0a000016 beq ee4 <free+0xd4>
1067 e88: eaffffff b e8c <free+0x7c>
1068 e8c: e59d0008 ldr r0, [sp, #8]
1069 e90: e5901000 ldr r1, [r0]
1070 e94: e1500001 cmp r0, r1
1071 e98: 3a00000c bcc ed0 <free+0xc0>
1072 e9c: eaffffff b ea0 <free+0x90>
1073 ea0: e59d000c ldr r0, [sp, #12]
1074 ea4: e59d1008 ldr r1, [sp, #8]
1075 ea8: e1500001 cmp r0, r1
1076 eac: 8a000006 bhi ecc <free+0xbc>
1077 eb0: eaffffff b eb4 <free+0xa4>
1078 eb4: e59d000c ldr r0, [sp, #12]
1079 eb8: e59d1008 ldr r1, [sp, #8]
1080 ebc: e5911000 ldr r1, [r1]
1081 ec0: e1500001 cmp r0, r1
1082 ec4: 2a000001 bcs ed0 <free+0xc0>
1083 ec8: eaffffff b ecc <free+0xbc>
1084 ecc: ea000004 b ee4 <free+0xd4>
1085 ed0: eaffffff b ed4 <free+0xc4>
1086 ed4: e59d0008 ldr r0, [sp, #8]
1087 ed8: e5900000 ldr r0, [r0]
1088 edc: e58d0008 str r0, [sp, #8]
1089 ee0: eaffffd5 b e3c <free+0x2c>
1090 ee4: e59d000c ldr r0, [sp, #12]
1091 ee8: e5901004 ldr r1, [r0, #4]
1092 eec: e0800181 add r0, r0, r1, lsl #3
1093 ef0: e59d1008 ldr r1, [sp, #8]
1094 ef4: e5911000 ldr r1, [r1]
1095 ef8: e1500001 cmp r0, r1
1096 efc: 1a00000d bne f38 <free+0x128>
1097 f00: eaffffff b f04 <free+0xf4>
1098 f04: e59d0008 ldr r0, [sp, #8]
1099 f08: e5900000 ldr r0, [r0]
1100 f0c: e5900004 ldr r0, [r0, #4]
1101 f10: e59d100c ldr r1, [sp, #12]
1102 f14: e5912004 ldr r2, [r1, #4]
1103 f18: e0820000 add r0, r2, r0
1104 f1c: e5810004 str r0, [r1, #4]
1105 f20: e59d0008 ldr r0, [sp, #8]
1106 f24: e5900000 ldr r0, [r0]
1107 f28: e5900000 ldr r0, [r0]
1108 f2c: e59d100c ldr r1, [sp, #12]
1109 f30: e5810000 str r0, [r1]
1110 f34: ea000004 b f4c <free+0x13c>
1111 f38: e59d0008 ldr r0, [sp, #8]
1112 f3c: e5900000 ldr r0, [r0]
1113 f40: e59d100c ldr r1, [sp, #12]
1114 f44: e5810000 str r0, [r1]
1115 f48: eaffffff b f4c <free+0x13c>
1116 f4c: e59d0008 ldr r0, [sp, #8]
1117 f50: e5901004 ldr r1, [r0, #4]
1118 f54: e0800181 add r0, r0, r1, lsl #3
1119 f58: e59d100c ldr r1, [sp, #12]
1120 f5c: e1500001 cmp r0, r1
1121 f60: 1a00000b bne f94 <free+0x184>
1122 f64: eaffffff b f68 <free+0x158>
1123 f68: e59d000c ldr r0, [sp, #12]
1124 f6c: e5900004 ldr r0, [r0, #4]
1125 f70: e59d1008 ldr r1, [sp, #8]
1126 f74: e5912004 ldr r2, [r1, #4]
1127 f78: e0820000 add r0, r2, r0
1128 f7c: e5810004 str r0, [r1, #4]
1129 f80: e59d000c ldr r0, [sp, #12]
1130 f84: e5900000 ldr r0, [r0]
1131 f88: e59d1008 ldr r1, [sp, #8]
1132 f8c: e5810000 str r0, [r1]
1133 f90: ea000003 b fa4 <free+0x194>
1134 f94: e59d000c ldr r0, [sp, #12]
1135 f98: e59d1008 ldr r1, [sp, #8]
1136 f9c: e5810000 str r0, [r1]
1137 fa0: eaffffff b fa4 <free+0x194>
1138 fa4: e59d0008 ldr r0, [sp, #8]
1139 fa8: e59f1008 ldr r1, [pc, #8] ; fb8 <free+0x1a8>
1140 fac: e5810000 str r0, [r1]
1141 fb0: e28dd014 add sp, sp, #20
1142 fb4: e12fff1e bx lr
1143 fb8: 00001368 .word 0x00001368
1144
1145 00000fbc <malloc>:
1146 fbc: e92d4800 push {fp, lr}
1147 fc0: e1a0b00d mov fp, sp
1148 fc4: e24dd018 sub sp, sp, #24
1149 fc8: e1a01000 mov r1, r0
1150 fcc: e50b0008 str r0, [fp, #-8]
1151 fd0: e51b0008 ldr r0, [fp, #-8]
1152 fd4: e2800007 add r0, r0, #7
1153 fd8: e3a02001 mov r2, #1
1154 fdc: e08201a0 add r0, r2, r0, lsr #3
1155 fe0: e58d0004 str r0, [sp, #4]
1156 fe4: e59f013c ldr r0, [pc, #316] ; 1128 <malloc+0x16c>
1157 fe8: e5900000 ldr r0, [r0]
1158 fec: e58d0008 str r0, [sp, #8]
1159 ff0: e3500000 cmp r0, #0
1160 ff4: e58d1000 str r1, [sp]
1161 ff8: 1a000008 bne 1020 <malloc+0x64>
1162 ffc: eaffffff b 1000 <malloc+0x44>
1163 1000: e59f0124 ldr r0, [pc, #292] ; 112c <malloc+0x170>
1164 1004: e58d0008 str r0, [sp, #8]
1165 1008: e59f1118 ldr r1, [pc, #280] ; 1128 <malloc+0x16c>
1166 100c: e5810000 str r0, [r1]
1167 1010: e5800000 str r0, [r0]
1168 1014: e3a01000 mov r1, #0
1169 1018: e5801004 str r1, [r0, #4]
1170 101c: eaffffff b 1020 <malloc+0x64>
1171 1020: e59d0008 ldr r0, [sp, #8]
1172 1024: e5900000 ldr r0, [r0]
1173 1028: e58d000c str r0, [sp, #12]
1174 102c: eaffffff b 1030 <malloc+0x74>
1175 1030: e59d000c ldr r0, [sp, #12]
1176 1034: e5900004 ldr r0, [r0, #4]
1177 1038: e59d1004 ldr r1, [sp, #4]
1178 103c: e1500001 cmp r0, r1
1179 1040: 3a00001f bcc 10c4 <malloc+0x108>
1180 1044: eaffffff b 1048 <malloc+0x8c>
1181 1048: e59d000c ldr r0, [sp, #12]
1182 104c: e5900004 ldr r0, [r0, #4]
1183 1050: e59d1004 ldr r1, [sp, #4]
1184 1054: e1500001 cmp r0, r1
1185 1058: 1a000005 bne 1074 <malloc+0xb8>
1186 105c: eaffffff b 1060 <malloc+0xa4>
1187 1060: e59d000c ldr r0, [sp, #12]
1188 1064: e5900000 ldr r0, [r0]
1189 1068: e59d1008 ldr r1, [sp, #8]
1190 106c: e5810000 str r0, [r1]
1191 1070: ea00000c b 10a8 <malloc+0xec>
1192 1074: e59d0004 ldr r0, [sp, #4]
1193 1078: e59d100c ldr r1, [sp, #12]
1194 107c: e5912004 ldr r2, [r1, #4]
1195 1080: e0420000 sub r0, r2, r0
1196 1084: e5810004 str r0, [r1, #4]
1197 1088: e59d000c ldr r0, [sp, #12]
1198 108c: e5901004 ldr r1, [r0, #4]
1199 1090: e0800181 add r0, r0, r1, lsl #3
1200 1094: e58d000c str r0, [sp, #12]
1201 1098: e59d0004 ldr r0, [sp, #4]
1202 109c: e59d100c ldr r1, [sp, #12]
1203 10a0: e5810004 str r0, [r1, #4]
1204 10a4: eaffffff b 10a8 <malloc+0xec>
1205 10a8: e59d0008 ldr r0, [sp, #8]
1206 10ac: e59f1074 ldr r1, [pc, #116] ; 1128 <malloc+0x16c>
1207 10b0: e5810000 str r0, [r1]
1208 10b4: e59d000c ldr r0, [sp, #12]
1209 10b8: e2800008 add r0, r0, #8
1210 10bc: e50b0004 str r0, [fp, #-4]
1211 10c0: ea000015 b 111c <malloc+0x160>
1212 10c4: e59d000c ldr r0, [sp, #12]
1213 10c8: e59f1058 ldr r1, [pc, #88] ; 1128 <malloc+0x16c>
1214 10cc: e5911000 ldr r1, [r1]
1215 10d0: e1500001 cmp r0, r1
1216 10d4: 1a00000a bne 1104 <malloc+0x148>
1217 10d8: eaffffff b 10dc <malloc+0x120>
1218 10dc: e59d0004 ldr r0, [sp, #4]
1219 10e0: eb000012 bl 1130 <morecore>
1220 10e4: e58d000c str r0, [sp, #12]
1221 10e8: e3500000 cmp r0, #0
1222 10ec: 1a000003 bne 1100 <malloc+0x144>
1223 10f0: eaffffff b 10f4 <malloc+0x138>
1224 10f4: e3a00000 mov r0, #0
1225 10f8: e50b0004 str r0, [fp, #-4]
1226 10fc: ea000006 b 111c <malloc+0x160>
1227 1100: eaffffff b 1104 <malloc+0x148>
1228 1104: eaffffff b 1108 <malloc+0x14c>
1229 1108: e59d000c ldr r0, [sp, #12]
1230 110c: e58d0008 str r0, [sp, #8]
1231 1110: e5900000 ldr r0, [r0]
1232 1114: e58d000c str r0, [sp, #12]
1233 1118: eaffffc4 b 1030 <malloc+0x74>
1234 111c: e51b0004 ldr r0, [fp, #-4]
1235 1120: e1a0d00b mov sp, fp
1236 1124: e8bd8800 pop {fp, pc}
1237 1128: 00001368 .word 0x00001368
1238 112c: 0000136c .word 0x0000136c
1239
1240 00001130 <morecore>:
1241 freep = p;
1242 }
1243
1244 static Header*
1245 morecore(uint nu)
1246 {
1247 1130: e92d4800 push {fp, lr}
1248 1134: e1a0b00d mov fp, sp
1249 1138: e24dd018 sub sp, sp, #24
1250 113c: e1a01000 mov r1, r0
1251 1140: e50b0008 str r0, [fp, #-8]
1252 char *p;
1253 Header *hp;
1254
1255 if(nu < 4096)
1256 1144: e51b0008 ldr r0, [fp, #-8]
1257 1148: e3a02000 mov r2, #0
1258 114c: e1520620 cmp r2, r0, lsr #12
1259 1150: e58d1004 str r1, [sp, #4]
1260 1154: 1a000003 bne 1168 <morecore+0x38>
1261 1158: eaffffff b 115c <morecore+0x2c>
1262 nu = 4096;
1263 115c: e3a00a01 mov r0, #4096 ; 0x1000
1264 1160: e50b0008 str r0, [fp, #-8]
1265 1164: eaffffff b 1168 <morecore+0x38>
1266 p = sbrk(nu * sizeof(Header));
1267 1168: e51b0008 ldr r0, [fp, #-8]
1268 116c: e1a00180 lsl r0, r0, #3
1269 1170: ebfffe10 bl 9b8 <sbrk>
1270 1174: e58d000c str r0, [sp, #12]
1271 if(p == (char*)-1)
1272 1178: e59d000c ldr r0, [sp, #12]
1273 117c: e3700001 cmn r0, #1
1274 1180: 1a000003 bne 1194 <morecore+0x64>
1275 1184: eaffffff b 1188 <morecore+0x58>
1276 return 0;
1277 1188: e3a00000 mov r0, #0
1278 118c: e50b0004 str r0, [fp, #-4]
1279 1190: ea00000b b 11c4 <morecore+0x94>
1280 hp = (Header*)p;
1281 1194: e59d000c ldr r0, [sp, #12]
1282 1198: e58d0008 str r0, [sp, #8]
1283 hp->s.size = nu;
1284 119c: e51b0008 ldr r0, [fp, #-8]
1285 11a0: e59d1008 ldr r1, [sp, #8]
1286 11a4: e5810004 str r0, [r1, #4]
1287 free((void*)(hp + 1));
1288 11a8: e59d0008 ldr r0, [sp, #8]
1289 11ac: e2800008 add r0, r0, #8
1290 11b0: ebffff16 bl e10 <free>
1291 return freep;
1292 11b4: e59f0014 ldr r0, [pc, #20] ; 11d0 <morecore+0xa0>
1293 11b8: e5900000 ldr r0, [r0]
1294 11bc: e50b0004 str r0, [fp, #-4]
1295 11c0: eaffffff b 11c4 <morecore+0x94>
1296 }
1297 11c4: e51b0004 ldr r0, [fp, #-4]
1298 11c8: e1a0d00b mov sp, fp
1299 11cc: e8bd8800 pop {fp, pc}
1300 11d0: 00001368 .word 0x00001368
1301
1302 000011d4 <__aeabi_uidiv>:
1303 11d4: e2512001 subs r2, r1, #1
1304 11d8: 012fff1e bxeq lr
1305 11dc: 3a000036 bcc 12bc <__aeabi_uidiv+0xe8>
1306 11e0: e1500001 cmp r0, r1
1307 11e4: 9a000022 bls 1274 <__aeabi_uidiv+0xa0>
1308 11e8: e1110002 tst r1, r2
1309 11ec: 0a000023 beq 1280 <__aeabi_uidiv+0xac>
1310 11f0: e311020e tst r1, #-536870912 ; 0xe0000000
1311 11f4: 01a01181 lsleq r1, r1, #3
1312 11f8: 03a03008 moveq r3, #8
1313 11fc: 13a03001 movne r3, #1
1314 1200: e3510201 cmp r1, #268435456 ; 0x10000000
1315 1204: 31510000 cmpcc r1, r0
1316 1208: 31a01201 lslcc r1, r1, #4
1317 120c: 31a03203 lslcc r3, r3, #4
1318 1210: 3afffffa bcc 1200 <__aeabi_uidiv+0x2c>
1319 1214: e3510102 cmp r1, #-2147483648 ; 0x80000000
1320 1218: 31510000 cmpcc r1, r0
1321 121c: 31a01081 lslcc r1, r1, #1
1322 1220: 31a03083 lslcc r3, r3, #1
1323 1224: 3afffffa bcc 1214 <__aeabi_uidiv+0x40>
1324 1228: e3a02000 mov r2, #0
1325 122c: e1500001 cmp r0, r1
1326 1230: 20400001 subcs r0, r0, r1
1327 1234: 21822003 orrcs r2, r2, r3
1328 1238: e15000a1 cmp r0, r1, lsr #1
1329 123c: 204000a1 subcs r0, r0, r1, lsr #1
1330 1240: 218220a3 orrcs r2, r2, r3, lsr #1
1331 1244: e1500121 cmp r0, r1, lsr #2
1332 1248: 20400121 subcs r0, r0, r1, lsr #2
1333 124c: 21822123 orrcs r2, r2, r3, lsr #2
1334 1250: e15001a1 cmp r0, r1, lsr #3
1335 1254: 204001a1 subcs r0, r0, r1, lsr #3
1336 1258: 218221a3 orrcs r2, r2, r3, lsr #3
1337 125c: e3500000 cmp r0, #0
1338 1260: 11b03223 lsrsne r3, r3, #4
1339 1264: 11a01221 lsrne r1, r1, #4
1340 1268: 1affffef bne 122c <__aeabi_uidiv+0x58>
1341 126c: e1a00002 mov r0, r2
1342 1270: e12fff1e bx lr
1343 1274: 03a00001 moveq r0, #1
1344 1278: 13a00000 movne r0, #0
1345 127c: e12fff1e bx lr
1346 1280: e3510801 cmp r1, #65536 ; 0x10000
1347 1284: 21a01821 lsrcs r1, r1, #16
1348 1288: 23a02010 movcs r2, #16
1349 128c: 33a02000 movcc r2, #0
1350 1290: e3510c01 cmp r1, #256 ; 0x100
1351 1294: 21a01421 lsrcs r1, r1, #8
1352 1298: 22822008 addcs r2, r2, #8
1353 129c: e3510010 cmp r1, #16
1354 12a0: 21a01221 lsrcs r1, r1, #4
1355 12a4: 22822004 addcs r2, r2, #4
1356 12a8: e3510004 cmp r1, #4
1357 12ac: 82822003 addhi r2, r2, #3
1358 12b0: 908220a1 addls r2, r2, r1, lsr #1
1359 12b4: e1a00230 lsr r0, r0, r2
1360 12b8: e12fff1e bx lr
1361 12bc: e3500000 cmp r0, #0
1362 12c0: 13e00000 mvnne r0, #0
1363 12c4: ea000007 b 12e8 <__aeabi_idiv0>
1364
1365 000012c8 <__aeabi_uidivmod>:
1366 12c8: e3510000 cmp r1, #0
1367 12cc: 0afffffa beq 12bc <__aeabi_uidiv+0xe8>
1368 12d0: e92d4003 push {r0, r1, lr}
1369 12d4: ebffffbe bl 11d4 <__aeabi_uidiv>
1370 12d8: e8bd4006 pop {r1, r2, lr}
1371 12dc: e0030092 mul r3, r2, r0
1372 12e0: e0411003 sub r1, r1, r3
1373 12e4: e12fff1e bx lr
1374
1375 000012e8 <__aeabi_idiv0>:
1376 12e8: e12fff1e bx lr