Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .file "idz2_5.c"
- .intel_syntax noprefix
- .text
- .globl solve
- .type solve, @function
- solve:
- push rbp
- mov rbp, rsp
- sub rsp, 48
- mov QWORD PTR -40[rbp], rdi
- mov QWORD PTR -48[rbp], rsi
- mov QWORD PTR -32[rbp], 0
- mov rdx, QWORD PTR -48[rbp]
- mov rax, QWORD PTR -40[rbp]
- add rax, rdx
- mov QWORD PTR -24[rbp], rax
- cmp QWORD PTR -48[rbp], 1
- jne .L2
- mov rax, QWORD PTR -40[rbp]
- mov QWORD PTR -32[rbp], rax
- .L2:
- mov rax, QWORD PTR -48[rbp]
- sub rax, 1
- mov QWORD PTR -16[rbp], rax
- jmp .L3
- .L8:
- mov rax, QWORD PTR -16[rbp]
- lea rdx, -1[rax]
- mov rax, QWORD PTR -40[rbp]
- add rax, rdx
- movzx edx, BYTE PTR [rax]
- mov rcx, QWORD PTR -16[rbp]
- mov rax, QWORD PTR -40[rbp]
- add rax, rcx
- movzx eax, BYTE PTR [rax]
- cmp dl, al
- jge .L4
- mov rax, QWORD PTR -16[rbp]
- lea rdx, -1[rax]
- mov rax, QWORD PTR -40[rbp]
- add rax, rdx
- mov QWORD PTR -32[rbp], rax
- jmp .L5
- .L4:
- cmp QWORD PTR -32[rbp], 0
- jne .L12
- mov rdx, QWORD PTR -16[rbp]
- mov rax, QWORD PTR -40[rbp]
- add rax, rdx
- mov QWORD PTR -24[rbp], rax
- .L5:
- sub QWORD PTR -16[rbp], 1
- .L3:
- cmp QWORD PTR -16[rbp], 0
- jg .L8
- jmp .L7
- .L12:
- nop
- .L7:
- cmp QWORD PTR -32[rbp], 0
- je .L13
- mov QWORD PTR -8[rbp], 0
- jmp .L10
- .L11:
- mov rdx, QWORD PTR -8[rbp]
- mov rax, QWORD PTR -32[rbp]
- add rax, rdx
- movzx eax, BYTE PTR [rax]
- movsx eax, al
- mov edi, eax
- call putchar@PLT
- add QWORD PTR -8[rbp], 1
- .L10:
- mov rdx, QWORD PTR -8[rbp]
- mov rax, QWORD PTR -32[rbp]
- add rax, rdx
- cmp QWORD PTR -24[rbp], rax
- jne .L11
- .L13:
- nop
- leave
- ret
- .size solve, .-solve
- .section .rodata
- .LC0:
- .string "%lld"
- .LC1:
- .string "%c"
- .text
- .globl main
- .type main, @function
- main:
- push rbp
- mov rbp, rsp
- sub rsp, 32
- mov rax, QWORD PTR fs:40
- mov QWORD PTR -8[rbp], rax
- xor eax, eax
- mov QWORD PTR -24[rbp], 0
- lea rax, -24[rbp]
- mov rsi, rax
- lea rdi, .LC0[rip]
- mov eax, 0
- call __isoc99_scanf@PLT
- mov rax, QWORD PTR -24[rbp]
- add rax, 1
- mov rdi, rax
- call malloc@PLT
- mov QWORD PTR -16[rbp], rax
- call getchar@PLT
- mov DWORD PTR -28[rbp], 0
- jmp .L15
- .L16:
- mov eax, DWORD PTR -28[rbp]
- movsx rdx, eax
- mov rax, QWORD PTR -16[rbp]
- add rax, rdx
- mov rsi, rax
- lea rdi, .LC1[rip]
- mov eax, 0
- call __isoc99_scanf@PLT
- add DWORD PTR -28[rbp], 1
- .L15:
- mov eax, DWORD PTR -28[rbp]
- movsx rdx, eax
- mov rax, QWORD PTR -24[rbp]
- cmp rdx, rax
- jl .L16
- mov rdx, QWORD PTR -24[rbp]
- mov rax, QWORD PTR -16[rbp]
- mov rsi, rdx
- mov rdi, rax
- call solve
- mov eax, 0
- mov rcx, QWORD PTR -8[rbp]
- xor rcx, QWORD PTR fs:40
- je .L18
- call __stack_chk_fail@PLT
- .L18:
- leave
- ret
- .size main, .-main
- .ident "GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.1) 9.4.0"
- .section .note.GNU-stack,"",@progbits
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement