Archiv verlassen und diese Seite im Standarddesign anzeigen : [Inline ASM]: auf C-Konstanten zugreifen
Hallo Leute
Ich habe in der Schule ein Problem (oder besser gesagt mein Dozent hat es).
Ich moechte von Inline-Assembler aus auf die Konstanten des C-Programmes, in welchem der ASM-Code ist, zugreifen.
die Konstanten wurden mittels #define definiert.
Hat jemand dieses Problem schon geloest.
g ben
peschmae
07-03-2005, 16:30
Ersetzt der Präprozesser die Konstanten denn nicht in den Inline-Assembler Bereichen?
Schon mal in gcc -E angeguckt wie das aussieht?
(Ich hab noch nie Assembler geschweige denn Assembler in einem C-Programm programmiert, also keine Ahnung von dem Thema ;))
MfG Peschmä
Beatkiller
07-03-2005, 20:02
Ich hab hier rein zufällig mal ein Codeschnippsel:
void
out_portb(unsigned short _port, unsigned char _data)
{
__asm__ __volatile__ ("outb %1, %0" : : "dN" (_port), "a" (_data) );
}
Rein theoretisch, sollten die Parameter (_port) auch durch Konstanten ersetzbar sein.
Gruß
Mike
Danke fuer eure Antworten
Peshmae: Das Problem ist, dass der Inline-Assembler Code in "" steht. Und der gcc-Praeprozessor ersetzt keine Makros innerhalb der Anfuehrungszeichen.
Beatkiller: Haettest du das ganze in der Intel-Syntax ? Mein Lehrer hat es mit einem Mix von at&t- und intel-syntax hingekriegt, aber das ist nicht sonderlich schoen.
g ben
Powered by vBulletin® Version 4.2.5 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.