fork download
  1. global _start
  2.  
  3. section .data
  4. hello db 'Hello World!'
  5. space db ''
  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
  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 [outp],ebx
  54.  
  55. mov eax,4
  56. mov ebx,1
  57. mov ecx,outp
  58. mov edx,1
  59. int 80h
  60. mov eax,4
  61. mov ebx,1
  62. mov ecx,space
  63. mov edx,1
  64. int 80h
  65.  
  66. jmp loop_fib
  67.  
  68. retfib:mov eax,FIB_O
  69. leave
  70. ret
  71.  
  72. exit:
  73. mov eax, 01h ; exit()
  74. xor ebx, ebx ; errno
  75. int 80h
Success #stdin #stdout 0s 5324KB
stdin
Standard input is empty
stdout
Hello World!11223355888