7 - Funkcje wysokiego poziomu
	- Przekazywanie argumentów z/do funkcji wysokiego poziomu.
	- Wywoływanie funkcji asemblera z kodu C.

= Wywoływanie funkcji asemblera z C =

Żeby wywoływać funkcje z asemblera w kodzie w C, trzeba:
- Skompilować plik asemblera do pliku .o
- Wyeksportować w kodzie asemblerowym symbol funkcji, którą chcemy
wywoływać, za pomocą dyrektywy "global", która mówi, że symbol ma 
być dostępny w innych modułach, np:
global moja_nazwa_funkcji
- Funkcja asemblerowa musi używać konwencji wywołania C (patrz zajęcia 04_stos).
- W kodzie C umieszczamy deklarację zapowiadającą funkcji z sygnaturą (typ i
liczba argumentów, typ zwracany) zgodną z naszą funkcją asemblerową, np:
int moja_nazwa_funkcji(int argument1, char *napis);
- W kodzie C wywołujemy ją jak każdą inną funkcję.

= Wywołanie funkcji C z asemblera =

Żeby program w asemblerze mógł wywołać funkcję w C:
- Kompilujemy plik C do pliku .o
- Linkujemy program w asemblerze do pliku .o
- Dolinkowujemy wszystkie biblioteki potrzebne w programie C do programu
wykonywalnego, biblioteki najlepiej linkować jako "static", żeby nie było
problemów z dynamicznym linkerem. Najczęściej konieczna jest biblioteka
libc, którą linkuje się za pomocą "-lc".
- W kodzie asemblera deklarujemy nazwę funkcji "C" jako znajdującą się w
innym module, za pomocą dyrektywy "extern", np:
extern moja_funkcja_w_c
- W kodzie asemblera wywołujemy funkcję z C używając konwencji C.
- Należy pamiętać, że zawartość niektórych rejestrów w konwencji C nie jest
odtwarzana.

Uwaga! Jeśli kompilujemy kod C++, to konieczne jest użycie dyrektywy
extern "C"
inaczej symbole będą zakodowane w konwencji C++ (czyli z kodowaniem
argumentów w nazwie funkcji).

Zadania:
- Przerobić program "strings.asm" tak aby można go było wywoływać z kodu C i
napisać program w C, który go wywołuje.
- Przerobić powyższy program tak, by używał funkcji write() z biblioteki C
zamiast ręcznego wywoływania funkcji systemowych.
- Napisać w asemblerze funkcję "memset_asm" (analogiczną do memset()) i
wywoływać ją z C.
- Przerobić program main_asm, żeby używał funkcji printf() z biblioteki C
zamiast funkcji wypisz i wypisz_liczbe.
