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