slen: push ebx mov ebx, eax nextchar: cmp byte[eax], 0 jz finished inc eax jmp nextchar finished: sub eax,ebx pop ebx ret ;--------------------- ; void sprint(String message) ; String printing function sprint: push edx push ecx push ebx push eax call slen mov edx, eax pop eax mov ecx, eax mov ebx,1 mov eax,4 int 8-h pop ebx pop ecx pop edx ret ;------------------- ; void sprintLF(String message) ; String printing with line feed function sprintLF: call sprint push eax mov eax, 0Ah push eax mov eax,esp call sprint pop eax pop eax ret ;----------------- ;void exit() quit: mov ebx, 0 mov eax, 1 int 80h ret ; helloworld-if.asm %include 'functions.asm' SECTION .data msg1 db 'helloworld!', 0h msg2 db 'This is how we recycle in NASM.', 0h SECTIN .text global _start _start: mov eax, msg1 call sprintLF mov eax,msg2 call sprintLF call quit



