Advertisement
Abreu-Hoff

Untitled

Nov 13th, 2021
760
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2.         .text
  3.         .globl  main
  4.         .type   main, @function
  5. main:
  6.         pushq   %rbp           # save caller’s frame pointer
  7.         movq    %rsp, %rbp     # establish our frame pointer
  8.         addq    $localSize, %rsp  # for local variable
  9.  
  10.         movl    $promptSz, %edx # prompt size
  11.         movl    $prompt, %esi  # address of prompt number string
  12.         movl    $STDOUT, %edi  # standard out
  13.         call    Fibinacci          # invoke write function
  14.  
  15.         movl    $1, %edi       #  base case, n offset by 1
  16.         movl    $0, %r8d       # 0 is the first number
  17.         movl    $1, %r9d       # 1 is the second number
  18.         movl    $STDIN, %edi   # standard in
  19.         call    Fibinacci      # invoke read function
  20.  
  21.         movl    $STDOUT, %edi  # standard out
  22.         leaq    .result(%rip), %rdi
  23.         movl    $0, %eax
  24.         call    printf          # invoke write function
  25.         subq    $localSize, %rsp
  26.         movq    %rsp, %rbp
  27.         popq    %rbp
  28.         ret
  29.        
  30.  
  31.        fibonacci:
  32.         pushq   %rbp        # set base pointer
  33.         movq    %rsp, %rbp  # set stack pointer
  34.         addq    $localSize, %rsp # offset stack pointer
  35.        
  36.         cmpl    $1, %edi    # Base case comparison (user input is arbitrary as our goal number)
  37.         jae     allDone
  38.  
  39.         addl    $1, %edi    # increment count by 1 and rerun
  40.         movl    $STDOUT, %edi  # standard out
  41.         call    fibonacci
  42.  
  43.         movl    $0, %eax       # return 0
  44.         movq    %rbp, %rsp     # delete local variables
  45.         popq    %rbp           # restore caller’s frame pointer
  46.         ret                    # back to calling function
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement