通常情况下,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! "); 8 printf("PI: %f ", 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! "); 744 printf("PI: %f ", 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 " 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 越界。
好了,一个文件从出生到形成可执行文件,到还原成可执行文件的过程就是这样的。