c mieszania z montażem

A

akub3

Guest
Witam, jestem w trakcie wdrażania niektórych algorytmów na mikrokontroler pic. Używam PIC18f452. Jestem jednak problemy wywoływanie funkcji c od kodu montażu. Oto fragment mojego kodu: auto char recvd_coord / / recvd współrzędne auto char current_coord / / współrzędne bieżącego extern unsigned char perform_xaveraging (auto char, auto char b); void main (void) {char auto p; p = perform_xaveraging (recvd_coord, current_coord);} / * funkcje do wykonywania średnio obliczenia * / extern unsigned char perform_xaverageing (auto char, auto char b) {w pobliżu auto char z; if (current_coord> POSITIVE_XERR_RANGE | | current_coord
 
Nigdy nie używałem PIC, ale ... Mieszanie montażu i wyższy poziom języka wymaga od programisty być świadomi tego, jak wysoki poziom języka buduje stos na telefon i traktuje wartości zwracanych. Niektóre wersje C promować char na liczbę całkowitą bez znaku wywołania funkcji, ale może to być 16-bitowy mikroprocesor rzeczy. na innych maszynach, niektóre wersje C wymagać lub przyjąć pewien punkt rejestrów do niektórych struktur danych (licznika linii błędy wykonania, na przykład), jeśli wchodzą w programie C w dowolnym miejscu, ale przez main (void) funkcja musisz być tego świadomi
 
Dodać do programu C z wezwaniem do perform_xaveraging. Force C kompilator generuje wyjście asemblera i sprawdzić, jak argumentów (auto char, auto char b) są umieszczane na stosie (albo w jakiś inny sposób). A teraz to samo w asemblerze. Tom
 

Welcome to EDABoard.com

Sponsor

Back
Top