Anzeige:
Ergebnis 1 bis 4 von 4

Thema: [Inline ASM]: auf C-Konstanten zugreifen

  1. #1
    Registrierter Benutzer
    Registriert seit
    07.01.2002
    Ort
    Hünibach
    Beiträge
    48

    [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

  2. #2
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    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ä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  3. #3
    Registrierter Benutzer
    Registriert seit
    24.06.2004
    Beiträge
    101
    Ich hab hier rein zufällig mal ein Codeschnippsel:
    Code:
    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

  4. #4
    Registrierter Benutzer
    Registriert seit
    07.01.2002
    Ort
    Hünibach
    Beiträge
    48
    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

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •