[MASM32]Assemble Fehler

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

[MASM32]Assemble Fehler

Beitragvon Dr.ChAoS » Mittwoch 27. Dezember 2006, 18:55

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:
Code: Alles auswählen
 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:
Code: Alles auswählen
.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
Dr.ChAoS
Newbie
 
Beiträge: 5
Registriert: Freitag 29. September 2006, 13:59

Beitragvon crack » Donnerstag 28. Dezember 2006, 00:20

Tja, meine Vermutung ist das der Assembler die Lib und Inc Dateien nicht findet. Mögliche Ursache bzw. Abhilfe: die Path Variable entsprechend setzen, also z.B.:



ste path=c:/....;c:/masm32;c:/masm32/lib;c:/masm32/include



könnte evtl. Abhilfe schaffen...
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Beitragvon Dr.ChAoS » Donnerstag 28. Dezember 2006, 00:39

Ich verstehe jetzt nicht ganz genau wie du das meinst.
Wo muss Ich den Pfad verändern?
Und vorallem wie?
mfg
Dr.ChAoS
Newbie
 
Beiträge: 5
Registriert: Freitag 29. September 2006, 13:59

Beitragvon crack » Donnerstag 28. Dezember 2006, 00:43

In der Systemsteuerung da klickst Du auf System, und dort öffnest Du die Registerkarte 'Umgebungsvariablen' suchst "set Path=c\windows..."und hängst dort:

;c:\masm32;c:\masm32\lib;c:\masm32\include

an den vorhandenen String an.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Beitragvon Dr.ChAoS » Donnerstag 28. Dezember 2006, 01:10

Also Ich benutze XP prof, da sieht das etwas anders aus, aber ich habs gefunden.
Aber es klappt immer noch nicht. In dem Menü sieht dann alles ganz ander aus:
Benutzervariablen für .******:
LANG
PATH
TEMP
TMP

Systemvariablen:
CLASSPATH
ComSpec
FP_NO_HOST_C...
LANG
NUMBER_OF_P...
OS
Path
PATHEXT
PROCESSOR_A...
PROCESSOR_ID
PROCESSOR_LE...
PROCESSOR_R...
QTJAVA
TEMP
TMP
VS80COMNTOOLS
windir

So das waren jetzt alle, wo soll ich das jetzt eintragen? Denn da hat es viee die mit c:\WINDOWS anfangen.
Ich hab mal ein paar versucht, hat aber nicht geklappt.
mfg
Dr.ChAoS
Newbie
 
Beiträge: 5
Registriert: Freitag 29. September 2006, 13:59

Beitragvon crack » Donnerstag 28. Dezember 2006, 01:26

Die Path variable meinte ich ... BTW. tritt der Fehler denn auch bei anderen Quelltexten auf?
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 280
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Beitragvon Dr.ChAoS » Donnerstag 28. Dezember 2006, 02:02

Also hab das jetzt geändert, aber es erscheinen immer noch die gleichen Fehler bei dem Gleichen code.

Wenn Ich diesen hier Assembliere, dann bekomme Ich keine .obj Datei:
Code: Alles auswählen
.386
.model flat,stdcall
option casemap: none

include \masm32\include\windows.inc
include \masm32\include\wininet.inc
include \masm32\include\kernel32.inc
include \masm32\include\user32.inc

includelib \masm32\lib\wininet.lib
includelib \masm32\lib\kernel32.lib
includelib \masm32\lib\user32.lib

CheckConnection PROTO
TimerProc PROTO

.const
    Offline equ 0
    Online equ 1
    Error equ -1

.data?
    Flags      DWORD ?
    inetHandle DWORD ?
    urlHandle  DWORD ?
    ThreadHandle DWORD ?

    ThreadID DWORD ?
    ThreadParam DWORD ?
    msg MSG <>

.data
    szInfo db "Info",0
    szOnline db "Online",0
    szOffline db "Offline",0
    szFehler db "Es ist ein Fehler aufgetreten!",0
    szConnected db "Sie sind gerade Online! Später erneut testen?",0
    szNotConnected db "Sie sind gerade Offline. Später erneut testen?",0
    szTest db "TestVerbindung",0
    szAdresse db "http://www.elkware.com",0
    Status db Offline

.code
start:
    invoke SetTimer, NULL, NULL, 15000, addr TimerProc

;############################################################

TimerProc proc
    invoke CreateThread, NULL, 0, addr CheckConnection, addr ThreadParam, 0, addr ThreadID
    mov ThreadHandle, eax

    invoke WaitForSingleObject, ThreadHandle, 3000
    invoke CloseHandle, ThreadHandle

    cmp Status, Online
    je msg_online
    cmp Status, Offline
    je msg_offline

    invoke MessageBox, 0, offset szFehler, offset szInfo, MB_OK+MB_ICONERROR
    jmp beenden

msg_online:
    invoke MessageBox, 0, offset szConnected, offset szOnline, MB_YESNO+MB_ICONASTERISK
    cmp eax, IDNO
    je beenden
    jmp msgLoop

msg_offline:
    invoke MessageBox, 0, offset szNotConnected, offset szOffline, MB_YESNO+MB_ICONASTERISK
    cmp eax, IDYES
    je msgLoop

beenden:
    invoke ExitProcess, 0

msgLoop:

    StartLoop:
      invoke GetMessage,ADDR msg,NULL,0,0
      cmp eax, 0
      je ExitLoop
      invoke DispatchMessage,  ADDR msg
      jmp StartLoop
    ExitLoop:

TimerProc endp

;########################################################

CheckConnection proc
    invoke InternetGetConnectedState, addr Flags, 0

    cmp eax, FALSE
    je no_config

    invoke InternetOpen,addr szTest, INTERNET_OPEN_TYPE_DIRECT, NULL, NULL, 0
    mov inetHandle ,eax

    invoke InternetOpenUrl, inetHandle, addr szAdresse, NULL, 0, INTERNET_FLAG_RELOAD, 0
    mov urlHandle, eax

    cmp urlHandle, NULL
    je offline

    invoke InternetCloseHandle, urlHandle
    invoke InternetCloseHandle, inetHandle

    mov Status, Online

    jmp ende

offline:
    mov Status, Offline
    jmp ende

no_config:
    mov Status, Error
ende:
    ret
CheckConnection endp

END start

Die Ausgabe ist lautet dann:
Code: Alles auswählen
 Assembling: C:\asm\tests\timer.asm
 Volume in Laufwerk C: hat keine Bezeichnung.
 Volumeseriennummer: D453-C521

 Verzeichnis von C:\asm\tests

28.12.2006  00:58             2.799 timer.asm
               1 Datei(en)          2.799 Bytes
               0 Verzeichnis(se), 137.762.418.688 Bytes frei

mfg
Dr.ChAoS
Newbie
 
Beiträge: 5
Registriert: Freitag 29. September 2006, 13:59

Beitragvon Dr.ChAoS » Donnerstag 28. Dezember 2006, 15:27

Jetzt klappt alles, die .obj Datei wurde in den masm32 Ordner erstellt und nicht beim Quelltext. Aber jetzt kann Ich endlich Assembler lernen.
Danke für die Hilfe.
mfg
Dr.ChAoS
Newbie
 
Beiträge: 5
Registriert: Freitag 29. September 2006, 13:59


Zurück zu Assembler

 


  • { RELATED_TOPICS }
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron