39051

39051



178


ROZDZIAŁ 25. ŁĄCZENIE Z INNYMI JĘZYKAMI

_f 1:

pushl ‘/.ebp aovl Xesp, ‘/.ebp

movl $4, Xeax /* 4 to funkcja systemowa "write" •/

movl $1, 7,ebx /* 1 to stdout */

movl Stekst, */,ecx /* adres naszego napisu •/

movl $len, %edx /* długość napisu w bajtach */

int $0x80 /* wywołanie przerwania systemowego •/

popi Xebp

ret

.data

tekst:

.string "Hello world\n” len • . - tekst

W systemach z rodziny UNIX należy pominąć znak przed nazwą funkcji fl


Teraz kolej na f2.c:

extern void fl (void); /* musimy użyć słowa extern */ int main ()

<

fl();

return 0;

>

Teraz możemy skompilować ol»a programy:

as fl.S -o fl.o

gcc f2.c -c -o f2.o

gcc f2.o fl.o -o program

W ten sposób uzyskujemy plik wykonywalny o nazwie “program”. Efekt działania prognunu powinien być następujący:

Hello world

Na razie utworzyliśmy bardzo prostą funkcję, która w zasadzie nie komunikuje się z językiem C. czyli nie zwraca żadnej wartości ani nie pobiera argumentów. Jednak, aby zacząć pisać olusługę funkcji, która będzie pobierała argumenty i zwracała wyniki musimy |M>znać działanie języka C od trochę niższego poziomu.

Argumenty

Do komunikacji z funkcją język C korzysta ze stosu. Argumenty odkładane są w kolejności od ostatniego do pierwszego. Ponadto na końcu odkładany jest tzw. adres powrotu, dzięki czemu po wykonaniu funkcji program “wic", w którym miejscu ma kontynuować działanie. Ponadto, początek funkcji w asemblerze wygląda tak:

pushl ŹCebp aovl y.esp, y.ebp

Zatem na stosie znajdują się kolejno: zawartość rejestru EBP, adres powrotu a następnie argumenty od pierwszego do n-tego.



Wyszukiwarka

Podobne podstrony:
180 ROZDZIAŁ 25. ŁĄCZENIE Z INNYMI JĘZYKAMI int main O{ asm ("nop");> W tym wypadku
Rozdział 25 Łączenie zinnymi językami Programista, pisząc jakiś program ma problem z wyborom
Jacek Rumiński - Język JAVA - Rozdział 8Rozdział 8 Integracja Javy z innymi językami - JNI. Programo
skanuj0579 178 Rozdział 6 Analiza otoczenia konkurencyjne:: Wyroby substytucyjne ograniczają po
ROZDZIAŁ I 25 Dlaczego własny biznes? w biznesie mogą osiągnąć tylko jednostki o szczególnych, wrodz
rozdział 1 (25) 28 Podstawy marketingu ^Współczesne rozumienie marketingu przyjmuje za punkt wyjścia
Scan 120303 0013 178 Rozdział VII. Samorząd terytorialny “ opiniuje wykonanie budżetu oraz występuje
SCAN0038 178 Rozdział 15 Ryc. 15.3. Porównanie oka i aparatu fotograficznego (rys. Holly Hess Smith,
SCAN0050 178 Rozdział 15 Ryc. 15.3. Porównanie oka i aparatu fotograficznego (rys. Holly Hess Smith,
skanuj0027 (178) Rozdział 2. ♦ Znaczniki, zmienne i typy danych    39 Tabela 2.2. F
lichtarski (178) 356 i. Wtpółpraca pnedriębłorłtwa i innymi podmiotami gołpodarcrymi w sobie, ale mo
PwTiR090 178 Rozdział 7 •    wywiezienie zakupionego towaru za granicę nic później ni
rozdział (25) 374 Rozdział x. Analiza decyzyjna w procesie zarządzania ryzyUwg Tabela 11. Ceny akcj

więcej podobnych podstron