39050

39050



Rozdział 25

Łączenie z


innymi językami

Programista, pisząc jakiś program ma problem z wyborom najbardziej odpowiedniego języka do utworzenia tego programu. Niekiedy zdarza się, że najlepiej byłoby pisać program, korzystając z różnych języków. Język C może być z łatwością łączony z innymi językami programowania, które |xidlegają kompilacji bezpośrednio do kodu maszynowego (Asembler, Fortran czy też C+4-). Ponadto dzięki specjalnym bibliotekom można go łączyć z językami liardzo wysokiego poziomu (takimi jak np. Python czy też Huby). Ten rozdział ma ził zadanie wytłumaczyć Ci, w jaki sposób można mieszać różne języki prognunowiuiia w jednym programie.

Język C i Asembler

Informacje zawarte w tym rozdziale odnoszą się do komputerów z procesorem 1386 i pokrewnych.

Łączenie języka C i języka asemblera jest dość powszechnym zjawiskiem. Dzięki możliwo ści połączenia obu tych języków programowania można było utworzyć bibliotekę dla języka C. która niskopozknnowo komunikuje się z jądrem systemu operacyjnego komputera. Ponieważ zarówno asembler jak i C są językami tłumaczonymi do |>oziomu kodu maszynowego, za ich łączenie odpowiada program zwany linkereni (popularny Id). Ponadto niektórzy producenci kompilatorów umożliwiają stosowanie tzw. wstawek asemblerowych, które umieszcza się bezpośrednio w kodzie programu, napisanego w języku C. Kompilator, kompilując taki kcal wstawi w miejsce tychże wstawek <>d|xiwiedni kod maszynowy, który jest efektem przetłumaczenia kodu asemblera, zawartego w takiej wstawce. Opiszę tu oba sposoby łączenia obydwu języków.

Łączenie na poziomie kodu maszynowego

W naszym przykładzie założymy, że w pliku fl.S zawarty liędzie kod, napisany w asemblerze, a f2.c to kod z programem w języku C. Program w języku C liędzie wykorzystywał jedną funkcję, napisaną w języku asemblera, która wyświetli prosty napis “Hello worki”. Z powodu ograniczeń technicznych zakładamy, że program uruchomiony zostanie w środowisku POSIX na platformie i386 i skompilowany kompilatorem gcc. Używaną składnią asemblera liędzie AT&T (domyślna dla asemblera GNU) Oto plik fl.S:

.t«xt

.globl _fl

177



Wyszukiwarka

Podobne podstrony:
178 ROZDZIAŁ 25. ŁĄCZENIE Z INNYMI JĘZYKAMI_f 1: pushl ‘/.ebp aovl Xesp, ‘/.ebp movl $4, Xeax /* 4 t
180 ROZDZIAŁ 25. ŁĄCZENIE Z INNYMI JĘZYKAMI int main O{ asm ("nop");> W tym wypadku
33270 skanuj0036 [Oryginalna Rozdzielczość] (2) ; 25. U pacjenta poddawanego zabiegowi kardiochirurg
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
s179 Rozdział 13Poczta elektronicznaAutor: Bill Bali Programy obsługi poczty elektronicznej dla połą
rozdział (25) 374 Rozdział x. Analiza decyzyjna w procesie zarządzania ryzyUwg Tabela 11. Ceny akcj
rozdział 1 (25) 28 Podstawy marketingu ^Współczesne rozumienie marketingu przyjmuje za punkt wyjścia

więcej podobnych podstron