Advertisement
anutka

Untitled

Nov 23rd, 2020
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.35 KB | None | 0 0
  1. .intel_syntax noprefix
  2. .global _start
  3. .text
  4. #include<sys/syscall.h>
  5.  
  6. _start:
  7. push r12 //pointer to Heap beginning
  8. push r13 //pointer to end
  9. push r14 //cur
  10. push r15
  11. push rbx
  12. mov rbx, rsp
  13.  
  14.  
  15. mov rax, SYS_brk
  16. mov rdi, 0
  17. syscall
  18. mov r12, rax
  19. mov r14, r12
  20.  
  21. mov rax, SYS_brk
  22. mov rdi, 66060288
  23. syscall
  24.  
  25. read_cycle:
  26. mov rax, SYS_read
  27. mov rdi, 0
  28. mov rsi, r14
  29. mov rdx, 66060288
  30. syscall
  31.  
  32. cmp rax, 0
  33. jle next
  34. add r14, rax
  35. jmp read_cycle
  36.  
  37. next:
  38. cmp r14, r12
  39. je exit
  40. mov rax, SYS_write
  41. mov rdi, 1
  42. mov rsi, ptr
  43. mov rdx, 1
  44.  
  45. mov r15, 0 //curNumberBefore/n
  46.  
  47. print_cycle:
  48. cmp r14, r12
  49. jl last
  50. mov rdi, 0
  51. mov dl, byte ptr [r14]
  52. cmp dl, const
  53. je then
  54.  
  55. after:
  56. add r15, 1
  57. sub r14, 1
  58. je print_cycle
  59.  
  60. then:
  61. mov rdx, r15
  62. mov rax, SYS_write
  63. mov rdi, 1
  64. mov rsi, r14
  65. sub r14, 1
  66. sub r15, 1
  67. syscall
  68.  
  69. mov r15, 1
  70. jmp after
  71.  
  72. last:
  73. mov rdx, r15
  74. mov rax, SYS_write
  75. mov rdi, 1
  76. mov rsi, r14
  77. syscall
  78.  
  79. mov r15, 0
  80. jmp exit
  81.  
  82. exit:
  83.  
  84. pop rbx
  85. pop r15
  86. pop r14
  87. pop r13
  88. pop r12
  89.  
  90. mov rax, SYS_exit
  91. mov rdi, 0
  92. syscall
  93.  
  94. const:
  95. .byte '\n'
  96. ptr:
  97. .quad const
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement