assembler v C
Vojta Filip
vojta na kolej.mff.cuni.cz
Pátek Březen 19 19:39:18 CET 1999
Potrebuji vlozit do C assembler. Vse je OK, akorat kdyz z nej chci volat
nejakou dalsi funkci (a tu davam jako vstupni parameter) nastavaji
problemy:
void yield(void) {}
main() {
asm ( "call %0\n" : : "g" (yield) );
}
GCC toto prelozi jako "call $yield", coz je nesmysl a skonci to chybou
assembleru. Prelozeno jako C++ je to naprosto v pohode (call yield__Fv).
Pokud je yield ukazatel na funkci (a vlastne asi az tady to ma jako
parametr opodstatneni) vse se prelozi spravne (jak v C tak v C++).
Takze otazka - proc je prvni pripad spatne? A pokud je chyba na me
strane (predpokladam, ze ano) proc jenom v C?
Vojta
Další informace o konferenci Linux