program 003 - Calling Assembly from C
architecture x86-64
assembler nasm

main.c

#include <stdio.h>

extern int sum (int a, int b);

int main ()
{
	const int a = 2;
	const int b = 3;

	printf ("%d + %d = %d\n", a, b, sum (a, b));
	return 0;
}

sum.asm

        global sum

        section .text
sum:
        mov eax, edi
        add eax, esi
        ret

build instructions

nasm -f elf64 -o sum.o sum.asm
gcc -o main.o -c main.c
gcc -o main main.o sum.o