slen:
push ebx
mov ebx, eax
nextchar:
cmp byte[eax], 0
jz finished
inc eax
jmp nextchar
finished:
sub eax,ebx
pop ebx
ret
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 80h
pop ebx
pop ecx
pop edx
ret
quit:
mov ebx,0
mov eax,1
int 80h
ret
; helloworld-inc.asm
%include 'funtions.asm'
SECTION .data
msg1 db 'helloworld!', 0Ah
msg2 db 'This is how recycle in NASM.', 0Ah
SECTION .text
global _start
_start:
mov eax,msg1
call sprint
mov eax, msg2
call sprint
call quit
06-21
1911