fork download
  1. global _start
  2.  
  3. section .data
  4. hello db 'Hello World!',0dh
  5. newline db 0dh
  6. hlen equ $ - hello
  7. outp dw 0
  8.  
  9. section .text
  10.  
  11. _start:cmp edx,edx
  12.  
  13. mov eax,4
  14. mov ebx,1
  15. mov ecx,hello
  16. mov edx,hlen + 1
  17. int 80h
  18. mov eax,10
  19. push eax
  20. call func
  21. add eax,48
  22. mov [outp],eax
  23. mov eax,4
  24. mov ebx,1
  25. mov ecx,outp
  26. mov edx,1
  27. int 80h
  28.  
  29. cmp edx,edx
  30. jmp exit
  31.  
  32. %define FIB_O dword [ebp-4]
  33. %define FIB_N dword [ebp-8]
  34. %define FIB_PRINT dword [ebp-12]
  35. %define FIB_LIMIT dword [ebp+8]
  36.  
  37. func:
  38. enter 12,0
  39. mov FIB_O,1
  40. mov FIB_N,1
  41.  
  42. loop_fib:mov eax,FIB_N
  43. cmp eax,FIB_LIMIT
  44. jg retfib
  45. mov eax,FIB_N
  46. add eax,FIB_O
  47. mov ebx,FIB_N
  48. mov FIB_O,ebx
  49. mov FIB_N,eax
  50.  
  51. mov ebx,FIB_O
  52. add ebx,48
  53. mov FIB_PRINT,ebx
  54.  
  55. mov eax,4
  56. mov ebx,1
  57. mov ecx,hello
  58. mov edx,hlen
  59. int 80h
  60.  
  61. jmp loop_fib
  62.  
  63. retfib:mov eax,FIB_O
  64. leave
  65. ret
  66.  
  67. exit:
  68. mov eax, 01h ; exit()
  69. xor ebx, ebx ; errno
  70. int 80h
Success #stdin #stdout 0s 5332KB
stdin
Standard input is empty
stdout
Hello World!

Hello World!

Hello World!

Hello World!

Hello World!

Hello World!

8