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,1
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
Z2xvYmFsIF9zdGFydAogCnNlY3Rpb24gLmRhdGEKaGVsbG8gZGIgJ0hlbGxvIFdvcmxkIScKc3BhY2UgZGIgJycKaGxlbiBlcXUgJCAtIGhlbGxvCm91dHAgZHcgMAogCnNlY3Rpb24gLnRleHQKIApfc3RhcnQ6Y21wIGVkeCxlZHgKIAoJbW92IGVheCw0Cgltb3YgZWJ4LDEKCW1vdiBlY3gsaGVsbG8KCW1vdiBlZHgsaGxlbgoJaW50IDgwaAoJbW92IGVheCwxMAoJcHVzaCBlYXgKCWNhbGwgZnVuYwoJYWRkIGVheCw0OAoJbW92IFtvdXRwXSxlYXgKCW1vdiBlYXgsNCAKCW1vdiBlYngsMQoJbW92IGVjeCxvdXRwCgltb3YgZWR4LDEKCWludCA4MGgKIAoJY21wIGVkeCxlZHgKCWptcAkJZXhpdAogCiVkZWZpbmUgRklCX08gZHdvcmQgW2VicC00XQolZGVmaW5lIEZJQl9OIGR3b3JkIFtlYnAtOF0KJWRlZmluZSBGSUJfUFJJTlQgZHdvcmQgW2VicC0xMl0KJWRlZmluZSBGSUJfTElNSVQgZHdvcmQgW2VicCs4XQogCmZ1bmM6IAogIGVudGVyIDEyLDAKICBtb3YgRklCX08sMQogIG1vdiBGSUJfTiwxCiAKbG9vcF9maWI6bW92IGVheCxGSUJfTgogIGNtcCBlYXgsRklCX0xJTUlUCiAgamcgcmV0ZmliCiAgbW92IGVheCxGSUJfTgogIGFkZCBlYXgsRklCX08KICBtb3YgZWJ4LEZJQl9OCiAgbW92IEZJQl9PLGVieAogIG1vdiBGSUJfTixlYXgKIAogIG1vdiBlYngsRklCX08KICBhZGQgZWJ4LDQ4CiAgbW92IFtvdXRwXSxlYngKIAogIG1vdiBlYXgsNCAKICBtb3YgZWJ4LDEKICBtb3YgZWN4LG91dHAKICBtb3YgZWR4LDEKICBpbnQgODBoCiAgbW92IGVheCw0IAogIG1vdiBlYngsMQogIG1vdiBlY3gsc3BhY2UKICBtb3YgZWR4LDEKICBpbnQgODBoCiAKICBqbXAgbG9vcF9maWIKIApyZXRmaWI6bW92IGVheCxGSUJfTwpsZWF2ZQpyZXQKIApleGl0OgoJbW92CQllYXgsIDAxaAkJOyBleGl0KCkKCXhvcgkJZWJ4LCBlYngJCTsgZXJybm8KCWludAkJODBo