linux下gcc的编译过程记录

  通常情况下,linux下可以直接使用gcc命令直接编译生成可执行文件:

例如:hello.c

  1 #include <stdio.h>
  2
  3 #define PI 3.141593
  4
  5 int main(int argc, char **argv)
  6 {
  7     printf("Hello world!\n");
  8     printf("PI: %f\n", PI);
  9
 10     return 0;
 11 }

  可以直接用gcc  hello.c  -o hello即可生成可执行文件

  也可以使用make hello也可生成hello可执行文件

那么你想看下分开编译的具体环节,请跟我来:

1、预编译:命令  gcc  hello.c  -E  -o  hello.i

gcc hello.i -S -o hello.s

  结果如下:

  1 # 1 "hello.c"
  2 # 1 "<built-in>"
  3 # 1 "<命令行>"
  4 # 31 "<命令行>"
  5 # 1 "/usr/include/stdc-predef.h" 1 3 4
  6 # 32 "<命令行>" 2
  7 # 1 "hello.c"
  8 # 1 "/usr/include/stdio.h" 1 3 4
  9 # 27 "/usr/include/stdio.h" 3 4
 10 # 1 "/usr/include/bits/libc-header-start.h" 1 3 4
 11 # 33 "/usr/include/bits/libc-header-start.h" 3 4
 12 # 1 "/usr/include/features.h" 1 3 4
 13 # 450 "/usr/include/features.h" 3 4
 14 # 1 "/usr/include/sys/cdefs.h" 1 3 4
 15 # 452 "/usr/include/sys/cdefs.h" 3 4
 16 # 1 "/usr/include/bits/wordsize.h" 1 3 4
 17 # 453 "/usr/include/sys/cdefs.h" 2 3 4
 18 # 1 "/usr/include/bits/long-double.h" 1 3 4
 19 # 454 "/usr/include/sys/cdefs.h" 2 3 4
 20 # 451 "/usr/include/features.h" 2 3 4
 21 # 474 "/usr/include/features.h" 3 4
 22 # 1 "/usr/include/gnu/stubs.h" 1 3 4
 23
 24
 25
 26
 27 # 1 "/usr/include/bits/wordsize.h" 1 3 4
 28 # 6 "/usr/include/gnu/stubs.h" 2 3 4
 29
 30
 31 # 1 "/usr/include/gnu/stubs-lp64.h" 1 3 4
 32 # 9 "/usr/include/gnu/stubs.h" 2 3 4
 33 # 475 "/usr/include/features.h" 2 3 4
 34 # 34 "/usr/include/bits/libc-header-start.h" 2 3 4
 35 # 28 "/usr/include/stdio.h" 2 3 4
 36
 37
 38
 39
 40
 41 # 1 "/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/include/stddef.h" 1 3 4
 42 # 209 "/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/include/stddef.h" 3 4
 43
 44 # 209 "/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/include/stddef.h" 3 4
 45 typedef long unsigned int size_t;
 46 # 34 "/usr/include/stdio.h" 2 3 4
 47
 48
 49 # 1 "/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/include/stdarg.h" 1 3 4
 50 # 40 "/usr/lib/gcc/aarch64-unknown-linux-gnu/9.1.0/include/stdarg.h" 3 4
 51 typedef __builtin_va_list __gnuc_va_list;
 52 # 37 "/usr/include/stdio.h" 2 3 4
 53
 54 # 1 "/usr/include/bits/types.h" 1 3 4
 55 # 27 "/usr/include/bits/types.h" 3 4
 56 # 1 "/usr/include/bits/wordsize.h" 1 3 4
 57 # 28 "/usr/include/bits/types.h" 2 3 4
 58 # 1 "/usr/include/bits/timesize.h" 1 3 4
 59 # 19 "/usr/include/bits/timesize.h" 3 4
 60 # 1 "/usr/include/bits/wordsize.h" 1 3 4
 61 # 20 "/usr/include/bits/timesize.h" 2 3 4
 62 # 29 "/usr/include/bits/types.h" 2 3 4
 63
 64
 65 typedef unsigned char __u_char;
 66 typedef unsigned short int __u_short;
 67 typedef unsigned int __u_int;
 68 typedef unsigned long int __u_long;
 69
 70
 71 typedef signed char __int8_t;
 72 typedef unsigned char __uint8_t;
 73 typedef signed short int __int16_t;
 74 typedef unsigned short int __uint16_t;
 75 typedef signed int __int32_t;
 76 typedef unsigned int __uint32_t;
 77
 78 typedef signed long int __int64_t;
 79 typedef unsigned long int __uint64_t;
 80
 81
 82
 83
 84
 85
 86 typedef __int8_t __int_least8_t;
 87 typedef __uint8_t __uint_least8_t;
 88 typedef __int16_t __int_least16_t;
 89 typedef __uint16_t __uint_least16_t;
 90 typedef __int32_t __int_least32_t;
 91 typedef __uint32_t __uint_least32_t;
 92 typedef __int64_t __int_least64_t;
 93 typedef __uint64_t __uint_least64_t;
 94
 95
 96
 97 typedef long int __quad_t;
 98 typedef unsigned long int __u_quad_t;
 99
