Potrzebuję napisać program w C++ w którym używam funkcji napisanej w Assemblerze.
Zaraz po wejściu do funkcji już w assemblerze wykonuje:
push ebp
mov ebp, esp
Gdy oba parametry są typu int to znajdują się w tym momencie na pozycjach [ebp+8] pierwszy parametr, [ebp+12] drugi parametr.
extern "C" double funkcja (int, int);
Gdy oba parametry są typu double to znajdują się chyba na [ebp+8] pierwszy, [ebp+16] drugi? Tak wpisałem i program działa niby dobrze.
extern "C" double funkcja (double, double);
Problem jest taki że chciałbym aby moja funkcja przyjmowała jako pierwszy parametr typ double a drugi int i teraz nie wiem jak będzie wyglądał stos.
extern "C" double funkcja (double, int);
Wpisywałem różne wartości dla tego drugiego parametru i nigdy nie mogłem dostać poprawnego wyniku.
Pierwszy nadal jest na [ebp+8] ale gdzie jest drugi?