Gast
#250056
Hallo Leute, ich habe mir mal in den Kopf gesetzt, ein Windowsprogramm in Assembler zu schreiben. Dazu benutze ich den MASM32, der ja mitlerweile frei ist. Erste Fenster, Dialogboxen etc. kann ich schon erstellen und ich bin echt begeistert, wie extrem einfach und kurz sich so ein Assemblerprogramm gestaltet. Wenn man dann noch die high level syntax von MASM beherrscht, kommt man schon recht nah an C ran und programmiert aber trotzdem in reinem Assembler. Nun zu meinem Problem: ich habe ein kleines Tool geschrieben, welches mir in einer Messagebox die Anzahl der Millisekunden ausgibt, die seit dem letzten Windowsstart vergangen sind. Funktioniert auch perfekt, im Anhang Source und exe-File. Was mir aber nicht in den Kopf will ist, warum das exe-File nicht größer wird, wenn ich weitere Befehle einfüge. Z. B. ändert sich nichts an der Dateigröße, wenn ich 10 NOPs im Quelltext einfüge und neu kompiliere. Oder wenn ich mir dreimal hintereinander die Messagebox anzeigen lasse, ändert sich nichts. Hat da jemand eine Erklärung? Das zweite wäre, wie kann man das exe-File größenmäßig verkleinern? Ich habe mir es mal mit einem Hexeditor angesehen und festgestellt, daß sehr viele Nullen enthalten sind. Wenn man das File packt, gibts nur ein paar hundert byte. Vielleicht kann man das aber bereits vom Assembler/Linker machen lassen. Leider habe ich nichts gefunden. Wenn jemand eine Idee hat, wäre super. Ich vermute ja, daß die erwähnten 10 NOPs an die Stelle kommen, wo die Nullen stehen. Wäre dann aber nicht sehr effektiv vom Assembler. Danke! Gruß Jens