fork(1) download
  1. _strlen:
  2.  
  3. push rdx
  4. xor rdx,rdx
  5. _strlen_loop_start:
  6.  
  7. cmp [rax+rdx] ,byte 0
  8. je _strlen_loop_end
  9. inc rdx
  10. jmp _strlen_loop_start
  11.  
  12. _strlen_loop_end:
  13. mov rax,rdx
  14. pop rdx
  15. ret
  16.  
  17.  
  18.  
  19. _print:
  20.  
  21. push rax
  22. push rbx
  23. push rcx
  24. push rdx
  25. mov rcx, rax
  26.  
  27. call _strlen
  28.  
  29. mov rdx,rax
  30. mov rax,4
  31. mov rbx,1
  32. int 80h
  33.  
  34. pop rdx
  35. pop rcx
  36. pop rbx
  37. pop rax
  38. ret
  39.  
  40. segment .text
  41. global _start
  42. segment .data
  43. hell: db 'hell!', 0xA ,0
  44.  
  45. _start:
  46.  
  47. mov rax,hell
  48. call _print
  49.  
  50. mov rax,1
  51. mov rbx,0
  52. int 0x80
Success #stdin #stdout 0s 4440KB
stdin
Standard input is empty
stdout
hell!