gcc: long long a asm

Vojta Filip vojta na kolej.mff.cuni.cz
Úterý Květen 25 22:15:44 CEST 1999


  hi,

potrebuji v C pouzit assembler (i386) a z nej zavolat funkci, ktera
vraci typ long long, tedy asi takto:

long long rrr;

__asm__  __volatile__
(                                                       
    .... ble ble ble ...
    " call funkce \n"
    ????
    : "=g" (rrr)
    : : "memory", "eax", "edx"
)

------

vim, ze long long se vrati v eax a edx, ale nevim, jak ho dat do toho
"rrr". Asi bude korektnejsi dat to do dvou intu, ale nejde to nejak
elegantneji?

Jeste otazka: k cemu presne jsou pouzity registry edi, esi a ebx? Gcc,
pokud je pouziva, si je vzdy uschova a na konci funkce obnovi.


   Vojta


Další informace o konferenci Linux