Thread View: pl.comp.lang.c
3 messages
3 total messages
Started by Guest
Thu, 29 Jan 1998 10:47
asm(...)
Author: Guest
Date: Thu, 29 Jan 1998 10:47
Date: Thu, 29 Jan 1998 10:47
7 lines
658 bytes
658 bytes
W jednym z programow spotkalem sie z taka konstrukcja:
register struct foo *bar asm("%eax");
Wiem co oznacza deklaracja register to wiem, ale co daje w tym przypadku asm(...)
Marcin
Re: asm(...)
Author: Tomasz Wysocki
Date: Fri, 30 Jan 1998 23:36
Date: Fri, 30 Jan 1998 23:36
31 lines
1719 bytes
1719 bytes
Guest <guest@manjak.knm.org.pl> napisał(a) w artykule
<199801291047.LAA07967@manjak.knm.org.pl>...
> W jednym z programow spotkalem sie z taka konstrukcja:
>
> register struct foo *bar asm("%eax");
>
> Wiem co oznacza deklaracja register to wiem, ale co daje w tym przypadku
asm(...)
Jest to jedno z rozszerzen gcc ktore umozliwia nadanie identyfikatorowi
wystepujacemu w programie odpowiadajacego mu identyfikatora w kodzie
assemblerowym.
Mozna w ten sposob zmienic zachowanie kompilatora i funkcji func nadac
nazwe FUNC a nie _func.
Przyklad:
extern func () asm ("FUNC");
Dotyczy to zarowno identyfikatorow zmiennych jak i funkcji.
Dodatkowym rozszerzeniem tego mechanizmu jest zmuszenie kompilatora do
uzywania okreslonego rejestru dla danej zmiennej:
Wówczas:
register struct foo *bar asm ("%eax");
nakazuje umieszczenie wskaznika bar nie na stosie (dla zmiennych lokalnych)
ani nie w segmencie danych (dla zmiennych globalnych) lecz w okreslonym
rejestrze.
W naszym przypadku bedzie to %eax.
A jak chcemy optymalizowac recznie to i tak najlepszy jest assembler.
mailto:tawek@friko2.onet.pl
Re: asm(...)
Author: Krzysztof G. Baranowski
Date: Tue, 03 Feb 1998 11:11
Date: Tue, 03 Feb 1998 11:11
14 lines
1321 bytes
1321 bytes
While testing the million monkey theory, Guest wrote:
>W jednym z programow spotkalem sie z taka konstrukcja:
>register struct foo *bar asm("%eax");
>Wiem co oznacza deklaracja register to wiem, ale co daje w tym przypadku asm(...)
info gcc -> C Extensions -> Explicit Reg Vars
Tam jest wszystko opisane.
Pozdrawiam,
Kris
--
Krzysztof G. Baranowski - Prezes Klubu Nieszkodliwych Manjaków
"Smith & Wesson - The original point and click interface..."
http://www.knm.org.pl/ <prezes@manjak.knm.org.pl>
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads