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