100
101
102
103
104
105
106 typedef long int __intmax_t;
107 typedef unsigned long int __uintmax_t;
108 # 141 "/usr/include/bits/types.h" 3 4
109 # 1 "/usr/include/bits/typesizes.h" 1 3 4
110 # 142 "/usr/include/bits/types.h" 2 3 4
111 # 1 "/usr/include/bits/time64.h" 1 3 4
112 # 143 "/usr/include/bits/types.h" 2 3 4
113
114
115 typedef unsigned long int __dev_t;
116 typedef unsigned int __uid_t;
117 typedef unsigned int __gid_t;
118 typedef unsigned long int __ino_t;
119 typedef unsigned long int __ino64_t;
120 typedef unsigned int __mode_t;
121 typedef unsigned int __nlink_t;
122 typedef long int __off_t;
123 typedef long int __off64_t;
124 typedef int __pid_t;
125 typedef struct { int __val[2]; } __fsid_t;
126 typedef long int __clock_t;
127 typedef unsigned long int __rlim_t;
128 typedef unsigned long int __rlim64_t;
129 typedef unsigned int __id_t;
130 typedef long int __time_t;
131 typedef unsigned int __useconds_t;
132 typedef long int __suseconds_t;
133
134 typedef int __daddr_t;
135 typedef int __key_t;
136
137
138 typedef int __clockid_t;
139
140
141 typedef void * __timer_t;
142
143
144 typedef int __blksize_t;
145
146
147
148
149 typedef long int __blkcnt_t;
150 typedef long int __blkcnt64_t;
151
152
153 typedef unsigned long int __fsblkcnt_t;
154 typedef unsigned long int __fsblkcnt64_t;
155
156
157 typedef unsigned long int __fsfilcnt_t;
158 typedef unsigned long int __fsfilcnt64_t;
159
160
161 typedef long int __fsword_t;
162
163 typedef long int __ssize_t;
164
165
166 typedef long int __syscall_slong_t;
167
168 typedef unsigned long int __syscall_ulong_t;
169
170
171
172 typedef __off64_t __loff_t;
173 typedef char *__caddr_t;
174
175
176 typedef long int __intptr_t;
177
178
179 typedef unsigned int __socklen_t;
180
181
182
183
184 typedef int __sig_atomic_t;
185 # 39 "/usr/include/stdio.h" 2 3 4
186 # 1 "/usr/include/bits/types/__fpos_t.h" 1 3 4
187
188
189
190
191 # 1 "/usr/include/bits/types/__mbstate_t.h" 1 3 4
192 # 13 "/usr/include/bits/types/__mbstate_t.h" 3 4
193 typedef struct
194 {
195   int __count;
196   union
197   {
198     unsigned int __wch;
199     char __wchb[4];
200   } __value;
201 } __mbstate_t;
202 # 6 "/usr/include/bits/types/__fpos_t.h" 2 3 4
203
204
205
206
207 typedef struct _G_fpos_t
208 {
209   __off_t __pos;
210   __mbstate_t __state;
211 } __fpos_t;
212 # 40 "/usr/include/stdio.h" 2 3 4
213 # 1 "/usr/include/bits/types/__fpos64_t.h" 1 3 4
214 # 10 "/usr/include/bits/types/__fpos64_t.h" 3 4
215 typedef struct _G_fpos64_t
216 {
217   __off64_t __pos;
218   __mbstate_t __state;
219 } __fpos64_t;
220 # 41 "/usr/include/stdio.h" 2 3 4
221 # 1 "/usr/include/bits/types/__FILE.h" 1 3 4
222
223
224
225 struct _IO_FILE;
226 typedef struct _IO_FILE __FILE;
227 # 42 "/usr/include/stdio.h" 2 3 4
228 # 1 "/usr/include/bits/types/FILE.h" 1 3 4
229
230
231
232 struct _IO_FILE;
233
234
235 typedef struct _IO_FILE FILE;
236 # 43 "/usr/include/stdio.h" 2 3 4
237 # 1 "/usr/include/bits/types/struct_FILE.h" 1 3 4
238 # 35 "/usr/include/bits/types/struct_FILE.h" 3 4
239 struct _IO_FILE;
240 struct _IO_marker;
241 struct _IO_codecvt;
242 struct _IO_wide_data;
243
244
245
246
247 typedef void _IO_lock_t;
248
249
250
251
252
253 struct _IO_FILE
254 {
255   int _flags;
256
257
258   char *_IO_read_ptr;
259   char *_IO_read_end;
260   char *_IO_read_base;
261   char *_IO_write_base;
262   char *_IO_write_ptr;
263   char *_IO_write_end;
264   char *_IO_buf_base;
265   char *_IO_buf_end;
266
267
268   char *_IO_save_base;
269   char *_IO_backup_base;
270   char *_IO_save_end;
271
272   struct _IO_marker *_markers;
273
274   struct _IO_FILE *_chain;
275
276   int _fileno;
277   int _flags2;
278   __off_t _old_offset;
279
280
281   unsigned short _cur_column;
282   signed char _vtable_offset;
283   char _shortbuf[1];
284
285   _IO_lock_t *_lock;
286
287
288
289
290
291
292
293   __off64_t _offset;
294
295   struct _IO_codecvt *_codecvt;
296   struct _IO_wide_data *_wide_data;
297   struct _IO_FILE *_freeres_list;
298   void *_freeres_buf;
299   size_t __pad5;
300   int _mode;
301
302   char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
303 };
304 # 44 "/usr/include/stdio.h" 2 3 4
305 # 52 "/usr/include/stdio.h" 3 4
306 typedef __gnuc_va_list va_list;
307 # 63 "/usr/include/stdio.h" 3 4
308 typedef __off_t off_t;
309 # 77 "/usr/include/stdio.h" 3 4
310 typedef __ssize_t ssize_t;
311
312
313
314
315
316
317 typedef __fpos_t fpos_t;
318 # 133 "/usr/include/stdio.h" 3 4
319 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
320 # 134 "/usr/include/stdio.h" 2 3 4
321
322
323
324 extern FILE *stdin;
325 extern FILE *stdout;
326 extern FILE *stderr;
327
328
329
330
331
332
333 extern int remove (const char *__filename) __attribute__ ((__nothrow__ , __leaf__));
334
335 extern int rename (const char *__old, const char *__new) __attribute__ ((__nothrow__ , __leaf__));
336
337
338
339 extern int renameat (int __oldfd, const char *__old, int __newfd,
340        const char *__new) __attribute__ ((__nothrow__ , __leaf__));
341 # 173 "/usr/include/stdio.h" 3 4
342 extern FILE *tmpfile (void) ;
343 # 187 "/usr/include/stdio.h" 3 4
344 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
345
346
347
348
349 extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) ;
350 # 204 "/usr/include/stdio.h" 3 4
351 extern char *tempnam (const char *__dir, const char *__pfx)
352      __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) ;
353
354
355
356
357
358
359
360 extern int fclose (FILE *__stream);
361
362
363
364
365 extern int fflush (FILE *__stream);
366 # 227 "/usr/include/stdio.h" 3 4
367 extern int fflush_unlocked (FILE *__stream);
368 # 246 "/usr/include/stdio.h" 3 4
369 extern FILE *fopen (const char *__restrict __filename,
370       const char *__restrict __modes) ;
371
372
373
374
375 extern FILE *freopen (const char *__restrict __filename,
376         const char *__restrict __modes,
377         FILE *__restrict __stream) ;
378 # 279 "/usr/include/stdio.h" 3 4
379 extern FILE *fdopen (int __fd, const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) ;
380 # 292 "/usr/include/stdio.h" 3 4
381 extern FILE *fmemopen (void *__s, size_t __len, const char *__modes)
382   __attribute__ ((__nothrow__ , __leaf__)) ;
383
384
385
386
387 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) ;
388
389
390
391
392
393 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__));
394
395
396
397 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
398       int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__));
399
400
401
402
403 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
404          size_t __size) __attribute__ ((__nothrow__ , __leaf__));
405
406
407 extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
408
409
410
411
412
413
414
415 extern int fprintf (FILE *__restrict __stream,
416       const char *__restrict __format, ...);
417
418
419
420
421 extern int printf (const char *__restrict __format, ...);
422
423 extern int sprintf (char *__restrict __s,
424       const char *__restrict __format, ...) __attribute__ ((__nothrow__));
425
426
427
428
429
430 extern int vfprintf (FILE *__restrict __s, const char *__restrict __format,
431        __gnuc_va_list __arg);
432
433
434
435
436 extern int vprintf (const char *__restrict __format, __gnuc_va_list __arg);
437
438 extern int vsprintf (char *__restrict __s, const char *__restrict __format,
439        __gnuc_va_list __arg) __attribute__ ((__nothrow__));
440
441
442
443 extern int snprintf (char *__restrict __s, size_t __maxlen,
444        const char *__restrict __format, ...)
445      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
446
447 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
448         const char *__restrict __format, __gnuc_va_list __arg)
449      __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
450 # 379 "/usr/include/stdio.h" 3 4
451 extern int vdprintf (int __fd, const char *__restrict __fmt,
452        __gnuc_va_list __arg)
453      __attribute__ ((__format__ (__printf__, 2, 0)));
454 extern int dprintf (int __fd, const char *__restrict __fmt, ...)
455      __attribute__ ((__format__ (__printf__, 2, 3)));
456
457
458
459
460
461
462
463 extern int fscanf (FILE *__restrict __stream,
464      const char *__restrict __format, ...) ;
465
466
467
468
469 extern int scanf (const char *__restrict __format, ...) ;
470
471 extern int sscanf (const char *__restrict __s,
472      const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__));
473
474
475
476
477
478
479 extern int fscanf (FILE *__restrict __stream, const char *__restrict __format, ...) __asm__ ("" "__isoc99_fscanf")
480
481                                ;
482 extern int scanf (const char *__restrict __format, ...) __asm__ ("" "__isoc99_scanf")
483                               ;
484 extern int sscanf (const char *__restrict __s, const char *__restrict __format, ...) __asm__ ("" "__isoc99_sscanf") __attribute__ ((__nothrow__ , __leaf__))
485
486                       ;
487 # 432 "/usr/include/stdio.h" 3 4
488 extern int vfscanf (FILE *__restrict __s, const char *__restrict __format,
489       __gnuc_va_list __arg)
490      __attribute__ ((__format__ (__scanf__, 2, 0))) ;
491
492
493
494
495
496 extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg)
497      __attribute__ ((__format__ (__scanf__, 1, 0))) ;
498
499
500 extern int vsscanf (const char *__restrict __s,
501       const char *__restrict __format, __gnuc_va_list __arg)
502      __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
503
504
505
506
507 extern int vfscanf (FILE *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vfscanf")
508
509
510
511      __attribute__ ((__format__ (__scanf__, 2, 0))) ;
512 extern int vscanf (const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vscanf")
513
514      __attribute__ ((__format__ (__scanf__, 1, 0))) ;
515 extern int vsscanf (const char *__restrict __s, const char *__restrict __format, __gnuc_va_list __arg) __asm__ ("" "__isoc99_vsscanf") __attribute__ ((__nothrow__ , __leaf__))
516
517
518
519      __attribute__ ((__format__ (__scanf__, 2, 0)));
520 # 485 "/usr/include/stdio.h" 3 4
521 extern int fgetc (FILE *__stream);
522 extern int getc (FILE *__stream);
523
524
525
526
527
528 extern int getchar (void);
529
530
531
532
533
534
535 extern int getc_unlocked (FILE *__stream);
536 extern int getchar_unlocked (void);
537 # 510 "/usr/include/stdio.h" 3 4
538 extern int fgetc_unlocked (FILE *__stream);
539 # 521 "/usr/include/stdio.h" 3 4
540 extern int fputc (int __c, FILE *__stream);
541 extern int putc (int __c, FILE *__stream);
542
543
544
545
546
547 extern int putchar (int __c);
548 # 537 "/usr/include/stdio.h" 3 4
549 extern int fputc_unlocked (int __c, FILE *__stream);
550
551
552
553
554
555
556
557 extern int putc_unlocked (int __c, FILE *__stream);
558 extern int putchar_unlocked (int __c);
559
560
561
562
563
564
565 extern int getw (FILE *__stream);
566
567
568 extern int putw (int __w, FILE *__stream);
569
570
571
572
573
574
575
576 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
577      ;
578 # 603 "/usr/include/stdio.h" 3 4
579 extern __ssize_t __getdelim (char **__restrict __lineptr,
580                              size_t *__restrict __n, int __delimiter,
581                              FILE *__restrict __stream) ;
582 extern __ssize_t getdelim (char **__restrict __lineptr,
583                            size_t *__restrict __n, int __delimiter,
584                            FILE *__restrict __stream) ;
585
586
587
588
589
590
591
592 extern __ssize_t getline (char **__restrict __lineptr,
593                           size_t *__restrict __n,
594                           FILE *__restrict __stream) ;
595
596
597
598
599
600
601
602 extern int fputs (const char *__restrict __s, FILE *__restrict __stream);
603
604
605
606
607
608 extern int puts (const char *__s);
609
610
611
612
613
614
615 extern int ungetc (int __c, FILE *__stream);
616
617
618
619
620
621
622 extern size_t fread (void *__restrict __ptr, size_t __size,
623        size_t __n, FILE *__restrict __stream) ;
624
625
626
627
628 extern size_t fwrite (const void *__restrict __ptr, size_t __size,
629         size_t __n, FILE *__restrict __s);
630 # 673 "/usr/include/stdio.h" 3 4
631 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
632          size_t __n, FILE *__restrict __stream) ;
633 extern size_t fwrite_unlocked (const void *__restrict __ptr, size_t __size,
634           size_t __n, FILE *__restrict __stream);
635
636
637
638
639
640
641
642 extern int fseek (FILE *__stream, long int __off, int __whence);
643
644
645
646
647 extern long int ftell (FILE *__stream) ;
648
649
650
651
652 extern void rewind (FILE *__stream);
653 # 707 "/usr/include/stdio.h" 3 4
654 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
655
656
657
658
659 extern __off_t ftello (FILE *__stream) ;
660 # 731 "/usr/include/stdio.h" 3 4
661 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
662
663
664
665
666 extern int fsetpos (FILE *__stream, const fpos_t *__pos);
667 # 757 "/usr/include/stdio.h" 3 4
668 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
669
670 extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
671
672 extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
673
674
675
676 extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
677 extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
678 extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
679
680
681
682
683
684
685
686 extern void perror (const char *__s);
687
688
689
690
691
692 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
693 # 26 "/usr/include/bits/sys_errlist.h" 3 4
694 extern int sys_nerr;
695 extern const char *const sys_errlist[];
696 # 782 "/usr/include/stdio.h" 2 3 4
697
698
699
700
701 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
702
703
704
705
706 extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
707 # 800 "/usr/include/stdio.h" 3 4
708 extern FILE *popen (const char *__command, const char *__modes) ;
709
710
711
712
713
714 extern int pclose (FILE *__stream);
715
716
717
718
719
720 extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__));
721 # 840 "/usr/include/stdio.h" 3 4
722 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
723
724
725
726 extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) ;
727
728
729 extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__));
730 # 858 "/usr/include/stdio.h" 3 4
731 extern int __uflow (FILE *);
732 extern int __overflow (FILE *, int);
733 # 873 "/usr/include/stdio.h" 3 4
734
735 # 2 "hello.c" 2
736
737
738
739
740 # 5 "hello.c"
741 int main(int argc, char **argv)
742 {
743  printf("Hello world!\n");
744  printf("PI: %f\n", 3.141593);
745
746  return 0;
747 }
~                                        

