Witam.
Duzo czasu stracilem na szukanie jakiegos przykladu na dolaczenie pliku assemblerowego w z plikami z napisanymi w C.
Wiem ze:
- rozszerzenie pliku asm konczy sie ".S"
-w Makefile trzeba dodac ASRC = nazwapliku.S
Nie wiem jak ma wygladac taki plik. Przypuszczam ze plik:
asm:
.include "m16def.inc"
.global nazwa_funkcji,nazwa_funkcji2;
nazwa_funkcji:
;;;;;instrukcje asemblerowe
ret
nazwa_funkcji2:
;;;;;instrukcje asemblerowe
ret
--------------------------------------------------------------------------------------
plik *.C
extern void nazwa_funkcji(void);
extern void nazwa_funkcji2(void);
//wywolanie funkcji
nazwa_funkcji();
nazwa_funkcji2();
-------------------------------------------------------------------------------------
Tyle wiem......i czesciowo domyslam sie.
Jednak nie dziala mi to :/
1)
Kompilator pluje sie najpierw do pliku "m16def.inc" ze nie moze znalezc sciezki dostepu. Nio to zalaczylem go w katalogu projektu i juz znalazl:)
Ale teraz ma problem z jego odczytaniem bo pisze np:
m16def.inc:374: Error: expected comma after "DDD6"
Chodzi oczywiscie o kropke przed ".equ".
2)
Mam tez bledy typu:
dodatek.S:38: Error: constant value required
czuli do np kodu:
in r18,PINC
3)
Chcialbym wiedzec jakimi rejestrami przakazywac (zwracac) dane i jakimi przyjmowac???
Bede bardzo wdzieczny za udzielenie mi inforamcji i pomoc w tej sprawie.
Z gory dziekuje bardzo.
Duzo czasu stracilem na szukanie jakiegos przykladu na dolaczenie pliku assemblerowego w z plikami z napisanymi w C.
Wiem ze:
- rozszerzenie pliku asm konczy sie ".S"
-w Makefile trzeba dodac ASRC = nazwapliku.S
Nie wiem jak ma wygladac taki plik. Przypuszczam ze plik:
asm:
.include "m16def.inc"
.global nazwa_funkcji,nazwa_funkcji2;
nazwa_funkcji:
;;;;;instrukcje asemblerowe
ret
nazwa_funkcji2:
;;;;;instrukcje asemblerowe
ret
--------------------------------------------------------------------------------------
plik *.C
extern void nazwa_funkcji(void);
extern void nazwa_funkcji2(void);
//wywolanie funkcji
nazwa_funkcji();
nazwa_funkcji2();
-------------------------------------------------------------------------------------
Tyle wiem......i czesciowo domyslam sie.
Jednak nie dziala mi to :/
1)
Kompilator pluje sie najpierw do pliku "m16def.inc" ze nie moze znalezc sciezki dostepu. Nio to zalaczylem go w katalogu projektu i juz znalazl:)
Ale teraz ma problem z jego odczytaniem bo pisze np:
m16def.inc:374: Error: expected comma after "DDD6"
Chodzi oczywiscie o kropke przed ".equ".
2)
Mam tez bledy typu:
dodatek.S:38: Error: constant value required
czuli do np kodu:
in r18,PINC
3)
Chcialbym wiedzec jakimi rejestrami przakazywac (zwracac) dane i jakimi przyjmowac???
Bede bardzo wdzieczny za udzielenie mi inforamcji i pomoc w tej sprawie.
Z gory dziekuje bardzo.