Laut C-Standard ist eine Quelldatei aus Zeilen aufgebaut. Jede Zeile
endet dabei mit einer Zeilenendekennung (Newline unter Unix, CR-LF
unter DOS). Da die Datei nur ganze Zeilen haben kann, muß als letztes
in der Datei folglich immer eine Zeilenendekennung stehen.
Die Zeilenorientierung mag auf den ersten Blick verwundern, da C ja
eigentlich white space ignoriert und eine weitgehend formatfreie
Sprache ist. Wenn Du Dir aber mal den Präprozessor genauer ansiehst
wirst Du feststellen, daß der in Zeilen ,,denkt''. Schreibst Du
nämlich irgendwo
#define foo bar baz bam bum
dann wird später bei jedem Auftreten von "foo" der Rest der Zeile
(abzüglich des white space zwischen "foo" und dem ersten nichtleeren
Zeichen des Zeilenrestes) substituiert.
Auch wenn es sich bei Deiner Datei um eine Assemblerdatei handelt, Du
hast sicher eine solche, die noch durch den Präprozessor geschickt
wird, um #include, #define usw. zu bearbeiten. Damit unterliegt sie
den C-Regeln.
Manche Windows-Editoren scheinen eine gewisse Tendenz zu haben, am
Ende der Datei nicht freiwillig eine Zeilenendekennung einzufügen.
Abhilfe: explizit noch einen Zeilenwechsel eintippen. (Einer mehr
schadet nicht. ;-)
Die anderen Warnungen stammen aus der COFF-Konvertierung und hängen im
Wesentlichen damit zusammen, daß Du nicht alle wünschenswerten
Debug-Symbole händisch in Deinen Assemblercode eingebaut hast. Die
sind aber allesamt belanglos.