[c/c++] c vs asm, czyli jak używać "Inline Assembly" (w GCC, a dokładniej MinGW)
Ostatnio zmodyfikowano 2013-11-26 21:22
f651144 Temat założony przez niniejszego użytkownika |
[c/c++] c vs asm, czyli jak używać "Inline Assembly" (w GCC, a dokładniej MinGW) » 2013-11-18 14:43:19 Problem, jak w temacie. By nie tracić wszego czasu: Z góry dziękuję za wszelką pomoc i pozdrawiam. |
|
mactec |
» 2013-11-18 21:54:31 Link: http://gynvael.coldwind.pl/?id=14I jeśli ktoś nie zna żadnego kursu, ani poradnika (lub chciałby po prostu pomoc), to może wiedziałby jak przerzucić adres funkcji (z "czystego" c, jak np. printf) do jakiegoś rejestru i użyć go w wstawce (najlepiej najprościej - bez tworzenia dodatkowych zmiennych)? | Co do tego wystarczy zwykły call np: asm( "push 'C'\n\ call putchar\n\ add esp, 4" );
Kompilacja: gcc main.c -masm=intel -m32 Tylko ja to kompilowałem na linuxie, na windowsie będziesz musiał dodać '_' przed putcharem. |
|
RazzorFlame |
» 2013-11-18 23:16:36 Edit: Ale palnąłem głupote ;) Sorki |
|
f651144 Temat założony przez niniejszego użytkownika |
» 2013-11-25 21:22:07 @mactec:
1. Myślisz, że nie znam kursów tego pana?! ;) Chodziło mi nie o to ja wstawić coś z napisanego w asemblerze do kody w c/c++, tylko jak "dogadać" się z kompilatorem w sprawie lokalnych zmiennych. Wiem, że jakoś się da, tylko jak? :P 2. Ale mi nie o call chodzi. Chodzi o to, że zmienna lokalna jest wskaźnikiem na jakąś funkcję, a je chciałbym skoczyć do tej funkcji w wstawce. 3. Nie mogę użyć "-masm=intel". Takie coś zadziała tylko przy założeniu, że wszystkie wstawki używają składni intela. Ja muszę przełączyć się dynamicznie (wewnątrz mojej wstawki) na składnię intela i wrócić do at&t na koniec (na koniec mojej wstawki).
-------------------- Teraz ja czytam mój pierwszy post, to zauważam, że faktycznie można nie zrozumieć. Może tu się poprawie i otwarci zaznaczę, że chodzi o "synchronizację" własnych wstawek z kodem GCC (MinGW). Czyli by np. GCC podał adresy wybranych zmiennych lokalnych. |
|
mactec |
» 2013-11-25 21:59:01 |
|
f651144 Temat założony przez niniejszego użytkownika |
» 2013-11-26 21:22:40 Wieeeeelkie dzięki mactec! Właśnie czegoś takiego szukałem. |
|
« 1 » |