global _start
section .data
hello db 'Hello World!'
space db ' '
hlen equ $ - hello
outp dw 0
section .text
_start:cmp edx,edx
mov eax,4
mov ebx,1
mov ecx,hello
mov edx,hlen
int 80h
mov eax,10
push eax
call func
add eax,48
mov [outp],eax
mov eax,4
mov ebx,1
mov ecx,outp
mov edx,1
int 80h
cmp edx,edx
jmp exit
%define FIB_O dword [ebp-4]
%define FIB_N dword [ebp-8]
%define FIB_PRINT dword [ebp-12]
%define FIB_LIMIT dword [ebp+8]
func:
enter 12,0
mov FIB_O,0
mov FIB_N,1
loop_fib:mov eax,FIB_N
cmp eax,FIB_LIMIT
jg retfib
mov eax,FIB_N
add eax,FIB_O
mov ebx,FIB_N
mov FIB_O,ebx
mov FIB_N,eax
mov ebx,FIB_O
add ebx,48
mov [outp],ebx
mov eax,4
mov ebx,1
mov ecx,outp
mov edx,1
int 80h
mov eax,4
mov ebx,1
mov ecx,space
mov edx,1
int 80h
jmp loop_fib
retfib:mov eax,FIB_O
leave
ret
exit:
mov eax, 01h ; exit()
xor ebx, ebx ; errno
int 80h
Z2xvYmFsIF9zdGFydAogCnNlY3Rpb24gLmRhdGEKaGVsbG8gZGIgJ0hlbGxvIFdvcmxkIScKc3BhY2UgZGIgJyAnCmhsZW4gZXF1ICQgLSBoZWxsbwpvdXRwIGR3IDAKIApzZWN0aW9uIC50ZXh0CiAKX3N0YXJ0OmNtcCBlZHgsZWR4CiAKCW1vdiBlYXgsNAoJbW92IGVieCwxCgltb3YgZWN4LGhlbGxvCgltb3YgZWR4LGhsZW4KCWludCA4MGgKCW1vdiBlYXgsMTAKCXB1c2ggZWF4CgljYWxsIGZ1bmMKCWFkZCBlYXgsNDgKCW1vdiBbb3V0cF0sZWF4Cgltb3YgZWF4LDQgCgltb3YgZWJ4LDEKCW1vdiBlY3gsb3V0cAoJbW92IGVkeCwxCglpbnQgODBoCiAKCWNtcCBlZHgsZWR4CglqbXAJCWV4aXQKIAolZGVmaW5lIEZJQl9PIGR3b3JkIFtlYnAtNF0KJWRlZmluZSBGSUJfTiBkd29yZCBbZWJwLThdCiVkZWZpbmUgRklCX1BSSU5UIGR3b3JkIFtlYnAtMTJdCiVkZWZpbmUgRklCX0xJTUlUIGR3b3JkIFtlYnArOF0KIApmdW5jOiAKICBlbnRlciAxMiwwCiAgbW92IEZJQl9PLDAKICBtb3YgRklCX04sMQogCmxvb3BfZmliOm1vdiBlYXgsRklCX04KICBjbXAgZWF4LEZJQl9MSU1JVAogIGpnIHJldGZpYgogIG1vdiBlYXgsRklCX04KICBhZGQgZWF4LEZJQl9PCiAgbW92IGVieCxGSUJfTgogIG1vdiBGSUJfTyxlYngKICBtb3YgRklCX04sZWF4CiAKICBtb3YgZWJ4LEZJQl9PCiAgYWRkIGVieCw0OAogIG1vdiBbb3V0cF0sZWJ4CiAKICBtb3YgZWF4LDQgCiAgbW92IGVieCwxCiAgbW92IGVjeCxvdXRwCiAgbW92IGVkeCwxCiAgaW50IDgwaAogIAogIG1vdiBlYXgsNCAKICBtb3YgZWJ4LDEKICBtb3YgZWN4LHNwYWNlCiAgbW92IGVkeCwxCiAgaW50IDgwaAogCiAgam1wIGxvb3BfZmliCiAKcmV0ZmliOm1vdiBlYXgsRklCX08KbGVhdmUKcmV0CiAKZXhpdDoKCW1vdgkJZWF4LCAwMWgJCTsgZXhpdCgpCgl4b3IJCWVieCwgZWJ4CQk7IGVycm5vCglpbnQJCTgwaA==