Jak wywołać funkcje asemblerowe z poziomu C w kompilatorze Franklina?
c + asm cd.
From: "jachu" <tomekj_at_nospam_zt.jeleniag.tpsa.pl>
Subject: c + asm cd.
Date: Sat, 08 May 1999 06:48:02 GMT
Witam
Mam problem z wywolaniem funkcji asemblerowych z poziomu C ( kompilator
Franklina). Funkcje asemblerowe znajduja sie w jednym module. Przed kazda z
nich zadeklarowalem
?PR?MYFUNC?_nazwa_mod SEGMENT CODE
RSEG ?PR?MYFUNC?_nazwa_mod
czesc z nich nie bedzie w ogole wywolywana z poziomu C. I tu jest OK.
Funkcje wywolywane z C sa podeklarowane jako PUBLIC, i dla wygody nie
przekazuje do nich zadnych parametrow z C.
Piszac w C:
main(void)
{
func1(void); te trzy funkcje to funkcje asemblerowe
func2(void); znajdujace sie w jednym pliku
func3(void);
}
program nie chce dzialac poprawnie, ale jesli w asemblerze zadeklaruje
dodatkowa funkcje func4 wywolujaca po kolei te trzy i ta funkcje func4()
wywolam z poziomu C wszystko jest w porzadku
main()
{
func4(void); tu trzy funkcje wywolane jednoczesnie
}
program dziala poprawnie
Gdzie moze byc problem?
Zauwazylem ze istotne jest takze umieszczanie dyrektyw dla linkera w pliku
asemblerowym (w zaleznosci od miejsca umieszczenia dyrektyw program dziala
albo nie), jaka tu jest zasada? Moze tu lezy problem?
Czy ktos wie???
Tomek