SHARE
TWEET

Untitled

a guest Mar 20th, 2019 56 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.    1                    .file   "c_asm_test.c"
  2.    2                    .text
  3.    3                .Ltext0:
  4.    4                    .globl  fib
  5.    6                fib:
  6.    7                .LFB0:
  7.    8                    .file 1 "c_asm_test.c"
  8.    1:c_asm_test.c  **** #include <stdio.h>
  9.    2:c_asm_test.c  ****
  10.    3:c_asm_test.c  **** int fib(int n)
  11.    4:c_asm_test.c  **** {
  12.    9                    .loc 1 4 0
  13.   10                    .cfi_startproc
  14.   11 0000 55            pushq   %rbp
  15.   12                    .cfi_def_cfa_offset 16
  16.   13                    .cfi_offset 6, -16
  17.   14 0001 4889E5        movq    %rsp, %rbp
  18.   15                    .cfi_def_cfa_register 6
  19.   16 0004 53            pushq   %rbx
  20.   17 0005 4883EC18      subq    $24, %rsp
  21.   18                    .cfi_offset 3, -24
  22.   19 0009 897DEC        movl    %edi, -20(%rbp)
  23.    5:c_asm_test.c  ****     if (n == 0)
  24.   20                    .loc 1 5 0
  25.   21 000c 837DEC00      cmpl    $0, -20(%rbp)
  26.   22 0010 7507          jne .L2
  27.    6:c_asm_test.c  ****         return 0;
  28.   23                    .loc 1 6 0
  29.   24 0012 B8000000      movl    $0, %eax
  30.   24      00
  31.   25 0017 EB2B          jmp .L3
  32.   26                .L2:
  33.    7:c_asm_test.c  ****     if (n == 1)
  34.   27                    .loc 1 7 0
  35.   28 0019 837DEC01      cmpl    $1, -20(%rbp)
  36.   29 001d 7507          jne .L4
  37.    8:c_asm_test.c  ****         return 1;
  38.   30                    .loc 1 8 0
  39.   31 001f B8010000      movl    $1, %eax
  40.   31      00
  41.   32 0024 EB1E          jmp .L3
  42.   33                .L4:
  43.    9:c_asm_test.c  ****     return fib(n - 1) + fib(n - 2);
  44.   34                    .loc 1 9 0
  45.   35 0026 8B45EC        movl    -20(%rbp), %eax
  46.   36 0029 83E801        subl    $1, %eax
  47.   37 002c 89C7          movl    %eax, %edi
  48.   38 002e E8000000      call    fib
  49.   38      00
  50.   39 0033 89C3          movl    %eax, %ebx
  51.   40 0035 8B45EC        movl    -20(%rbp), %eax
  52.   41 0038 83E802        subl    $2, %eax
  53.   42 003b 89C7          movl    %eax, %edi
  54.   43 003d E8000000      call    fib
  55.   43      00
  56.   44 0042 01D8          addl    %ebx, %eax
  57.   45                .L3:
  58.   10:c_asm_test.c  **** }
  59.   46                    .loc 1 10 0
  60.   47 0044 4883C418      addq    $24, %rsp
  61.   48 0048 5B            popq    %rbx
  62.   49 0049 5D            popq    %rbp
  63.   50                    .cfi_def_cfa 7, 8
  64.   51 004a C3            ret
  65.   52                    .cfi_endproc
  66.   53                .LFE0:
  67.   55                    .section    .rodata
  68.   56                .LC0:
  69.   57 0000 66696228      .string "fib(%d) = %d\n"
  70.   57      25642920
  71.   57      3D202564
  72.   57      0A00
  73.   58                    .text
  74.   59                    .globl  main
  75.   61                main:
  76.   62                .LFB1:
  77.   11:c_asm_test.c  ****
  78.   12:c_asm_test.c  **** int main() {
  79.   63                    .loc 1 12 0
  80.   64                    .cfi_startproc
  81.   65 004b 55            pushq   %rbp
  82.   66                    .cfi_def_cfa_offset 16
  83.   67                    .cfi_offset 6, -16
  84.   68 004c 4889E5        movq    %rsp, %rbp
  85.   69                    .cfi_def_cfa_register 6
  86.   70 004f 4883EC10      subq    $16, %rsp
  87.   71                .LBB2:
  88.   13:c_asm_test.c  ****     for (int i = 0; i <= 10; i++)
  89.   72                    .loc 1 13 0
  90.   73 0053 C745FC00      movl    $0, -4(%rbp)
  91.   73      000000
  92.   74 005a EB24          jmp .L6
  93.   75                .L7:
  94.   14:c_asm_test.c  ****         printf("fib(%d) = %d\n", i, fib(i));
  95.   76                    .loc 1 14 0 discriminator 3
  96.   77 005c 8B45FC        movl    -4(%rbp), %eax
  97.   78 005f 89C7          movl    %eax, %edi
  98.   79 0061 E8000000      call    fib
  99.   79      00
  100.   80 0066 89C2          movl    %eax, %edx
  101.   81 0068 8B45FC        movl    -4(%rbp), %eax
  102.   82 006b 89C6          movl    %eax, %esi
  103.   83 006d BF000000      movl    $.LC0, %edi
  104.   83      00
  105.   84 0072 B8000000      movl    $0, %eax
  106.   84      00
  107.   85 0077 E8000000      call    printf
  108.   85      00
  109.   13:c_asm_test.c  ****     for (int i = 0; i <= 10; i++)
  110.   86                    .loc 1 13 0 discriminator 3
  111.   87 007c 8345FC01      addl    $1, -4(%rbp)
  112.   88                .L6:
  113.   13:c_asm_test.c  ****     for (int i = 0; i <= 10; i++)
  114.   89                    .loc 1 13 0 is_stmt 0 discriminator 1
  115.   90 0080 837DFC0A      cmpl    $10, -4(%rbp)
  116.   91 0084 7ED6          jle .L7
  117.   92                .LBE2:
  118.   15:c_asm_test.c  ****     return 0;
  119.   93                    .loc 1 15 0 is_stmt 1
  120.   94 0086 B8000000      movl    $0, %eax
  121.   94      00
  122.   16:c_asm_test.c  **** }...
  123.   95                    .loc 1 16 0
  124.   96 008b C9            leave
  125.   97                    .cfi_def_cfa 7, 8
  126.   98 008c C3            ret
  127.   99                    .cfi_endproc
  128.  100                .LFE1:
  129.  102                .Letext0:
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top