GNU als Erweiterung der .macro-Direktive

8

Gibt es eine Möglichkeit, GNU as nur .macro-Direktiven in einer .S-Datei zu erweitern und eine andere .S-Datei ohne sie zu erstellen? Ähnlich wie gcc -E mit C-Code.

Beachten Sie, dass es sich um die Assembler-.macro-Direktive handelt, wie im folgenden Code, nicht über C-style #define-Makros, die über cpp erweitert werden können.

%Vor%     
Jürgen Strobel 30.01.2012, 13:35
quelle

2 Antworten

2

Der Vorprozessor von GNU as verarbeitet nicht .include und .macro , wie alles, was damit beginnt Ein Punkt ist in der Tat eine Assembler-Anweisung; Daher wird die Makroerweiterung zusammen mit der Programmzusammenstellung ausgeführt und kann nicht separat ausgeführt werden, zumindest nicht nach.

Sie haben folgende Optionen:

  • Suchen Sie in Google nach dem Skript von jemand anderem
  • Schreiben Sie Ihre eigene (scheint eine nette Programmierübung)
  • Wechseln Sie zu C-Style-Makros oder M4

Die C-Style-Makroverarbeitung wird standardmäßig ausgeführt, wenn Sie die Erweiterung .S (capital s) für Assembly-Dateien verwenden, die Sie zum Einspeisen von Gas verwenden. Der C-Präprozessor kann auch eigenständig mit dem Befehl cpp

    
UnrealEagle 06.12.2016 13:52
quelle
0

Vielleicht könnten Sie ' cpp ' verwenden, um stattdessen die Makros auszuwerten:

> cpp -P file.S

oder Assemblieren nach Makroerweiterung:

> cpp -P file.S | as -o file.o

    
Brett Hale 30.01.2012 16:27
quelle

Tags und Links