Ich möchte diesen Quellcode unter Windows kompilieren (dies ist nur ein Beispiel):
start:
NOP
NOP
Wenn ich es mit NASM oder FASM kompiliere, beträgt die Länge der Ausgabedatei 2 Byte. Aber wenn ich es mit GNU Assembler (as) kompiliere, ist die Ausgabedatei 292 Bytes lang!
Wie kompiliert man eine Assembler-Datei in ein rohes Binärformat (wie DOS .com) mit GNU Assembler (as)?
Warum ich das tue?
Ich möchte mein eigenes einfaches Betriebssystem schreiben, ich schreibe meine Codes in C (ohne irgendwelche C-Standardbibliotheken zu verwenden, sogar stdio.h oder math.h) und konvertiere sie in Assembler:
gcc -S my_os.c -o my_os.asm -masm=intel
Dann kompiliere ich die Assemblierungsdatei in eine Rohbinärdatei:
as my_os.asm
Dann benenne ich um a.out
(Ausgabe des Assemblers) nach my_os.flp
und endlich mein Betriebssystem mit VMWare starten :)