06-04-2012, 12:04
Marcin, domyślam się, że chodzi Ci o łączenie kodu ASM z kodem C w wersji GCC. Niestety maja znajomość tego środowiska jest pobieżna. Moim zdaniem przekazywanie danych pomiędzy GCC a wstawkami w assemblerze jest dość zawiłe i mało czytelne dlatego ja zdecydowałem się na komercyjne środowisko CodeVision.
Tak naprawdę biegłe łączenie C z assemblerem to najskuteczniejsza metoda pisania optymalnego oprogramowania dla mikroprocesorów, wygoda języka C oraz zwartość i szybkość kodu assemblera. Niestety ta metoda wymaga sporej wiedzy oraz dużego doświadczenia w tworzeniu oprogramowania. Łączenie różnych języków jest dość trudne ponieważ wymaga biegłej znajomości używanego kompilatora. Musisz wiedzieć jakich rejestrów procesora używa kompilator, jak przekazuje parametry na stos danych aby w procedurach assemblerowych wiedzieć co ci wolno a co nie. Naruszenie ważnych dla kompilatora rejestrów, wskaźników może spowodować niekontrolowane "wysypanie" całego programu. Możemy oczywiście chronić wszystko czego używamy ale takie wstawki wcale nie będą optymalne.
Wstawki assemblerowe w GCC
Łączenie assemblera i GCC
Tak naprawdę biegłe łączenie C z assemblerem to najskuteczniejsza metoda pisania optymalnego oprogramowania dla mikroprocesorów, wygoda języka C oraz zwartość i szybkość kodu assemblera. Niestety ta metoda wymaga sporej wiedzy oraz dużego doświadczenia w tworzeniu oprogramowania. Łączenie różnych języków jest dość trudne ponieważ wymaga biegłej znajomości używanego kompilatora. Musisz wiedzieć jakich rejestrów procesora używa kompilator, jak przekazuje parametry na stos danych aby w procedurach assemblerowych wiedzieć co ci wolno a co nie. Naruszenie ważnych dla kompilatora rejestrów, wskaźników może spowodować niekontrolowane "wysypanie" całego programu. Możemy oczywiście chronić wszystko czego używamy ale takie wstawki wcale nie będą optymalne.
Wstawki assemblerowe w GCC
Łączenie assemblera i GCC
73 Adam

