39052

39052



179


JĘZYK C l ASEMBLER

Zwracanie wartości

Na architekturze i386 <k> zwracania wyników pracy programu używa się rejestru EAX, bądź jego "mniejszych" odpowiedników, tj. AX i AH/AL. Zatem aby funkcja, napisana w asemblerze zwróciła ‘‘l” przed rozkazem ret należy napisać:

novl $1, '/.eax

Nazewnictwo

Kompilatory języka C/C+ + dodają podkreślnik    na początku każdej nazwy. Dla przy

kładu funkcja:

void funkcjaO;

W pliku wyjściowym l>ędzie posiadać nazwę .funkcja. Dlatego, aby korzystać z poziomu języka C z funkcji zakodowanych w asemblerze, muszą one mieć przy definicji w pliku asemblera wspomniany dodatkowy podkreślnik na początku.

Łączymy wszystko w całość

Pora, abyśmy napisali jakąś funkcję, która pobierze argumenty i zwróci jakiś konkretny wynik. Oto kod fl.S:

.t«xt

.globl .funkcja .funkcja: pushl %ebp oovl y,esp, ‘/.ebp

oovl 8C/,esp), Xeax /* kopiujeay pierwszy argument do */,eax •/

addl 12(‘/.osp), y.eax /• do pierwszogo argumentu u '/,oax dodajemy drugi argument • / popi ‘/.ebp

ret /• ... i zwracamy wynik dodawania... •/

oraz f2.c:

iinclude <stdio.h>

extern int funkcja (int a, int b);

int main ()

{

printf <M2*3-Xd\n", funkcja(2,3)>; return 0;

)

Po skompilowaniu i uruchomieniu programu powinniśmy otrzymać wydruk: 2+3=5

Wstawki asemblerowe

Oprócz możliwości wstępnie skompilowanych modułów możesz posłużyć się także tzw. wstawkami asemblerowymi. Ich użycie powoduje wstawienie w miejsce wystąpienia wstawki odpowiedniego kodu maszynowego, który powstanie po przetłumaczeniu kodu asemblerowego. Ponieważ jednak wstawki asemblerowe nie są standardowym elementem języki C. każdy kompilator ma całkowicie odmienną filozofię ich stosowania (lub nie ma ich w ogóle). Ponieważ w tym podręczniku używamy głównie kompilatora GNU, więc w tym rozdziale zostanie omówiona filozofia stosowania wstawek asemblera według programistów GNU.

Ze wstawek asemblerowych korzysta się tak:



Wyszukiwarka

Podobne podstrony:
2.    Przeznaczanie środków na system ocen okresowych (wyników pracy) oraz
2 2.    Przeznaczanie środków na system ocen okresowych (wyników pracy) oraz
1536629Y4411697294362?585982 n I m Pinkcr 1 kładąc nacisk na przy-uralny, zwraca uwagę, że język jes
Wartość badań laboratoryjnych w diagnostyce wlóknicnia wątroby 179 wątroby dzieli się na markery
Przedsiębiorstwo turystyczne w gospodarce wolnorynkowej G Gołembski (179) 180 VI. Oddziaływanie n
22 (374) ^^o^ei^c^n^^^oisklej2tra^cj^To^r^e^ews^smi^n^ T0„n,e >Vlk° architektura skarbnica wartoś
choroszy9 179 Tabela 6.3. Szacunkowe wartości naddatków na wybrane operacje technologiczne Sposób
Gałdowa13 Na to samo zwracają uwagę Cofer i Appley w swej pracy o motywacji, podkreśląjąc katdorazow
/ 114    Badanie sił przyrody i ocena pożytecznej ich wartości. na zasadzie których m
Slajd12 (120) Znaczniki stanu wewnętrznego C (Cany) - przeniesienie: wartość 1 na tej pozycji oznacz

więcej podobnych podstron