Advertisement
Guest User

Untitled

a guest
Jul 26th, 2017
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .global main
  2. .text
  3.  
  4. fill_array:
  5.     pushq   %rbp
  6.     movq    %rsp, %rbp
  7.     subq    $8, %rsp
  8.     movq    $0, %rax
  9.     movq    %rax, -8(%rbp)
  10.     movq    $0, %rax
  11.     movq    %rax, %r12
  12.     movq    %r12, -8(%rbp)
  13. LOOP_BEGIN_22:
  14.     movq    %rdx, %rax
  15.     pushq   %rax
  16.     movq    -8(%rbp), %rax
  17.     pushq   %rax
  18.     popq    %r11
  19.     popq    %r10
  20.     cmpq    %r10, %r11
  21.     movq    $0, %rax
  22.     movq    $1, %r12
  23.     cmovlq  %r12, %rax
  24.     pushq   %rax
  25.     popq    %rax
  26.     cmpq    $0, %rax
  27.     je  LOOP_END_22
  28.     subq    $0, %rsp
  29.     movq    -8(%rbp), %rax
  30.     pushq   %rax
  31.     movq    %rsi, %rax
  32.     pushq   %rax
  33.     popq    %r11
  34.     popq    %r10
  35.     addq    %r10, %r11
  36.     pushq   %r11
  37.     popq    %rax
  38.     movq    %rax, %r12
  39.     movq    %rdi, %rax
  40.     pushq   %rax
  41.     movq    -8(%rbp), %rax
  42.     popq    %r10
  43.     imulq   $8, %rax
  44.     addq    %rax, %r10
  45.     movq    %r10, %rax
  46.     movq    %r12, (%rax)
  47. LOOP_CONTINUE_22:
  48.     movq    -8(%rbp), %rax
  49.     incq    -8(%rbp)
  50.     jmp LOOP_BEGIN_22
  51. LOOP_END_22:
  52.     movq    $0, %rax
  53.     addq    $8, %rsp
  54.     leave
  55.     ret
  56.  
  57. print_comma:
  58.     pushq   %rbp
  59.     movq    %rsp, %rbp
  60.     subq    $0, %rsp
  61.     pushq   %rdi
  62.     pushq   %rsi
  63.     pushq   %rdx
  64.     pushq   %rcx
  65.     pushq   %r8
  66.     pushq   %r9
  67.     movq    $44, %rax
  68.     movq    %rax, %rdi
  69.     call    print_char
  70.     popq    %r9
  71.     popq    %r8
  72.     popq    %rcx
  73.     popq    %rdx
  74.     popq    %rsi
  75.     popq    %rdi
  76.     pushq   %rdi
  77.     pushq   %rsi
  78.     pushq   %rdx
  79.     pushq   %rcx
  80.     pushq   %r8
  81.     pushq   %r9
  82.     movq    $32, %rax
  83.     movq    %rax, %rdi
  84.     call    print_char
  85.     popq    %r9
  86.     popq    %r8
  87.     popq    %rcx
  88.     popq    %rdx
  89.     popq    %rsi
  90.     popq    %rdi
  91.     movq    $0, %rax
  92.     addq    $0, %rsp
  93.     leave
  94.     ret
  95.  
  96. print_array:
  97.     pushq   %rbp
  98.     movq    %rsp, %rbp
  99.     subq    $8, %rsp
  100.     movq    $0, %rax
  101.     movq    %rax, -8(%rbp)
  102.     movq    $0, %rax
  103.     movq    %rax, %r12
  104.     movq    %r12, -8(%rbp)
  105. LOOP_BEGIN_61:
  106.     movq    %rsi, %rax
  107.     pushq   %rax
  108.     movq    -8(%rbp), %rax
  109.     pushq   %rax
  110.     popq    %r11
  111.     popq    %r10
  112.     cmpq    %r10, %r11
  113.     movq    $0, %rax
  114.     movq    $1, %r12
  115.     cmovlq  %r12, %rax
  116.     pushq   %rax
  117.     popq    %rax
  118.     cmpq    $0, %rax
  119.     je  LOOP_END_61
  120.     subq    $0, %rsp
  121.     movq    -8(%rbp), %rax
  122.     cmpq    $0, %rax
  123.     je  IFELSE_54
  124.     subq    $0, %rsp
  125.     pushq   %rdi
  126.     pushq   %rsi
  127.     pushq   %rdx
  128.     pushq   %rcx
  129.     pushq   %r8
  130.     pushq   %r9
  131.     call    print_comma
  132.     popq    %r9
  133.     popq    %r8
  134.     popq    %rcx
  135.     popq    %rdx
  136.     popq    %rsi
  137.     popq    %rdi
  138.     jmp ENDIF_54
  139. IFELSE_54:
  140. ENDIF_54:
  141.     pushq   %rdi
  142.     pushq   %rsi
  143.     pushq   %rdx
  144.     pushq   %rcx
  145.     pushq   %r8
  146.     pushq   %r9
  147.     movq    %rdi, %rax
  148.     pushq   %rax
  149.     movq    -8(%rbp), %rax
  150.     popq    %r10
  151.     imulq   $8, %rax
  152.     addq    %rax, %r10
  153.     movq    (%r10), %rax
  154.     movq    %rax, %rdi
  155.     call    print_long
  156.     popq    %r9
  157.     popq    %r8
  158.     popq    %rcx
  159.     popq    %rdx
  160.     popq    %rsi
  161.     popq    %rdi
  162. LOOP_CONTINUE_61:
  163.     movq    -8(%rbp), %rax
  164.     incq    -8(%rbp)
  165.     jmp LOOP_BEGIN_61
  166. LOOP_END_61:
  167.     pushq   %rdi
  168.     pushq   %rsi
  169.     pushq   %rdx
  170.     pushq   %rcx
  171.     pushq   %r8
  172.     pushq   %r9
  173.     call    print_nl
  174.     popq    %r9
  175.     popq    %r8
  176.     popq    %rcx
  177.     popq    %rdx
  178.     popq    %rsi
  179.     popq    %rdi
  180.     movq    $0, %rax
  181.     addq    $8, %rsp
  182.     leave
  183.     ret
  184.  
  185. main:
  186.     pushq   %rbp
  187.     movq    %rsp, %rbp
  188.     subq    $24, %rsp
  189.     subq    $80, %rsp
  190.     movq    $0, %rax
  191.     movq    %rax, -32(%rbp)
  192.     movq    $0, %rax
  193.     movq    %rax, -40(%rbp)
  194.     movq    $0, %rax
  195.     movq    %rax, -48(%rbp)
  196.     movq    $0, %rax
  197.     movq    %rax, -56(%rbp)
  198.     movq    $0, %rax
  199.     movq    %rax, -64(%rbp)
  200.     movq    $0, %rax
  201.     movq    %rax, -72(%rbp)
  202.     movq    $0, %rax
  203.     movq    %rax, -80(%rbp)
  204.     movq    $0, %rax
  205.     movq    %rax, -88(%rbp)
  206.     movq    $0, %rax
  207.     movq    %rax, -96(%rbp)
  208.     movq    $0, %rax
  209.     movq    %rax, -104(%rbp)
  210.     leaq    -104(%rbp), %rax
  211.     movq    %rax, -8(%rbp)
  212.     subq    $160, %rsp
  213.     movq    $0, %rax
  214.     movq    %rax, -112(%rbp)
  215.     movq    $0, %rax
  216.     movq    %rax, -120(%rbp)
  217.     movq    $0, %rax
  218.     movq    %rax, -128(%rbp)
  219.     movq    $0, %rax
  220.     movq    %rax, -136(%rbp)
  221.     movq    $0, %rax
  222.     movq    %rax, -144(%rbp)
  223.     movq    $0, %rax
  224.     movq    %rax, -152(%rbp)
  225.     movq    $0, %rax
  226.     movq    %rax, -160(%rbp)
  227.     movq    $0, %rax
  228.     movq    %rax, -168(%rbp)
  229.     movq    $0, %rax
  230.     movq    %rax, -176(%rbp)
  231.     movq    $0, %rax
  232.     movq    %rax, -184(%rbp)
  233.     movq    $0, %rax
  234.     movq    %rax, -192(%rbp)
  235.     movq    $0, %rax
  236.     movq    %rax, -200(%rbp)
  237.     movq    $0, %rax
  238.     movq    %rax, -208(%rbp)
  239.     movq    $0, %rax
  240.     movq    %rax, -216(%rbp)
  241.     movq    $0, %rax
  242.     movq    %rax, -224(%rbp)
  243.     movq    $0, %rax
  244.     movq    %rax, -232(%rbp)
  245.     movq    $0, %rax
  246.     movq    %rax, -240(%rbp)
  247.     movq    $0, %rax
  248.     movq    %rax, -248(%rbp)
  249.     movq    $0, %rax
  250.     movq    %rax, -256(%rbp)
  251.     movq    $0, %rax
  252.     movq    %rax, -264(%rbp)
  253.     leaq    -264(%rbp), %rax
  254.     movq    %rax, -16(%rbp)
  255.     subq    $72, %rsp
  256.     movq    $2, %rax
  257.     movq    %rax, -272(%rbp)
  258.     movq    $4, %rax
  259.     movq    %rax, -280(%rbp)
  260.     movq    $6, %rax
  261.     movq    %rax, -288(%rbp)
  262.     movq    $8, %rax
  263.     movq    %rax, -296(%rbp)
  264.     movq    $9, %rax
  265.     movq    %rax, -304(%rbp)
  266.     movq    $7, %rax
  267.     movq    %rax, -312(%rbp)
  268.     movq    $5, %rax
  269.     movq    %rax, -320(%rbp)
  270.     movq    $3, %rax
  271.     movq    %rax, -328(%rbp)
  272.     movq    $1, %rax
  273.     movq    %rax, -336(%rbp)
  274.     leaq    -336(%rbp), %rax
  275.     movq    %rax, -24(%rbp)
  276.     pushq   %rdi
  277.     pushq   %rsi
  278.     pushq   %rdx
  279.     pushq   %rcx
  280.     pushq   %r8
  281.     pushq   %r9
  282.     movq    -8(%rbp), %rax
  283.     movq    %rax, %rdi
  284.     movq    $666, %rax
  285.     movq    %rax, %rsi
  286.     movq    $10, %rax
  287.     movq    %rax, %rdx
  288.     call    fill_array
  289.     popq    %r9
  290.     popq    %r8
  291.     popq    %rcx
  292.     popq    %rdx
  293.     popq    %rsi
  294.     popq    %rdi
  295.     pushq   %rdi
  296.     pushq   %rsi
  297.     pushq   %rdx
  298.     pushq   %rcx
  299.     pushq   %r8
  300.     pushq   %r9
  301.     movq    -16(%rbp), %rax
  302.     movq    %rax, %rdi
  303.     movq    $10, %rax
  304.     movq    %rax, %rsi
  305.     movq    $10, %rax
  306.     movq    %rax, %rdx
  307.     call    fill_array
  308.     popq    %r9
  309.     popq    %r8
  310.     popq    %rcx
  311.     popq    %rdx
  312.     popq    %rsi
  313.     popq    %rdi
  314.     pushq   %rdi
  315.     pushq   %rsi
  316.     pushq   %rdx
  317.     pushq   %rcx
  318.     pushq   %r8
  319.     pushq   %r9
  320.     movq    $10, %rax
  321.     pushq   %rax
  322.     movq    -16(%rbp), %rax
  323.     pushq   %rax
  324.     popq    %r11
  325.     popq    %r10
  326.     addq    %r10, %r11
  327.     pushq   %r11
  328.     popq    %rax
  329.     movq    %rax, %rdi
  330.     movq    $90, %rax
  331.     movq    %rax, %rsi
  332.     movq    $10, %rax
  333.     movq    %rax, %rdx
  334.     call    fill_array
  335.     popq    %r9
  336.     popq    %r8
  337.     popq    %rcx
  338.     popq    %rdx
  339.     popq    %rsi
  340.     popq    %rdi
  341.     pushq   %rdi
  342.     pushq   %rsi
  343.     pushq   %rdx
  344.     pushq   %rcx
  345.     pushq   %r8
  346.     pushq   %r9
  347.     movq    -8(%rbp), %rax
  348.     movq    %rax, %rdi
  349.     movq    $10, %rax
  350.     movq    %rax, %rsi
  351.     call    print_array
  352.     popq    %r9
  353.     popq    %r8
  354.     popq    %rcx
  355.     popq    %rdx
  356.     popq    %rsi
  357.     popq    %rdi
  358.     pushq   %rdi
  359.     pushq   %rsi
  360.     pushq   %rdx
  361.     pushq   %rcx
  362.     pushq   %r8
  363.     pushq   %r9
  364.     movq    -16(%rbp), %rax
  365.     movq    %rax, %rdi
  366.     movq    $20, %rax
  367.     movq    %rax, %rsi
  368.     call    print_array
  369.     popq    %r9
  370.     popq    %r8
  371.     popq    %rcx
  372.     popq    %rdx
  373.     popq    %rsi
  374.     popq    %rdi
  375.     pushq   %rdi
  376.     pushq   %rsi
  377.     pushq   %rdx
  378.     pushq   %rcx
  379.     pushq   %r8
  380.     pushq   %r9
  381.     movq    -24(%rbp), %rax
  382.     movq    %rax, %rdi
  383.     movq    $9, %rax
  384.     movq    %rax, %rsi
  385.     call    print_array
  386.     popq    %r9
  387.     popq    %r8
  388.     popq    %rcx
  389.     popq    %rdx
  390.     popq    %rsi
  391.     popq    %rdi
  392.     movq    $0, %rax
  393.     addq    $336, %rsp
  394.     leave
  395.     ret
  396.  
  397. .data
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement