Podprogramy
Interfejsowanie z C

Większość kompilatorów C poprzedza nazwy funkcji znakiem podkreślenia np. funkcja suma będzie w assemblerze miała nazwę _suma. Kompilator GCC jest tu wyjątkiem: nazwy są dokładnie takie same.

W pliku C deklarujemy funkcję jako zewnętrzną

 extern int suma(int, int);
i możemy już jej normalnie używać.

W pliku assemblerowym musimy odpowiedni symbol zdefiniowac jako globalny, aby był widoczny w innych jednostach kompilacji

global suma
suma: 
       ; tutaj cialo funkcji 
   ret

Następnie kompilujemy każdy plik osobno i linkujemy razem.

Program w C
Moduł w assemblerze


Tomasz Kapela, Kraków 2011-2020