[MASM32]Assemble Fehler



  • HI @all
    Ich habe mir heute das Buch "Assembler - Grundlagen der Programmierung" gekauft und wollt zum spaß einfach einen der Beispiel Codes assemblieren und linken.
    Hat aber, wie jedes mal nicht geklappt. Egal was ich assembliere es kommen immer die gleichen Fehler:

    Assembling: C:\asm\tests\seh.asm
    c:\masm32\include\windows.inc(122) : error A2004: symbol type conflict : bool
    c:\masm32\include\windows.inc(7088) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(7088) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(7990) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(7990) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8003) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8003) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8015) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8015) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8020) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8020) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8025) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8025) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8030) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8030) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8035) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8035) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8042) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8042) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8049) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8049) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8056) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8056) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8061) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8061) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8067) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8067) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8075) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8075) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8076) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8076) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8080) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8080) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8086) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8086) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8093) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8093) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8100) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8100) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8105) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8105) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8113) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8113) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8120) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8120) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8128) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8128) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8135) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8135) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8145) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8145) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8146) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8146) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8150) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8150) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8151) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8151) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8156) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8156) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8162) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8162) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8169) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8169) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8176) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8176) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8182) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8182) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8193) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8193) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8201) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8201) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8212) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8212) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8224) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8224) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8232) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8232) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8240) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8240) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8251) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8251) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8262) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8262) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8271) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8271) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8279) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8279) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8288) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8288) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8295) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8295) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8300) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8300) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8306) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8306) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8325) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8325) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8346) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8346) : error A2008: syntax error : in structure
    c:\masm32\include\windows.inc(8375) : error A2179: structure improperly initialized
    c:\masm32\include\windows.inc(8375) : fatal error A1012: error count exceeds 100; stopping assembly
     Volume in Laufwerk C: hat keine Bezeichnung.
     Volumeseriennummer: D453-C521
    
     Verzeichnis von C:\asm\tests
    
    27.12.2006  17:01               966 seh.asm
                   1 Datei(en)            966 Bytes
                   0 Verzeichnis(se), 137.997.819.904 Bytes frei
    

    Ja und hier noch der Quellcode:

    .386
    .model flat, stdcall
    
    include \masm32\include\windows.inc
    include \masm32\include\user32.inc
    include \masm32\include\kernel32.inc
    
    includelib \masm32\lib\user32.lib
    includelib \masm32\lib\kernel32.lib
    
    assume fs:nothing
    
    .data
            Titel db 'Gewollter Fehler',0
            Msg db 'Klicken Sie OK um eine Division durch Null auszuführen',0
            SEHTitel db 'Fehler!',0
            SEHMsg db 'Es ist ein Fehler aufgetreten. Das Programm wird beendet.',0
    
    .code
    start:
            push offset seh       ;Zeiger auf unseren eigenen Exception-Hndler
            push dword ptr fs:0   ;Zeiger auf die nächste Struktur in der Liste
            mov fs:0, esp         ;neuer Anfang der Liste
    
            invoke MessageBox, 0, offset Msg, offset Titel,0
    
            xor ecx, ecx
            div ecx
    
            invoke ExitProcess,0
    
    seh:
            invoke MessageBox, 0, offset SEHMsg, offset SEHTitel, MB_ICONHAND
            invoke ExitProcess, 0
    end start
    

    Ich hoffe dass Ihr mir helfen könnte, denn das wäre dann schon das 5. mal dass Ich Assembler ins Eck geschmissen habe.
    mfg



  • Hallo!
    Füge option casemap :none ein und vergess das manuelle Speichern der geänderten Quellcodedatei nicht, bevor du assemblierst - viel Spass mit Assembler!
    [code]
    .386
    .model flat, stdcall
    option casemap :none ; case sensitive

    include \masm32\include\windows.inc
    ...
    [cpp]

    mfg



  • Gut danke, jetzt kommen wenigstens keine Fehler mehr.
    Aber Ich bekomme keine .obj Datei beim Assemblieren:

    Assembling: C:\asm\tests\seh.asm
     Volume in Laufwerk C: hat keine Bezeichnung.
     Volumeseriennummer: D453-C521
    
     Verzeichnis von C:\asm\tests
    
    28.12.2006  13:44               994 seh.asm
                   1 Datei(en)            994 Bytes
                   0 Verzeichnis(se), 137.342.296.064 Bytes frei
    

    Da stimmt doch was nicht?
    mfg



  • Die *.obj müsste eigentlich im gleichen Verzeichnis wie die Quellcodedatei sein, wenn in der masm32-Befehlszeile nichts anderes bestimmt wurde.



  • Oh, mir fällt gerade auf, dass die .obj schon erstellt wurde, aber nicht bei der Quelldatei, sondern im masm32 Ordner. Kann man das ändern?
    mfg

    //edit: wen man die .obj Datei dann Linkt wird diese auch im masm32 Ordenr erstellt.



  • evtl. liegt sie ja auch in dem Verzeichnis, von dem aus der Assembler gestartet wurde...
    Edit: Jup. Wechsle in das Quellcodeverzeichnis, bevor du den Assembler startest, oder gibt den Pfad an, wo die Obj-Datei erstellt werden soll.



  • Ok, Danke, Jetzt kann Ich endlich Assembler lernen.
    Und nochmal THX an alle.
    mfg



  • am besten du lädst dir sämtliche quellcodes runter oder schau unter
    masm32.com,asmcommunity.net da helfen sie mir immer wenn ich nichtmal
    weiter weis

    greats
    ragdog 😃


Anmelden zum Antworten