2、编译:命令  gcc hello.i -S -o hello.s, 结果:

  1     .arch armv8-a
  2     .file   "hello.c"
  3     .text
  4     .section    .rodata
  5     .align  3
  6 .LC0:
  7     .string "Hello world!"
  8     .align  3
  9 .LC1:
 10     .string "PI: %f\n"
 11     .text
 12     .align  2
 13     .global main
 14     .type   main, %function
 15 main:
 16 .LFB0:
 17     .cfi_startproc
 18     stp x29, x30, [sp, -32]!
 19     .cfi_def_cfa_offset 32
 20     .cfi_offset 29, -32
 21     .cfi_offset 30, -24
 22     mov x29, sp
 23     str w0, [sp, 28]
 24     str x1, [sp, 16]
 25     adrp    x0, .LC0
 26     add x0, x0, :lo12:.LC0
 27     bl  puts
 28     adrp    x0, .LC2
 29     ldr d0, [x0, #:lo12:.LC2]
 30     adrp    x0, .LC1
 31     add x0, x0, :lo12:.LC1
 32     bl  printf
 33     mov w0, 0
 34     ldp x29, x30, [sp], 32
 35     .cfi_restore 30
 36     .cfi_restore 29
 37     .cfi_def_cfa_offset 0
 38     ret
 39     .cfi_endproc
 40 .LFE0:
 41     .size   main, .-main
 42     .section    .rodata
 43     .align  3
 44 .LC2:
 45     .word   2193800575
 46     .word   1074340347
 47     .ident  "GCC: (GNU) 9.1.0"
 48     .section    .note.GNU-stack,"",@progbits

3、汇编:命令  gcc hello.s -c -o hello.o, 结果:使用二进制文件查看,命令:od  hello.o

0000000 042577 043114 000402 000001 000000 000000 000000 000000
0000020 000001 000267 000001 000000 000000 000000 000000 000000
0000040 000000 000000 000000 000000 001670 000000 000000 000000
0000060 000000 000000 000100 000000 000000 000100 000015 000014
0000100 075775 124676 001775 110400 017740 134400 005741 174400
0000120 000000 110000 000000 110400 000000 112000 000000 110000
0000140 000000 176500 000000 110000 000000 110400 000000 112000
0000160 000000 051200 075775 124302 001700 153137 000000 000000
0000200 062510 066154 020157 067567 066162 020544 000000 000000
0000220 044520 020072 063045 000012 136577 101302 020773 040011
0000240 043400 041503 020072 043450 052516 020051 027071 027061
0000260 000060 000000 000000 000000 000020 000000 000000 000000
0000300 075001 000122 074004 000436 006033 000037 000040 000000
0000320 000030 000000 000000 000000 000074 000000 040400 020016
0000340 002235 001636 157115 007335 000000 000000 000000 000000
0000360 000000 000000 000000 000000 000000 000000 000000 000000
0000400 000000 000000 000000 000000 000001 000000 000004 177761
0000420 000000 000000 000000 000000 000000 000000 000000 000000
0000440 000000 000000 000003 000001 000000 000000 000000 000000
0000460 000000 000000 000000 000000 000000 000000 000003 000003
0000500 000000 000000 000000 000000 000000 000000 000000 000000
0000520 000000 000000 000003 000004 000000 000000 000000 000000
0000540 000000 000000 000000 000000 000000 000000 000003 000005
0000560 000000 000000 000000 000000 000000 000000 000000 000000
0000600 000011 000000 000000 000005 000000 000000 000000 000000
0000620 000000 000000 000000 000000 000014 000000 000000 000001
0000640 000000 000000 000000 000000 000000 000000 000000 000000
0000660 000000 000000 000003 000007 000000 000000 000000 000000
0000700 000000 000000 000000 000000 000011 000000 000000 000010
0000720 000024 000000 000000 000000 000000 000000 000000 000000
0000740 000000 000000 000003 000010 000000 000000 000000 000000
0000760 000000 000000 000000 000000 000000 000000 000003 000006
0001000 000000 000000 000000 000000 000000 000000 000000 000000
0001020 000017 000000 000022 000001 000000 000000 000000 000000
0001040 000074 000000 000000 000000 000024 000000 000020 000000
0001060 000000 000000 000000 000000 000000 000000 000000 000000
0001100 000031 000000 000020 000000 000000 000000 000000 000000
0001120 000000 000000 000000 000000 064000 066145 067554 061456
0001140 022000 000144 074044 066400 064541 000156 072560 071564
0001160 070000 064562 072156 000146 000020 000000 000000 000000
0001200 000423 000000 000005 000000 000000 000000 000000 000000
0001220 000024 000000 000000 000000 000425 000000 000005 000000
0001240 000000 000000 000000 000000 000030 000000 000000 000000
0001260 000433 000000 000015 000000 000000 000000 000000 000000
0001300 000034 000000 000000 000000 000423 000000 000005 000000
0001320 000030 000000 000000 000000 000040 000000 000000 000000
0001340 000436 000000 000005 000000 000030 000000 000000 000000
0001360 000044 000000 000000 000000 000423 000000 000005 000000
0001400 000020 000000 000000 000000 000050 000000 000000 000000
0001420 000425 000000 000005 000000 000020 000000 000000 000000
0001440 000054 000000 000000 000000 000433 000000 000016 000000
0001460 000000 000000 000000 000000 000034 000000 000000 000000
0001500 000405 000000 000002 000000 000000 000000 000000 000000
0001520 027000 074563 072155 061141 027000 072163 072162 061141
0001540 027000 064163 072163 072162 061141 027000 062562 060554
0001560 072056 074145 000164 062056 072141 000141 061056 071563
0001600 027000 067562 060544 060564 027000 067543 066555 067145
0001620 000164 067056 072157 027145 047107 026525 072163 061541
0001640 000153 071056 066145 027141 064145 063137 060562 062555
0001660 000000 000000 000000 000000 000000 000000 000000 000000
*
0001760 000000 000000 000000 000000 000040 000000 000001 000000
0002000 000006 000000 000000 000000 000000 000000 000000 000000
0002020 000100 000000 000000 000000 000074 000000 000000 000000
0002040 000000 000000 000000 000000 000004 000000 000000 000000
0002060 000000 000000 000000 000000 000033 000000 000004 000000
0002100 000100 000000 000000 000000 000000 000000 000000 000000
0002120 001170 000000 000000 000000 000300 000000 000000 000000
0002140 000012 000000 000001 000000 000010 000000 000000 000000
0002160 000030 000000 000000 000000 000046 000000 000001 000000
0002200 000003 000000 000000 000000 000000 000000 000000 000000
0002220 000174 000000 000000 000000 000000 000000 000000 000000
0002240 000000 000000 000000 000000 000001 000000 000000 000000
0002260 000000 000000 000000 000000 000054 000000 000010 000000
0002300 000003 000000 000000 000000 000000 000000 000000 000000
0002320 000174 000000 000000 000000 000000 000000 000000 000000
0002340 000000 000000 000000 000000 000001 000000 000000 000000
0002360 000000 000000 000000 000000 000061 000000 000001 000000
0002400 000002 000000 000000 000000 000000 000000 000000 000000
0002420 000200 000000 000000 000000 000040 000000 000000 000000
0002440 000000 000000 000000 000000 000010 000000 000000 000000
0002460 000000 000000 000000 000000 000071 000000 000001 000000
0002500 000060 000000 000000 000000 000000 000000 000000 000000
0002520 000240 000000 000000 000000 000022 000000 000000 000000
0002540 000000 000000 000000 000000 000001 000000 000000 000000
0002560 000001 000000 000000 000000 000102 000000 000001 000000
0002600 000000 000000 000000 000000 000000 000000 000000 000000
0002620 000262 000000 000000 000000 000000 000000 000000 000000
0002640 000000 000000 000000 000000 000001 000000 000000 000000
0002660 000000 000000 000000 000000 000127 000000 000001 000000
0002700 000002 000000 000000 000000 000000 000000 000000 000000
0002720 000270 000000 000000 000000 000070 000000 000000 000000
0002740 000000 000000 000000 000000 000010 000000 000000 000000
0002760 000000 000000 000000 000000 000122 000000 000004 000000
0003000 000100 000000 000000 000000 000000 000000 000000 000000
0003020 001470 000000 000000 000000 000030 000000 000000 000000
0003040 000012 000000 000010 000000 000010 000000 000000 000000
0003060 000030 000000 000000 000000 000001 000000 000002 000000
0003100 000000 000000 000000 000000 000000 000000 000000 000000
0003120 000360 000000 000000 000000 000550 000000 000000 000000
0003140 000013 000000 000014 000000 000010 000000 000000 000000
0003160 000030 000000 000000 000000 000011 000000 000003 000000
0003200 000000 000000 000000 000000 000000 000000 000000 000000
0003220 001130 000000 000000 000000 000040 000000 000000 000000
0003240 000000 000000 000000 000000 000001 000000 000000 000000
0003260 000000 000000 000000 000000 000021 000000 000003 000000
0003300 000000 000000 000000 000000 000000 000000 000000 000000
0003320 001520 000000 000000 000000 000141 000000 000000 000000
0003340 000000 000000 000000 000000 000001 000000 000000 000000
0003360 000000 000000 000000 000000
0003370

  结果:使用十六进制文件查看,命令:hexdump  hello.o

0000000 457f 464c 0102 0001 0000 0000 0000 0000
0000010 0001 00b7 0001 0000 0000 0000 0000 0000
0000020 0000 0000 0000 0000 03b8 0000 0000 0000
0000030 0000 0000 0040 0000 0000 0040 000d 000c
0000040 7bfd a9be 03fd 9100 1fe0 b900 0be1 f900
0000050 0000 9000 0000 9100 0000 9400 0000 9000
0000060 0000 fd40 0000 9000 0000 9100 0000 9400
0000070 0000 5280 7bfd a8c2 03c0 d65f 0000 0000
0000080 6548 6c6c 206f 6f77 6c72 2164 0000 0000
0000090 4950 203a 6625 000a bd7f 82c2 21fb 4009
00000a0 4700 4343 203a 4728 554e 2029 2e39 2e31
00000b0 0030 0000 0000 0000 0010 0000 0000 0000
00000c0 7a01 0052 7804 011e 0c1b 001f 0020 0000
00000d0 0018 0000 0000 0000 003c 0000 4100 200e
00000e0 049d 039e de4d 0edd 0000 0000 0000 0000
00000f0 0000 0000 0000 0000 0000 0000 0000 0000
0000100 0000 0000 0000 0000 0001 0000 0004 fff1
0000110 0000 0000 0000 0000 0000 0000 0000 0000
0000120 0000 0000 0003 0001 0000 0000 0000 0000
0000130 0000 0000 0000 0000 0000 0000 0003 0003
0000140 0000 0000 0000 0000 0000 0000 0000 0000
0000150 0000 0000 0003 0004 0000 0000 0000 0000
0000160 0000 0000 0000 0000 0000 0000 0003 0005
0000170 0000 0000 0000 0000 0000 0000 0000 0000
0000180 0009 0000 0000 0005 0000 0000 0000 0000
0000190 0000 0000 0000 0000 000c 0000 0000 0001
00001a0 0000 0000 0000 0000 0000 0000 0000 0000
00001b0 0000 0000 0003 0007 0000 0000 0000 0000
00001c0 0000 0000 0000 0000 0009 0000 0000 0008
00001d0 0014 0000 0000 0000 0000 0000 0000 0000
00001e0 0000 0000 0003 0008 0000 0000 0000 0000
00001f0 0000 0000 0000 0000 0000 0000 0003 0006
0000200 0000 0000 0000 0000 0000 0000 0000 0000
0000210 000f 0000 0012 0001 0000 0000 0000 0000
0000220 003c 0000 0000 0000 0014 0000 0010 0000
0000230 0000 0000 0000 0000 0000 0000 0000 0000
0000240 0019 0000 0010 0000 0000 0000 0000 0000
0000250 0000 0000 0000 0000 6800 6c65 6f6c 632e
0000260 2400 0064 7824 6d00 6961 006e 7570 7374
0000270 7000 6972 746e 0066 0010 0000 0000 0000
0000280 0113 0000 0005 0000 0000 0000 0000 0000
0000290 0014 0000 0000 0000 0115 0000 0005 0000
00002a0 0000 0000 0000 0000 0018 0000 0000 0000
00002b0 011b 0000 000d 0000 0000 0000 0000 0000
00002c0 001c 0000 0000 0000 0113 0000 0005 0000
00002d0 0018 0000 0000 0000 0020 0000 0000 0000
00002e0 011e 0000 0005 0000 0018 0000 0000 0000
00002f0 0024 0000 0000 0000 0113 0000 0005 0000
0000300 0010 0000 0000 0000 0028 0000 0000 0000
0000310 0115 0000 0005 0000 0010 0000 0000 0000
0000320 002c 0000 0000 0000 011b 0000 000e 0000
0000330 0000 0000 0000 0000 001c 0000 0000 0000
0000340 0105 0000 0002 0000 0000 0000 0000 0000
0000350 2e00 7973 746d 6261 2e00 7473 7472 6261
0000360 2e00 6873 7473 7472 6261 2e00 6572 616c
0000370 742e 7865 0074 642e 7461 0061 622e 7373
0000380 2e00 6f72 6164 6174 2e00 6f63 6d6d 6e65
0000390 0074 6e2e 746f 2e65 4e47 2d55 7473 6361
00003a0 006b 722e 6c65 2e61 6865 665f 6172 656d
00003b0 0000 0000 0000 0000 0000 0000 0000 0000
*
00003f0 0000 0000 0000 0000 0020 0000 0001 0000
0000400 0006 0000 0000 0000 0000 0000 0000 0000
0000410 0040 0000 0000 0000 003c 0000 0000 0000
0000420 0000 0000 0000 0000 0004 0000 0000 0000
0000430 0000 0000 0000 0000 001b 0000 0004 0000
0000440 0040 0000 0000 0000 0000 0000 0000 0000
0000450 0278 0000 0000 0000 00c0 0000 0000 0000
0000460 000a 0000 0001 0000 0008 0000 0000 0000
0000470 0018 0000 0000 0000 0026 0000 0001 0000
0000480 0003 0000 0000 0000 0000 0000 0000 0000
0000490 007c 0000 0000 0000 0000 0000 0000 0000
00004a0 0000 0000 0000 0000 0001 0000 0000 0000
00004b0 0000 0000 0000 0000 002c 0000 0008 0000
00004c0 0003 0000 0000 0000 0000 0000 0000 0000
00004d0 007c 0000 0000 0000 0000 0000 0000 0000
00004e0 0000 0000 0000 0000 0001 0000 0000 0000
00004f0 0000 0000 0000 0000 0031 0000 0001 0000
0000500 0002 0000 0000 0000 0000 0000 0000 0000
0000510 0080 0000 0000 0000 0020 0000 0000 0000
0000520 0000 0000 0000 0000 0008 0000 0000 0000
0000530 0000 0000 0000 0000 0039 0000 0001 0000
0000540 0030 0000 0000 0000 0000 0000 0000 0000
0000550 00a0 0000 0000 0000 0012 0000 0000 0000
0000560 0000 0000 0000 0000 0001 0000 0000 0000
0000570 0001 0000 0000 0000 0042 0000 0001 0000
0000580 0000 0000 0000 0000 0000 0000 0000 0000
0000590 00b2 0000 0000 0000 0000 0000 0000 0000
00005a0 0000 0000 0000 0000 0001 0000 0000 0000
00005b0 0000 0000 0000 0000 0057 0000 0001 0000
00005c0 0002 0000 0000 0000 0000 0000 0000 0000
00005d0 00b8 0000 0000 0000 0038 0000 0000 0000
00005e0 0000 0000 0000 0000 0008 0000 0000 0000
00005f0 0000 0000 0000 0000 0052 0000 0004 0000
0000600 0040 0000 0000 0000 0000 0000 0000 0000
0000610 0338 0000 0000 0000 0018 0000 0000 0000
0000620 000a 0000 0008 0000 0008 0000 0000 0000
0000630 0018 0000 0000 0000 0001 0000 0002 0000
0000640 0000 0000 0000 0000 0000 0000 0000 0000
0000650 00f0 0000 0000 0000 0168 0000 0000 0000
0000660 000b 0000 000c 0000 0008 0000 0000 0000
0000670 0018 0000 0000 0000 0009 0000 0003 0000
0000680 0000 0000 0000 0000 0000 0000 0000 0000
0000690 0258 0000 0000 0000 0020 0000 0000 0000
00006a0 0000 0000 0000 0000 0001 0000 0000 0000
00006b0 0000 0000 0000 0000 0011 0000 0003 0000
00006c0 0000 0000 0000 0000 0000 0000 0000 0000
00006d0 0350 0000 0000 0000 0061 0000 0000 0000
00006e0 0000 0000 0000 0000 0001 0000 0000 0000
00006f0 0000 0000 0000 0000
00006f8

4、链接:命令  gcc hello.o  -o hello, 结果生成可执行文件,执行结果为:

[nication@developROS ~]$ ./hello
Hello world!
PI: 3.141593

5、反编译结果:objdump  -D hello

  1 hello:     文件格式 elf64-littleaarch64
  2 
  3 
  4 Disassembly of section .interp:
  5 
  6 0000000000000238 <.interp>:
  7  238:   62696c2f        .inst   0x62696c2f ; undefined
  8  23c:   2d646c2f        ldp     s15, s27, [x1, #-224]
  9  240:   756e696c        .inst   0x756e696c ; undefined
 10  244:   61612d78        .inst   0x61612d78 ; undefined
 11  248:   36686372        tbz     w18, #13, eb4 <__FRAME_END__+0x4ec>
 12  24c:   6f732e34        .inst   0x6f732e34 ; undefined
 13  250:   地址 0x0000000000000250 越界。
 14 
 15 
 16 Disassembly of section .note.gnu.build-id:
 17 
 18 0000000000000254 <.note.gnu.build-id>:
 19  254:   00000004        .inst   0x00000004 ; undefined
 20  258:   00000014        .inst   0x00000014 ; undefined
 21  25c:   00000003        .inst   0x00000003 ; undefined
 22  260:   00554e47        .inst   0x00554e47 ; undefined
 23  264:   fee4a001        .inst   0xfee4a001 ; undefined
 24  268:   da41d10f        .inst   0xda41d10f ; undefined
 25  26c:   368e7810        tbz     w16, #17, ffffffffffffd16c <__bss_end__+0xfffffffffffec12c>
 26  270:   55fc158d        .inst   0x55fc158d ; undefined
 27  274:   3ac587f6        .inst   0x3ac587f6 ; undefined
 28 
 29 Disassembly of section .note.ABI-tag:
 30 
 31 0000000000000278 <.note.ABI-tag>:
 32  278:   00000004        .word   0x00000004
 33  27c:   00000010        .word   0x00000010
 34  280:   00000001        .word   0x00000001
 35  284:   00554e47        .word   0x00554e47
 36  288:   00000000        .word   0x00000000
 37  28c:   00000003        .word   0x00000003
 38  290:   00000007        .word   0x00000007
 39  294:   00000000        .word   0x00000000
 40 
 41 Disassembly of section .gnu.hash:
 42 
 43 0000000000000298 <.gnu.hash>:
 44  298:   00000001        .inst   0x00000001 ; undefined
 45  29c:   00000001        .inst   0x00000001 ; undefined
 46  2a0:   00000001        .inst   0x00000001 ; undefined
 47         ...
 48 
 49 Disassembly of section .dynsym:
 50 
 51 00000000000002b8 <.dynsym>:
 52         ...
 53  2d4:   000b0003        .inst   0x000b0003 ; undefined
 54  2d8:   00000608        .inst   0x00000608 ; undefined
 55         ...
 56  2ec:   00170003        .inst   0x00170003 ; undefined
 57  2f0:   00011028        .inst   0x00011028 ; undefined
 58         ...
 59  300:   00000049        .inst   0x00000049 ; undefined
 60  304:   00000020        .inst   0x00000020 ; undefined
 61         ...
 62  318:   0000001d        .inst   0x0000001d ; undefined
 63  31c:   00000022        .inst   0x00000022 ; undefined
 64         ...
 65  330:   0000002c        .inst   0x0000002c ; undefined
 66  334:   00000012        .inst   0x00000012 ; undefined
 67         ...
 68  348:   00000065        .inst   0x00000065 ; undefined
 69  34c:   00000020        .inst   0x00000020 ; undefined
 70         ...
 71  360:   00000010        .inst   0x00000010 ; undefined
 72  364:   00000012        .inst   0x00000012 ; undefined
 73         ...
 74  378:   0000000b        .inst   0x0000000b ; undefined
 75  37c:   00000012        .inst   0x00000012 ; undefined
 76         ...
 77  390:   00000074        .inst   0x00000074 ; undefined
 78  394:   00000020        .inst   0x00000020 ; undefined
 79         ...
 80  3a8:   00000016        .inst   0x00000016 ; undefined
 81  3ac:   00000012        .inst   0x00000012 ; undefined
 82         ...
 83 
 84 Disassembly of section .dynstr:
 85 
 86 00000000000003c0 <.dynstr>:
 87  3c0:   62696c00        .inst   0x62696c00 ; undefined
 88  3c4:   6f732e63        .inst   0x6f732e63 ; undefined
 89  3c8:   7000362e        adr     x14, a8f <__FRAME_END__+0xc7>
 90  3cc:   00737475        .inst   0x00737475 ; undefined
 91  3d0:   726f6261        .inst   0x726f6261 ; undefined
 92  3d4:   72700074        .inst   0x72700074 ; undefined
 93  3d8:   66746e69        .inst   0x66746e69 ; undefined
 94  3dc:   635f5f00        .inst   0x635f5f00 ; undefined
 95  3e0:   665f6178        .inst   0x665f6178 ; undefined
 96  3e4:   6c616e69        ldnp    d9, d27, [x19, #-496]
 97  3e8:   00657a69        .inst   0x00657a69 ; undefined
 98  3ec:   696c5f5f        ldpsw   xzr, x23, [x26, #-160]
 99  3f0:   735f6362        .inst   0x735f6362 ; undefined
100  3f4:   74726174        .inst   0x74726174 ; undefined
101  3f8:   69616d5f        ldpsw   xzr, x27, [x10, #-248]
102  3fc:   4c47006e        .inst   0x4c47006e ; undefined
103  400:   5f434249        .inst   0x5f434249 ; undefined
104  404:   37312e32        tbnz    w18, #6, 29c8 <__FRAME_END__+0x2000>
105  408:   54495f00        b.eq    92fe8 <__bss_end__+0x81fa8>  // b.none
106  40c:   65645f4d        fnmla   z13.h, p7/m, z26.h, z4.h
107  410:   69676572        ldpsw   x18, x25, [x11, #-200]
108  414:   72657473        .inst   0x72657473 ; undefined
109  418:   6c434d54        ldnp    d20, d19, [x10, #48]
110  41c:   54656e6f        b.nv    cb1e8 <__bss_end__+0xba1a8>
111  420:   656c6261        fnmls   z1.h, p0/m, z19.h, z12.h
112  424:   675f5f00        .inst   0x675f5f00 ; undefined
113  428:   5f6e6f6d        .inst   0x5f6e6f6d ; undefined
114  42c:   72617473        .inst   0x72617473 ; undefined
115  430:   005f5f74        .inst   0x005f5f74 ; undefined
116  434:   4d54495f        .inst   0x4d54495f ; undefined
117  438:   6765725f        .inst   0x6765725f ; undefined
118  43c:   65747369        fnmls   z9.h, p4/m, z27.h, z20.h
119  440:   434d5472        .inst   0x434d5472 ; undefined
120  444:   656e6f6c        fnmls   z12.h, p3/m, z27.h, z14.h
121  448:   6c626154        ldnp    d20, d24, [x10, #-480]
122  44c:   地址 0x000000000000044c 越界。
123 
124 
125 Disassembly of section .gnu.version:
126 
127 000000000000044e <.gnu.version>:
128         ...
129  456:   00020002        .inst   0x00020002 ; undefined
130  45a:   00020000        .inst   0x00020000 ; undefined
131  45e:   00000002        .inst   0x00000002 ; undefined
132  462:   地址 0x0000000000000462 越界。
133 
134 
135 Disassembly of section .gnu.version_r:
136 
137 0000000000000468 <.gnu.version_r>:
138  468:   00010001        .inst   0x00010001 ; undefined
139  46c:   00000001        .inst   0x00000001 ; undefined
140  470:   00000010        .inst   0x00000010 ; undefined
141  474:   00000000        .inst   0x00000000 ; undefined
142  478:   06969197        .inst   0x06969197 ; undefined
143  47c:   00020000        .inst   0x00020000 ; undefined
144  480:   0000003e        .inst   0x0000003e ; undefined
145  484:   00000000        .inst   0x00000000 ; undefined
146 
147 Disassembly of section .rela.dyn:
148 
149 0000000000000488 <.rela.dyn>:
150  488:   00010db0        .inst   0x00010db0 ; undefined
151  48c:   00000000        .inst   0x00000000 ; undefined
152  490:   00000403        .inst   0x00000403 ; undefined
153  494:   00000000        .inst   0x00000000 ; undefined
154  498:   00000798        .inst   0x00000798 ; undefined
155  49c:   00000000        .inst   0x00000000 ; undefined
156  4a0:   00010db8        .inst   0x00010db8 ; undefined
157  4a4:   00000000        .inst   0x00000000 ; undefined
158  4a8:   00000403        .inst   0x00000403 ; undefined
159  4ac:   00000000        .inst   0x00000000 ; undefined
160  4b0:   00000750        .inst   0x00000750 ; undefined
161  4b4:   00000000        .inst   0x00000000 ; undefined
162  4b8:   00010fa8        .inst   0x00010fa8 ; undefined
163  4bc:   00000000        .inst   0x00000000 ; undefined
164  4c0:   00000403        .inst   0x00000403 ; undefined
165  4c4:   00000000        .inst   0x00000000 ; undefined
166  4c8:   00000860        .inst   0x00000860 ; undefined
167  4cc:   00000000        .inst   0x00000000 ; undefined
168  4d0:   00010fc8        .inst   0x00010fc8 ; undefined
169  4d4:   00000000        .inst   0x00000000 ; undefined
170  4d8:   00000403        .inst   0x00000403 ; undefined
171  4dc:   00000000        .inst   0x00000000 ; undefined
172  4e0:   000007d8        .inst   0x000007d8 ; undefined
173  4e4:   00000000        .inst   0x00000000 ; undefined
174  4e8:   00010fd0        .inst   0x00010fd0 ; undefined
175  4ec:   00000000        .inst   0x00000000 ; undefined
176  4f0:   00000403        .inst   0x00000403 ; undefined
177  4f4:   00000000        .inst   0x00000000 ; undefined
178  4f8:   0000079c        .inst   0x0000079c ; undefined
179  4fc:   00000000        .inst   0x00000000 ; undefined
180  500:   00010fe0        .inst   0x00010fe0 ; undefined
181  504:   00000000        .inst   0x00000000 ; undefined
182  508:   00000403        .inst   0x00000403 ; undefined
183  50c:   00000000        .inst   0x00000000 ; undefined
184  510:   00000608        .inst   0x00000608 ; undefined
185  514:   00000000        .inst   0x00000000 ; undefined
186  518:   00011030        .inst   0x00011030 ; undefined
187  51c:   00000000        .inst   0x00000000 ; undefined
188  520:   00000403        .inst   0x00000403 ; undefined
189  524:   00000000        .inst   0x00000000 ; undefined
190  528:   00011030        .inst   0x00011030 ; undefined
191  52c:   00000000        .inst   0x00000000 ; undefined
192  530:   00010fb0        .inst   0x00010fb0 ; undefined
193  534:   00000000        .inst   0x00000000 ; undefined
194  538:   00000401        .inst   0x00000401 ; undefined
195  53c:   00000003        .inst   0x00000003 ; undefined
196         ...
197  548:   00010fb8        .inst   0x00010fb8 ; undefined
198  54c:   00000000        .inst   0x00000000 ; undefined
199  550:   00000401        .inst   0x00000401 ; undefined
200  554:   00000004        .inst   0x00000004 ; undefined
201         ...
202  560:   00010fc0        .inst   0x00010fc0 ; undefined
203  564:   00000000        .inst   0x00000000 ; undefined
204  568:   00000401        .inst   0x00000401 ; undefined
205  56c:   00000006        .inst   0x00000006 ; undefined
206         ...
207  578:   00010fd8        .inst   0x00010fd8 ; undefined
208  57c:   00000000        .inst   0x00000000 ; undefined
209  580:   00000401        .inst   0x00000401 ; undefined
210  584:   00000009        .inst   0x00000009 ; undefined
211         ...
212 
213 Disassembly of section .rela.plt:
214 
215 0000000000000590 <.rela.plt>:
216  590:   00011000        .inst   0x00011000 ; undefined
217  594:   00000000        .inst   0x00000000 ; undefined
218  598:   00000402        .inst   0x00000402 ; undefined
219  59c:   00000005        .inst   0x00000005 ; undefined
220         ...
221  5a8:   00011008        .inst   0x00011008 ; undefined
222  5ac:   00000000        .inst   0x00000000 ; undefined
223  5b0:   00000402        .inst   0x00000402 ; undefined
224  5b4:   00000006        .inst   0x00000006 ; undefined
225         ...
226  5c0:   00011010        .inst   0x00011010 ; undefined
227  5c4:   00000000        .inst   0x00000000 ; undefined
228  5c8:   00000402        .inst   0x00000402 ; undefined
229  5cc:   00000007        .inst   0x00000007 ; undefined
230         ...
231  5d8:   00011018        .inst   0x00011018 ; undefined
232  5dc:   00000000        .inst   0x00000000 ; undefined
233  5e0:   00000402        .inst   0x00000402 ; undefined
234  5e4:   00000008        .inst   0x00000008 ; undefined
235         ...
236  5f0:   00011020        .inst   0x00011020 ; undefined
237  5f4:   00000000        .inst   0x00000000 ; undefined
238  5f8:   00000402        .inst   0x00000402 ; undefined
239  5fc:   0000000a        .inst   0x0000000a ; undefined
240         ...
241 
242 Disassembly of section .init:
243 
244 0000000000000608 <_init>:
245  608:   a9bf7bfd        stp     x29, x30, [sp, #-16]!
246  60c:   910003fd        mov     x29, sp
247  610:   9400002e        bl      6c8 <call_weak_fn>
248  614:   a8c17bfd        ldp     x29, x30, [sp], #16
249  618:   d65f03c0        ret
250 
251 Disassembly of section .plt:
252 
253 0000000000000620 <.plt>:
254  620:   a9bf7bf0        stp     x16, x30, [sp, #-16]!
255  624:   90000090        adrp    x16, 10000 <__FRAME_END__+0xf638>
256  628:   f947fe11        ldr     x17, [x16, #4088]
257  62c:   913fe210        add     x16, x16, #0xff8
258  630:   d61f0220        br      x17
259  634:   d503201f        nop
260  638:   d503201f        nop
261  63c:   d503201f        nop
262 
263 0000000000000640 <__libc_start_main@plt>:
264  640:   b0000090        adrp    x16, 11000 <__libc_start_main@GLIBC_2.17>
265  644:   f9400211        ldr     x17, [x16]
266  648:   91000210        add     x16, x16, #0x0
267  64c:   d61f0220        br      x17
268 
269 0000000000000650 <__gmon_start__@plt>:
270  650:   b0000090        adrp    x16, 11000 <__libc_start_main@GLIBC_2.17>
271  654:   f9400611        ldr     x17, [x16, #8]
272  658:   91002210        add     x16, x16, #0x8
273  65c:   d61f0220        br      x17
274 
275 0000000000000660 <abort@plt>:
276  660:   b0000090        adrp    x16, 11000 <__libc_start_main@GLIBC_2.17>
277  664:   f9400a11        ldr     x17, [x16, #16]
278  668:   91004210        add     x16, x16, #0x10
279  66c:   d61f0220        br      x17
280 
281 0000000000000670 <puts@plt>:
282  670:   b0000090        adrp    x16, 11000 <__libc_start_main@GLIBC_2.17>
283  674:   f9400e11        ldr     x17, [x16, #24]
284  678:   91006210        add     x16, x16, #0x18
285  67c:   d61f0220        br      x17
286 
287 0000000000000680 <printf@plt>:
288  680:   b0000090        adrp    x16, 11000 <__libc_start_main@GLIBC_2.17>
289  684:   f9401211        ldr     x17, [x16, #32]
290  688:   91008210        add     x16, x16, #0x20
291  68c:   d61f0220        br      x17
292 
293 Disassembly of section .text:
294 
295 0000000000000690 <_start>:
296  690:   d280001d        mov     x29, #0x0                       // #0
297  694:   d280001e        mov     x30, #0x0                       // #0
298  698:   aa0003e5        mov     x5, x0
299  69c:   f94003e1        ldr     x1, [sp]
300  6a0:   910023e2        add     x2, sp, #0x8
301  6a4:   910003e6        mov     x6, sp
302  6a8:   90000080        adrp    x0, 10000 <__FRAME_END__+0xf638>
303  6ac:   f947e800        ldr     x0, [x0, #4048]
304  6b0:   90000083        adrp    x3, 10000 <__FRAME_END__+0xf638>
305  6b4:   f947e463        ldr     x3, [x3, #4040]
306  6b8:   90000084        adrp    x4, 10000 <__FRAME_END__+0xf638>
307  6bc:   f947d484        ldr     x4, [x4, #4008]
308  6c0:   97ffffe0        bl      640 <__libc_start_main@plt>
309  6c4:   97ffffe7        bl      660 <abort@plt>
310 
311 00000000000006c8 <call_weak_fn>:
312  6c8:   90000080        adrp    x0, 10000 <__FRAME_END__+0xf638>
313  6cc:   f947e000        ldr     x0, [x0, #4032]
314  6d0:   b4000040        cbz     x0, 6d8 <call_weak_fn+0x10>
315  6d4:   17ffffdf        b       650 <__gmon_start__@plt>
316  6d8:   d65f03c0        ret
317  6dc:   d503201f        nop
318 
319 00000000000006e0 <deregister_tm_clones>:
320  6e0:   b0000080        adrp    x0, 11000 <__libc_start_main@GLIBC_2.17>
321  6e4:   9100e000        add     x0, x0, #0x38
322  6e8:   b0000081        adrp    x1, 11000 <__libc_start_main@GLIBC_2.17>
323  6ec:   9100e021        add     x1, x1, #0x38
324  6f0:   eb00003f        cmp     x1, x0
325  6f4:   540000c0        b.eq    70c <deregister_tm_clones+0x2c>  // b.none
326  6f8:   90000081        adrp    x1, 10000 <__FRAME_END__+0xf638>
327  6fc:   f947d821        ldr     x1, [x1, #4016]
328  700:   b4000061        cbz     x1, 70c <deregister_tm_clones+0x2c>
329  704:   aa0103f0        mov     x16, x1
330  708:   d61f0200        br      x16
331  70c:   d65f03c0        ret
332 
333 0000000000000710 <register_tm_clones>:
334  710:   b0000080        adrp    x0, 11000 <__libc_start_main@GLIBC_2.17>
335  714:   9100e000        add     x0, x0, #0x38
336  718:   b0000081        adrp    x1, 11000 <__libc_start_main@GLIBC_2.17>
337  71c:   9100e021        add     x1, x1, #0x38
338  720:   cb000021        sub     x1, x1, x0
339  724:   d37ffc22        lsr     x2, x1, #63
340  728:   8b810c41        add     x1, x2, x1, asr #3
341  72c:   eb8107ff        cmp     xzr, x1, asr #1
342  730:   9341fc21        asr     x1, x1, #1
343  734:   540000c0        b.eq    74c <register_tm_clones+0x3c>  // b.none
344  738:   90000082        adrp    x2, 10000 <__FRAME_END__+0xf638>
345  73c:   f947ec42        ldr     x2, [x2, #4056]
346  740:   b4000062        cbz     x2, 74c <register_tm_clones+0x3c>
347  744:   aa0203f0        mov     x16, x2
348  748:   d61f0200        br      x16
349  74c:   d65f03c0        ret
350 
351 0000000000000750 <__do_global_dtors_aux>:
352  750:   a9be7bfd        stp     x29, x30, [sp, #-32]!
353  754:   910003fd        mov     x29, sp
354  758:   f9000bf3        str     x19, [sp, #16]
355  75c:   b0000093        adrp    x19, 11000 <__libc_start_main@GLIBC_2.17>
356  760:   3940e260        ldrb    w0, [x19, #56]
357  764:   35000140        cbnz    w0, 78c <__do_global_dtors_aux+0x3c>
358  768:   90000081        adrp    x1, 10000 <__FRAME_END__+0xf638>
359  76c:   f947dc21        ldr     x1, [x1, #4024]
360  770:   b4000081        cbz     x1, 780 <__do_global_dtors_aux+0x30>
361  774:   b0000080        adrp    x0, 11000 <__libc_start_main@GLIBC_2.17>
362  778:   f9401800        ldr     x0, [x0, #48]
363  77c:   d63f0020        blr     x1
364  780:   97ffffd8        bl      6e0 <deregister_tm_clones>
365  784:   52800020        mov     w0, #0x1                        // #1
366  788:   3900e260        strb    w0, [x19, #56]
367  78c:   f9400bf3        ldr     x19, [sp, #16]
368  790:   a8c27bfd        ldp     x29, x30, [sp], #32
369  794:   d65f03c0        ret
370 
371 0000000000000798 <frame_dummy>:
372  798:   17ffffde        b       710 <register_tm_clones>
373 
374 000000000000079c <main>:
375  79c:   a9be7bfd        stp     x29, x30, [sp, #-32]!
376  7a0:   910003fd        mov     x29, sp
377  7a4:   b9001fe0        str     w0, [sp, #28]
378  7a8:   f9000be1        str     x1, [sp, #16]
379  7ac:   90000000        adrp    x0, 0 <_init-0x608>
380  7b0:   91220000        add     x0, x0, #0x880
381  7b4:   97ffffaf        bl      670 <puts@plt>
382  7b8:   90000000        adrp    x0, 0 <_init-0x608>
383  7bc:   fd444c00        ldr     d0, [x0, #2200]
384  7c0:   90000000        adrp    x0, 0 <_init-0x608>
385  7c4:   91224000        add     x0, x0, #0x890
386  7c8:   97ffffae        bl      680 <printf@plt>
387  7cc:   52800000        mov     w0, #0x0                        // #0
388  7d0:   a8c27bfd        ldp     x29, x30, [sp], #32
389  7d4:   d65f03c0        ret
390 
391 00000000000007d8 <__libc_csu_init>:
392  7d8:   a9bc7bfd        stp     x29, x30, [sp, #-64]!
393  7dc:   910003fd        mov     x29, sp
394  7e0:   a9025bf5        stp     x21, x22, [sp, #32]
395  7e4:   2a0003f6        mov     w22, w0
396  7e8:   90000080        adrp    x0, 10000 <__FRAME_END__+0xf638>
397  7ec:   90000095        adrp    x21, 10000 <__FRAME_END__+0xf638>
398  7f0:   9136c2b5        add     x21, x21, #0xdb0
399  7f4:   f947f000        ldr     x0, [x0, #4064]
400  7f8:   a90153f3        stp     x19, x20, [sp, #16]
401  7fc:   90000094        adrp    x20, 10000 <__FRAME_END__+0xf638>
402  800:   9136e294        add     x20, x20, #0xdb8
403  804:   a90363f7        stp     x23, x24, [sp, #48]
404  808:   cb150294        sub     x20, x20, x21
405  80c:   aa0103f7        mov     x23, x1
406  810:   aa0203f8        mov     x24, x2
407  814:   9343fe94        asr     x20, x20, #3
408  818:   d63f0000        blr     x0
409  81c:   b4000174        cbz     x20, 848 <__libc_csu_init+0x70>
410  820:   d2800013        mov     x19, #0x0                       // #0
411  824:   d503201f        nop
412  828:   f8737aa3        ldr     x3, [x21, x19, lsl #3]
413  82c:   aa1803e2        mov     x2, x24
414  830:   91000673        add     x19, x19, #0x1
415  834:   aa1703e1        mov     x1, x23
416  838:   2a1603e0        mov     w0, w22
417  83c:   d63f0060        blr     x3
418  840:   eb13029f        cmp     x20, x19
419  844:   54ffff21        b.ne    828 <__libc_csu_init+0x50>  // b.any
420  848:   a94153f3        ldp     x19, x20, [sp, #16]
421  84c:   a9425bf5        ldp     x21, x22, [sp, #32]
422  850:   a94363f7        ldp     x23, x24, [sp, #48]
423  854:   a8c47bfd        ldp     x29, x30, [sp], #64
424  858:   d65f03c0        ret
425  85c:   d503201f        nop
426 
427 0000000000000860 <__libc_csu_fini>:
428  860:   d65f03c0        ret
429 
430 Disassembly of section .fini:
431 
432 0000000000000864 <_fini>:
433  864:   a9bf7bfd        stp     x29, x30, [sp, #-16]!
434  868:   910003fd        mov     x29, sp
435  86c:   a8c17bfd        ldp     x29, x30, [sp], #16
436  870:   d65f03c0        ret
437 
438 Disassembly of section .rodata:
439 
440 0000000000000878 <_IO_stdin_used>:
441  878:   00020001        .word   0x00020001
442  87c:   00000000        .word   0x00000000
443  880:   6c6c6548        .word   0x6c6c6548
444  884:   6f77206f        .word   0x6f77206f
445  888:   21646c72        .word   0x21646c72
446  88c:   00000000        .word   0x00000000
447  890:   203a4950        .word   0x203a4950
448  894:   000a6625        .word   0x000a6625
449  898:   82c2bd7f        .word   0x82c2bd7f
450  89c:   400921fb        .word   0x400921fb
451 
452 Disassembly of section .eh_frame_hdr:
453 
454 00000000000008a0 <__GNU_EH_FRAME_HDR>:
455  8a0:   3b031b01        .inst   0x3b031b01 ; undefined
456  8a4:   00000044        .inst   0x00000044 ; undefined
457  8a8:   00000007        .inst   0x00000007 ; undefined
458  8ac:   fffffe40        .inst   0xfffffe40 ; undefined
459  8b0:   0000005c        .inst   0x0000005c ; undefined
460  8b4:   fffffe70        .inst   0xfffffe70 ; undefined
461  8b8:   00000070        .inst   0x00000070 ; undefined
462  8bc:   fffffeb0        .inst   0xfffffeb0 ; undefined
463  8c0:   00000084        .inst   0x00000084 ; undefined
464  8c4:   fffffef8        .inst   0xfffffef8 ; undefined
465  8c8:   000000a8        .inst   0x000000a8 ; undefined
466  8cc:   fffffefc        .inst   0xfffffefc ; undefined
467  8d0:   000000c0        .inst   0x000000c0 ; undefined
468  8d4:   ffffff38        .inst   0xffffff38 ; undefined
469  8d8:   000000e0        .inst   0x000000e0 ; undefined
470  8dc:   ffffffc0        .inst   0xffffffc0 ; undefined
471  8e0:   00000114        .inst   0x00000114 ; undefined
472 
473 Disassembly of section .eh_frame:
474 
475 00000000000008e8 <__FRAME_END__-0xe0>:
476  8e8:   00000010        .inst   0x00000010 ; undefined
477  8ec:   00000000        .inst   0x00000000 ; undefined
478  8f0:   00527a01        .inst   0x00527a01 ; undefined
479  8f4:   011e7804        .inst   0x011e7804 ; undefined
480  8f8:   001f0c1b        .inst   0x001f0c1b ; undefined
481  8fc:   00000010        .word   0x00000010
482  900:   00000018        .word   0x00000018
483  904:   fffffddc        .word   0xfffffddc
484  908:   00000030        .word   0x00000030
485  90c:   00000000        .word   0x00000000
486  910:   00000010        .word   0x00000010
487  914:   0000002c        .word   0x0000002c
488  918:   fffffdf8        .word   0xfffffdf8
489  91c:   00000040        .word   0x00000040
490  920:   00000000        .word   0x00000000
491  924:   00000020        .word   0x00000020
492  928:   00000040        .word   0x00000040
493  92c:   fffffe24        .word   0xfffffe24
494  930:   00000048        .word   0x00000048
495  934:   200e4100        .word   0x200e4100
496  938:   039e049d        .word   0x039e049d
497  93c:   4e029342        .word   0x4e029342
498  940:   0ed3ddde        .word   0x0ed3ddde
499  944:   00000000        .word   0x00000000
500  948:   00000014        .word   0x00000014
501  94c:   00000064        .word   0x00000064
502  950:   fffffe48        .word   0xfffffe48
503  954:   00000004        .word   0x00000004
504         ...
505  960:   0000001c        .word   0x0000001c
506  964:   0000007c        .word   0x0000007c
507  968:   fffffe34        .word   0xfffffe34
508  96c:   0000003c        .word   0x0000003c
509  970:   200e4100        .word   0x200e4100
510  974:   039e049d        .word   0x039e049d
511  978:   0eddde4d        .word   0x0eddde4d
512  97c:   00000000        .word   0x00000000
513  980:   00000030        .word   0x00000030
514  984:   0000009c        .word   0x0000009c
515  988:   fffffe50        .word   0xfffffe50
516  98c:   00000084        .word   0x00000084
517  990:   400e4100        .word   0x400e4100
518  994:   079e089d        .word   0x079e089d
519  998:   96049542        .word   0x96049542
520  99c:   06934603        .word   0x06934603
521  9a0:   97430594        .word   0x97430594
522  9a4:   54019802        .word   0x54019802
523  9a8:   d8d7ddde        .word   0xd8d7ddde
524  9ac:   d4d3d6d5        .word   0xd4d3d6d5
525  9b0:   0000000e        .word   0x0000000e
526  9b4:   00000010        .word   0x00000010
527  9b8:   000000d0        .word   0x000000d0
528  9bc:   fffffea4        .word   0xfffffea4
529  9c0:   00000004        .word   0x00000004
530  9c4:   00000000        .word   0x00000000
531 
532 00000000000009c8 <__FRAME_END__>:
533  9c8:   00000000        .word   0x00000000
534 
535 Disassembly of section .init_array:
536 
537 0000000000010db0 <__frame_dummy_init_array_entry>:
538    10db0:       00000798        .word   0x00000798
539    10db4:       00000000        .word   0x00000000
540 
541 Disassembly of section .fini_array:
542 
543 0000000000010db8 <__do_global_dtors_aux_fini_array_entry>:
544    10db8:       00000750        .word   0x00000750
545    10dbc:       00000000        .word   0x00000000
546 
547 Disassembly of section .dynamic:
548 
549 0000000000010dc0 <.dynamic>:
550    10dc0:       00000001        .inst   0x00000001 ; undefined
551    10dc4:       00000000        .inst   0x00000000 ; undefined
552    10dc8:       00000001        .inst   0x00000001 ; undefined
553    10dcc:       00000000        .inst   0x00000000 ; undefined
554    10dd0:       0000000c        .inst   0x0000000c ; undefined
555    10dd4:       00000000        .inst   0x00000000 ; undefined
556    10dd8:       00000608        .inst   0x00000608 ; undefined
557    10ddc:       00000000        .inst   0x00000000 ; undefined
558    10de0:       0000000d        .inst   0x0000000d ; undefined
559    10de4:       00000000        .inst   0x00000000 ; undefined
560    10de8:       00000864        .inst   0x00000864 ; undefined
561    10dec:       00000000        .inst   0x00000000 ; undefined
562    10df0:       00000019        .inst   0x00000019 ; undefined
563    10df4:       00000000        .inst   0x00000000 ; undefined
564    10df8:       00010db0        .inst   0x00010db0 ; undefined
565    10dfc:       00000000        .inst   0x00000000 ; undefined
566    10e00:       0000001b        .inst   0x0000001b ; undefined
567    10e04:       00000000        .inst   0x00000000 ; undefined
568    10e08:       00000008        .inst   0x00000008 ; undefined
569    10e0c:       00000000        .inst   0x00000000 ; undefined
570    10e10:       0000001a        .inst   0x0000001a ; undefined
571    10e14:       00000000        .inst   0x00000000 ; undefined
572    10e18:       00010db8        .inst   0x00010db8 ; undefined
573    10e1c:       00000000        .inst   0x00000000 ; undefined
574    10e20:       0000001c        .inst   0x0000001c ; undefined
575    10e24:       00000000        .inst   0x00000000 ; undefined
576    10e28:       00000008        .inst   0x00000008 ; undefined
577    10e2c:       00000000        .inst   0x00000000 ; undefined
578    10e30:       6ffffef5        .inst   0x6ffffef5 ; undefined
579    10e34:       00000000        .inst   0x00000000 ; undefined
580    10e38:       00000298        .inst   0x00000298 ; undefined
581    10e3c:       00000000        .inst   0x00000000 ; undefined
582    10e40:       00000005        .inst   0x00000005 ; undefined
583    10e44:       00000000        .inst   0x00000000 ; undefined
584    10e48:       000003c0        .inst   0x000003c0 ; undefined
585    10e4c:       00000000        .inst   0x00000000 ; undefined
586    10e50:       00000006        .inst   0x00000006 ; undefined
587    10e54:       00000000        .inst   0x00000000 ; undefined
588    10e58:       000002b8        .inst   0x000002b8 ; undefined
589    10e5c:       00000000        .inst   0x00000000 ; undefined
590    10e60:       0000000a        .inst   0x0000000a ; undefined
591    10e64:       00000000        .inst   0x00000000 ; undefined
592    10e68:       0000008e        .inst   0x0000008e ; undefined
593    10e6c:       00000000        .inst   0x00000000 ; undefined
594    10e70:       0000000b        .inst   0x0000000b ; undefined
595    10e74:       00000000        .inst   0x00000000 ; undefined
596    10e78:       00000018        .inst   0x00000018 ; undefined
597    10e7c:       00000000        .inst   0x00000000 ; undefined
598    10e80:       00000015        .inst   0x00000015 ; undefined
599         ...
600    10e90:       00000003        .inst   0x00000003 ; undefined
601    10e94:       00000000        .inst   0x00000000 ; undefined
602    10e98:       00010fe8        .inst   0x00010fe8 ; undefined
603    10e9c:       00000000        .inst   0x00000000 ; undefined
604    10ea0:       00000002        .inst   0x00000002 ; undefined
605    10ea4:       00000000        .inst   0x00000000 ; undefined
606    10ea8:       00000078        .inst   0x00000078 ; undefined
607    10eac:       00000000        .inst   0x00000000 ; undefined
608    10eb0:       00000014        .inst   0x00000014 ; undefined
609    10eb4:       00000000        .inst   0x00000000 ; undefined
610    10eb8:       00000007        .inst   0x00000007 ; undefined
611    10ebc:       00000000        .inst   0x00000000 ; undefined
612    10ec0:       00000017        .inst   0x00000017 ; undefined
613    10ec4:       00000000        .inst   0x00000000 ; undefined
614    10ec8:       00000590        .inst   0x00000590 ; undefined
615    10ecc:       00000000        .inst   0x00000000 ; undefined
616    10ed0:       00000007        .inst   0x00000007 ; undefined
617    10ed4:       00000000        .inst   0x00000000 ; undefined
618    10ed8:       00000488        .inst   0x00000488 ; undefined
619    10edc:       00000000        .inst   0x00000000 ; undefined
620    10ee0:       00000008        .inst   0x00000008 ; undefined
621    10ee4:       00000000        .inst   0x00000000 ; undefined
622    10ee8:       00000108        .inst   0x00000108 ; undefined
623    10eec:       00000000        .inst   0x00000000 ; undefined
624    10ef0:       00000009        .inst   0x00000009 ; undefined
625    10ef4:       00000000        .inst   0x00000000 ; undefined
626    10ef8:       00000018        .inst   0x00000018 ; undefined
627    10efc:       00000000        .inst   0x00000000 ; undefined
628    10f00:       6ffffffb        .inst   0x6ffffffb ; undefined
629    10f04:       00000000        .inst   0x00000000 ; undefined
630    10f08:       08000000        stxrb   w0, w0, [x0]
631    10f0c:       00000000        .inst   0x00000000 ; undefined
632    10f10:       6ffffffe        .inst   0x6ffffffe ; undefined
633    10f14:       00000000        .inst   0x00000000 ; undefined
634    10f18:       00000468        .inst   0x00000468 ; undefined
635    10f1c:       00000000        .inst   0x00000000 ; undefined
636    10f20:       6fffffff        .inst   0x6fffffff ; undefined
637    10f24:       00000000        .inst   0x00000000 ; undefined
638    10f28:       00000001        .inst   0x00000001 ; undefined
639    10f2c:       00000000        .inst   0x00000000 ; undefined
640    10f30:       6ffffff0        .inst   0x6ffffff0 ; undefined
641    10f34:       00000000        .inst   0x00000000 ; undefined
642    10f38:       0000044e        .inst   0x0000044e ; undefined
643    10f3c:       00000000        .inst   0x00000000 ; undefined
644    10f40:       6ffffff9        .inst   0x6ffffff9 ; undefined
645    10f44:       00000000        .inst   0x00000000 ; undefined
646    10f48:       00000007        .inst   0x00000007 ; undefined
647         ...
648 
649 Disassembly of section .got:
650 
651 0000000000010fa0 <.got>:
652    10fa0:       00010dc0        .inst   0x00010dc0 ; undefined
653    10fa4:       00000000        .inst   0x00000000 ; undefined
654    10fa8:       00000860        .inst   0x00000860 ; undefined
655         ...
656    10fc8:       000007d8        .inst   0x000007d8 ; undefined
657    10fcc:       00000000        .inst   0x00000000 ; undefined
658    10fd0:       0000079c        .inst   0x0000079c ; undefined
659         ...
660    10fe0:       00000608        .inst   0x00000608 ; undefined
661    10fe4:       00000000        .inst   0x00000000 ; undefined
662 
663 Disassembly of section .got.plt:
664 
665 0000000000010fe8 <.got.plt>:
666         ...
667    11000:       00000620        .inst   0x00000620 ; undefined
668    11004:       00000000        .inst   0x00000000 ; undefined
669    11008:       00000620        .inst   0x00000620 ; undefined
670    1100c:       00000000        .inst   0x00000000 ; undefined
671    11010:       00000620        .inst   0x00000620 ; undefined
672    11014:       00000000        .inst   0x00000000 ; undefined
673    11018:       00000620        .inst   0x00000620 ; undefined
674    1101c:       00000000        .inst   0x00000000 ; undefined
675    11020:       00000620        .inst   0x00000620 ; undefined
676    11024:       00000000        .inst   0x00000000 ; undefined
677 
678 Disassembly of section .data:
679 
680 0000000000011028 <__data_start>:
681         ...
682 
683 0000000000011030 <__dso_handle>:
684    11030:       00011030        .word   0x00011030
685    11034:       00000000        .word   0x00000000
686 
687 Disassembly of section .bss:
688 
689 0000000000011038 <__bss_start>:
690         ...
691 
692 Disassembly of section .comment:
693 
694 0000000000000000 <.comment>:
695    0:   3a434347        ccmn    w26, w3, #0x7, mi  // mi = first
696    4:   4e472820        trn1    v0.8h, v1.8h, v7.8h
697    8:   38202955        .inst   0x38202955 ; undefined
698    c:   302e332e        adr     x14, 5c671 <__bss_end__+0x4b631>
699   10:   43434700        .inst   0x43434700 ; undefined
700   14:   4728203a        .inst   0x4728203a ; undefined
701   18:   2029554e        .inst   0x2029554e ; undefined
702   1c:   2e312e39        uqsub   v25.8b, v17.8b, v17.8b
703   20:   地址 0x0000000000000020 越界。

好了,一个文件从出生到形成可执行文件,到还原成可执行文件的过程就是这样的。

 

posted @ 2020-01-02 16:15  叕叒双又  阅读(977)  评论(0编辑  收藏  举报