Lowlevel
Lowlevel => Lowlevel-Coding => Thema gestartet von: lobmann am 26. April 2004, 18:50
-
kennt jemand zufällig ein Tutorial (deutsch) zum gcc inline assembler
-
Musst du einfach nach der AT Assembler Syntax suchen, nach dem arbeitet der nämlich. Also gcc Inline: Im Gegensatz zur Intelkonvention die bei nasm verwendung findet wird bei at zuerst die quelle dann das ziel angegeben also:
Intel : mov ax,bx
AT: movw %bx,%ax
wie man sieht müssen vor die register noch % gemacht werden. zu den befehlen muss denn noch jewils geschrieben werden ob ein byte word oder dword vorliegt also dann unterscheiden zwischen movb movw movd.
Bei Konstanten wird ein $ davorgemacht also zum beispiel movb $0xA,al
so ganz kurz , es gibt noch mehr aber das dauert mir grade zu lang;) es gibt dann noch die extended version dazu da müssen dann zwei % vor die register und da ändert sich noch einiges. Also wenn du den inline bei gcc haben willst musst du dir eine komplett andere syntax angewöhnen die mit nasm fast garnichts mehr zu tun hat, ich komm inzwischen mit beidem ganz gut klar, nur das extended macht schwierigkeiten. Ich mache das lieber mit nasm und linke es dann dazu das geht schneller. Ich kann aber mal ein kurzes tut schreiben und pack es dann auf meine HP
-
thx
@Roshl
Wäre echt ma ne coole Idee mit dem Tut im Netz hab ich nämlich absolout nichts gefunden.
Von mir aus würd ich auch viel lieber alles in nasm machen nur ich hab halt kein bock so sachen wie sti cli als funktion zu realisieren.
-
die cli und sti hab ich mit inline gemacht;) da haste se:
void sti() {asm volatile("sti");}
void cli() {asm volatile("cli");}
ganz simpel
das mit dem tut kann aber dauern
-
thx
-
Unter http://www.linux-kernel.de/appendix/index.html, Anhang C findet ihr ein Tutorial: Anmerkungen zu C. Darin geht es auch um Attribute, Besonderheiten, Optimierungen und Inline-ASM im gcc. Sehr empfehlenswert.
-
thx
@kleiner
jetz hab ich erstma wieder was zu tun
-
tja, das Ding gänzlich durchzumachen sollte etwas dauern, aber einiges bringen.
Muss ich mich nachm Abi wohl auch mal ran machen.
Aber es gibt einem die mächtigen Werkzeuge von gcc an die Hand.