Gast
#2204692
Moin, da Xcode anscheinend mit Inlineassembler nicht ganz zurechtkommt, wollte ich nochmal in reinem Assembler programmieren. Dafür habe ich zum Test das Programm geschrieben:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
Das sollte meines Wissens ein einfaches x86 "Hallo Welt" Programm sein (Zumindest wird es in die erwarteten Maschinenbefehle übersetzt). Das kann ich so auch assemblieren, indem ich im Terminal "as as.s" eingebe (as.s ist der Name der Datei). Das Ergebnis ist eine a.out Datei. Diese kann ich nicht direkt ausführen. Wenn ich versuche, sie zu starten, startet Saturn (was immer das ist) und schließt sich wieder, anscheinend ohne, dass etwas getan wird. Oder wird mein Programm ausgeführt und direkt wieder geschlossen, weil ich ja nur eine Ausgabe habe? Nach Nachforschungen über die .out Datei kam ich auf die Idee, mal mit "ld a.out" zu linken. Da bekomme ich aber entweder den Fehler "ld: in a.out, in section __TEXT,__text reloc 0: bad vanilla relocation length for inferred architecture i386" oder "ld: could not find entry point "start" (perhaps missing crt1.o) for inferred architecture i386" .text, .data und .org 100 einfügen bringt nichts. Kann mir jemand bitte erklären, wie man aus dem oben geschriebenen Programm ein ausführbares Hallo Welt Programm erstellt? Das System ist Mac OSX mit Intel Prozessor, also sollte der Code grundsätzlich richtig sein. Assembliert wird ja auch ohne Probleme. Vielen Dank