gcc: long long a asm

Pavel Machek pavel na bug.ucw.cz
Úterý Květen 25 23:35:36 CEST 1999


Ahoj!

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

Podle me tohle nesmis.

Ja bych si kod predstavoval jako

__asm__ __volatile__ (
	".... neco delej"
}

	y = funkce( x );

__asm__ __volatile__ (
	".... delej neco dalsiho"
}

> 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?

Bojim se ze nejde. Gcc je divna mrcha... Zkus se zeptat honzy hubicky
(hubicka na atrey) -- v cechach je asi jediny kdo do gcc opravdu vidi ;-).

> 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.

To bude souviset s volaci konvenci...

-- 
I'm really pavel na ucw.cz. Look at http://195.113.31.123/~pavel.    Pavel
Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!


Další informace o konferenci Linux