ďťż

sunsetting

photo

Witam
Mam problem z przekazywanie tablicy z C do asemblera (do DLL-ki).
W C pisze:
Kod: extern "C" double __stdcall Funkcja(double *a);
...
double tablica[4] = {4,3,2,1};
Funkcja(tablica);

W asemblerze mam funkcje
Kod:
Funkcja proc a: PTR REAL8
    finit
    fld real8 ptr[a+0]
    fld real8 ptr[a+0]
    fmul
    ret
Funkcja endp

Mnozenie caly czas daje 0, nie wiem co robie zle, moze cos z tymi ptr. Ktos jest w stanie pomoc?[/code]


Prawdopodobnie piszesz w C++ skoro deklarując funkcję zewnętrzną użyłeś extern "C".
Ale do funkcji przekazujesz cztero-elementową tablicę, a mnożysz pierwszy element przez siebie. Napisałbym to inaczej, ale nie wiem o co dokładnie Ci chodzi.
A wynik mnożenia musisz przenieść z koprocesora gdzie to potrzebne.
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • kazimierz.htw.pl