program | 003 - Calling Assembly from C |
architecture | x86-64 |
assembler | nasm |
#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; }
global sum section .text sum: mov eax, edi add eax, esi ret
nasm -f elf64 -o sum.o sum.asm gcc -o main.o -c main.c gcc -o main main.o sum.o