Advertisement
_takumi

main

Nov 3rd, 2022 (edited)
1,976
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.     .intel_syntax noprefix
  2.     .text
  3.     .section    .rodata
  4. .LC0:
  5.     .string "%lld"
  6. .LC1:
  7.     .string "r"
  8. .LC2:
  9.     .string "w"
  10.     .text
  11.     .globl  main
  12.     .type   main, @function
  13. main:
  14.     push    rbp
  15.     mov rbp, rsp
  16.     sub rsp, 64
  17.  
  18.         mov      QWORD PTR -64[rbp], rsi
  19.  
  20.     mov rdi, QWORD PTR -64[rbp]
  21.         add      rdi, 8
  22.     mov rdi, QWORD PTR [rdi]
  23.     lea rsi, .LC1[rip]
  24.     call    fopen@PLT
  25.     mov r13, rax
  26.  
  27.     mov rdi, QWORD PTR -64[rbp]
  28.         add      rdi, 16
  29.     mov rdi, QWORD PTR [rdi]
  30.     lea rsi, .LC2[rip]
  31.     call    fopen@PLT
  32.     mov r14, rax
  33.  
  34.     mov QWORD PTR -40[rbp], 0 # rbp-40 is n
  35.     lea rdx, -40[rbp]
  36.     lea rsi, .LC0[rip]
  37.     mov rdi, r13
  38.     mov eax, 0
  39.     call    __isoc99_fscanf@PLT
  40.     mov rax, QWORD PTR -40[rbp] # rax = n
  41.     add rax, 1 # rax = n+1
  42.     mov rdi, rax # malloc argument is n+1 - the size of the string s in bytes
  43.     call    malloc@PLT
  44.     #mov    QWORD PTR -16[rbp], rax # rbp-16 = s
  45.     mov rbx, rax # rbx = s
  46.     mov rdi, r13
  47.     call    fgetc@PLT
  48.     #mov    QWORD PTR -52[rbp], 0 # rbp-52 = i = 0
  49.     mov rdx, r13
  50.     mov rax, QWORD PTR -40[rbp]
  51.     lea rsi, [rax+1]
  52.     mov rdi, rbx
  53.     call    fgets@PLT
  54.  
  55.     mov rdx, r14
  56.     mov rsi, QWORD PTR -40[rbp] # rsi = n
  57.     mov rdi, rbx # rdi = s
  58.     call    solve
  59.     mov     rdi, r13
  60.     call    fclose@PLT
  61.     mov     rdi, r14
  62.     call    fclose@PLT
  63.     mov eax, 0
  64.     leave
  65.     ret
  66.     .size   main, .-main
  67.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement