Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- .intel_syntax noprefix
- .global _start
- .text
- #include<sys/syscall.h>
- _start:
- push r12 //pointer to Heap beginning
- push r13 //pointer to end
- push r14 //cur
- push r15
- push rbx
- mov rbx, rsp
- mov rax, SYS_brk
- mov rdi, 0
- syscall
- mov r12, rax
- mov r14, r12
- mov rax, SYS_brk
- mov rdi, 66060288
- syscall
- read_cycle:
- mov rax, SYS_read
- mov rdi, 0
- mov rsi, r14
- mov rdx, 66060288
- syscall
- cmp rax, 0
- jle next
- add r14, rax
- jmp read_cycle
- next:
- cmp r14, r12
- je exit
- mov rax, SYS_write
- mov rdi, 1
- mov rsi, ptr
- mov rdx, 1
- mov r15, 0 //curNumberBefore/n
- print_cycle:
- cmp r14, r12
- jl last
- mov rdi, 0
- mov dl, byte ptr [r14]
- cmp dl, const
- je then
- after:
- add r15, 1
- sub r14, 1
- je print_cycle
- then:
- mov rdx, r15
- mov rax, SYS_write
- mov rdi, 1
- mov rsi, r14
- sub r14, 1
- sub r15, 1
- syscall
- mov r15, 1
- jmp after
- last:
- mov rdx, r15
- mov rax, SYS_write
- mov rdi, 1
- mov rsi, r14
- syscall
- mov r15, 0
- jmp exit
- exit:
- pop rbx
- pop r15
- pop r14
- pop r13
- pop r12
- mov rax, SYS_exit
- mov rdi, 0
- syscall
- const:
- .byte '\n'
- ptr:
- .quad const
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement