Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Anfänger
    Registriert seit
    15.05.2010
    Beiträge
    10

    Standard Problem mit ersten Assembler Prog. Linken usw. geht nicht.

    Guten Tag.


    Ich habe angefangen mit Assembler, aber so ganz will es nicht funktionieren.
    Ich verwende MASM + Win7.

    Aus dem Buch "Assembler Maschinnahes programmieren von Anfang an" habe Ich folgenden Quelltext abgetippt:

    PHP-Code:
    DATEN SEGMENT
    MELDUNG db 
    "Assembler ist garnicht so schwer"
            
    db "$"

    DATEN ENDS
    CODE SEGMENT

        ASSUME CS
    :CODE,DS:DATEN

    Anfang
    mov ax,DATEN
            mov ds
    ,ax

            mov dx
    ,offset Meldung

            mov ah
    ,9

            int 21h

            mov ah
    ,4Ch

            int 21h

            


    CODE ENDS

    END Anfang 
    Das ganze habe Ich dann mit "speichern unter" als "asm1.asm" gespeichert.
    Jetzt wollte ich das gerne ausführen.
    Dazu habe Ich im MASM auf Projekt > Assemble&Link geklickt.

    Das funktioniert aber nicht, ich bekomme folgende Meldung:



    Uploaded with ImageShack.us

    Aus dem Text sehe Ich , das Irgendwas mit meinen Quelltext nicht stimmt.
    Ich finde den Fehler aber nicht, oder stimmt was mit meinem Programm nicht?

    Ich bitte darum das mir vielleicht mal Jemand unter die Arme greift damit ich Anfänger zumindest meine Umgebung korrekt zum laufen kriege und weiß, wie man ein Assembler Code in ein ausführbares Programm umwandelt.

    Im Buch wird gesagt, das es für MSDOs ist, liegt daran vielleicht das Problem? ... Im Buch wird gesagt ich könne es mit MASM Ausführen.
    Wenn es wirklich das Problem ist, könnte mir Jemand das was da oben steht in Windows umschreiben... damit ich sehen kann ob mein MASM richtig funktioniert?

    Vielen Dank.

    Compufreak
    Geändert von compufreak (15.05.2010 um 14:19 Uhr)

  2. #2
    Der `Toastflüsterer` Avatar von AlterHacker
    Registriert seit
    27.09.2008
    Beiträge
    690

    Standard

    Hey,

    Meine assembler-progs in masm32 sehen da etwas anders aus, aber jeder compiler hat da n eigenen syntax.
    Kannst dies ja mal probieren:

    Code:
    .386
    .model stdcall, flat
    
    include user32.inc
    includelib user32.lib
    
    include kernel32.inc
    includelib kernel32.lib
    
    
    include windows.inc
    
    .data
        text         db     "Es ist ein Fehler aufgetreten. ",0,0
        capt         db    "Achtung!",0,0
    .code
    main:
        xor eax, eax
        mov eax, MB_OK
        xor eax, MB_ICONERROR
        invoke MessageBox, 0, addr text, addr capt, eax
        invoke ExitProcess,0
    END main
    Ist wohl jetzt kein Prog mit interrupts sondern n win32 projekt. Dort wirst du keine ints ausführen dürfen (wenn ich das richtig in erinnerung hab)

    (WinASM ist eg ne ganz nette GUI ;-))

    Security is an illusion.
    Cheater : 8=o
    Normaluser : 8=======o
    Ich : 8================o

    BM: (4|2|0)

  3. #3
    Anfänger
    Registriert seit
    15.05.2010
    Beiträge
    10

    Standard

    Also dein Text geht, in WinASM. Danke dafür.

    Ich frage mich jetzt nur wie Ich Assembler lernen soll, wenn die Sachen in meinem Buch nicht ausführbar sind. Anscheint wird in allen Assembler Büchern erst mit Dos gelernt, dann umgestiegen.
    Hast du/Ihr euch erst Dos angeschaut, dann später in Windows Assembler gearbeitet?

  4. #4
    BackNine Wurm
    Registriert seit
    31.03.2010
    Beiträge
    317

    Standard

    Zitat Zitat von compufreak Beitrag anzeigen
    Anscheint wird in allen Assembler Büchern erst mit Dos gelernt, dann umgestiegen.
    Das liegt nicht am OS
    Der Syntax ist einfach kein MASM-Syntax.
    Ich selber lerne gerade auch Assembler und komme nur teils voran.
    Die Programme sind für Dos geschrieben und ic muss sie auf Win7 umschreiben.
    Aber das Prinzip ist gleich und sind nur kleine Änderungen.
    Außerdem lernt man dabei etwas

    //Edit:
    Sry ist ein Blödsinn (ich mach nur 80x86 durch und kenn daher nur die Register)
    Geändert von Atropos (15.05.2010 um 15:04 Uhr)

  5. #5
    Anfänger
    Registriert seit
    15.05.2010
    Beiträge
    10

    Standard

    Zitat Zitat von just_a_new_compilation Beitrag anzeigen
    Das liegt nicht am OS
    Der Syntax ist einfach kein MASM-Syntax.
    Ich selber lerne gerade auch Assembler und komme nur teils voran.
    Die Programme sind für Dos geschrieben und ic muss sie auf Win7 umschreiben.
    Aber das Prinzip ist gleich und sind nur kleine Änderungen.
    Außerdem lernt man dabei etwas
    Klingt logisch. Ich weiss nur nicht wie Ich das machen soll.
    Was für Referenzen kann ich dafür verwenden, wenn nicht das Buch mit dem Ich lerne?

  6. #6
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    @just_a_new_compilation
    doch, ist MASM . Nur nutzt heutzutage kein Mensch diese Syntax oder programmiert tatsächlich irgendwas für die DOSe

    @compufreak
    Im Buch sollten die aber auch noch sagen, dass damit noch MASM aus den Urzeiten gemeint ist .16-bit DOS Programmierung dürfte schon seit 10 Jahren so gut wie ausgestorben sein - dementsprechend brauchst du die alte MASM Version (Assembler und Linker)

    Hier gibt es die alte ML Version:
    http://download.microsoft.com/downlo...EN-US/vcpp.exe
    (ist ein VisualC++ "updatepacket" . Die Exe kannst du auch mit WinZip/WinRAR öffnen. Von den ganzen Dateien brauchst du nur die "ML.exe")
    http://download.microsoft.com/downlo...-US/Lnk563.exe
    (hier die Link.exe - bitte auch entpacken. Als Ergebnis sollte eine "Link.exe" verfügbar sein )
    Beide im gleichen Ordner platzieren. Die Sourcen aus dem Buch dürften sich dann entweder mit
    ML.exe source.asm
    oder
    ML.exe /AT source.asm
    kompilieren lassen

    Edit:
    @compufreak: ich hab es eben vor dem Post noch getestet
    hier die Daten:
    Code:
    X:\masm32\BIN\dos>ml komischer.asm
    Microsoft (R) Macro Assembler Version 6.15.8803
    Copyright (C) Microsoft Corp 1981-2000.  All rights reserved.
    
     Assembling: komischer.asm
    
    Microsoft (R) Segmented Executable Linker  Version 5.60.339 Dec  5 1994
    Copyright (C) Microsoft Corp 1984-1993.  All rights reserved.
    
    Object Modules [.obj]: komischer.obj
    Run File [komischer.exe]: "komischer.exe"
    List File [nul.map]: NUL
    Libraries [.lib]:
    Definitions File [nul.def]:
    LINK : warning L4021: no stack segment
    
    X:\masm32\BIN\dos>komischer.exe
    Assembler ist garnicht so schwer
    X:\masm32\BIN\dos>
    Geändert von EBFE (15.05.2010 um 15:06 Uhr)
    TrueCrypt/RAR/Zip Passwort vergessen und das Bruten dauert ewig? Oder brauchst du fein abgestimmte Wortlisten? Hilf dir selbst mit WLML - Word List Markup Language
    Gib Stoned/Mebroot/Sinowal und anderen Bootkits keine Chance: Anti Bootkit v 0.8.5

  7. Folgende Benutzer haben sich für diesen Beitrag bedankt:

    Atropos (15.05.2010)

  8. #7
    Anfänger
    Registriert seit
    15.05.2010
    Beiträge
    10

    Standard

    Der Syntax ist einfach kein MASM-Syntax.
    Das kann / will ich nicht so ganz glauben.
    Erstens ist das direkt aus dem Buch, zum anderen finde ich den Syntax auch auf Wikipedia MASM - MSDos

    Assemblersprache – Wikipedia


    Hier gibt es die alte ML Version:
    http://download.microsoft.com/downlo...EN-US/vcpp.exe
    (ist ein VisualC++ "updatepacket", davon brauchst du aber nur die ML.exe)
    http://download.microsoft.com/downlo...-US/Lnk563.exe
    (hier die Link.exe)
    Beide im gleichen Ordner platzieren. Die Sourcen aus dem Buch dürften sich dann entweder mit
    ML.exe source.asm
    oder
    ML.exe /AT source.asm
    kompilieren lassen __________________
    Danke das werde ich nun ausprobieren.

  9. #8
    Der `Toastflüsterer` Avatar von AlterHacker
    Registriert seit
    27.09.2008
    Beiträge
    690

    Standard

    "Win32 Assembler Coding for Crackers" vom ARTeam ist ganz gut ^^.
    Damit bin ich quasi dann in die direkte-programmierung eingestiegen.
    Vorher nur mit OllyDBG im laufenden programm sachen 'rumgeproggt'

    Security is an illusion.
    Cheater : 8=o
    Normaluser : 8=======o
    Ich : 8================o

    BM: (4|2|0)

  10. #9
    Anfänger
    Registriert seit
    15.05.2010
    Beiträge
    10

    Standard

    Zitat Zitat von AlterHacker Beitrag anzeigen
    "Win32 Assembler Coding for Crackers" vom ARTeam ist ganz gut ^^.
    Damit bin ich quasi dann in die direkte-programmierung eingestiegen.
    Vorher nur mit OllyDBG im laufenden programm sachen 'rumgeproggt'
    WoW!
    Genausowas habe Ich gesucht, vielen lieben Dank !!


    Zitat Zitat von EBFE Beitrag anzeigen
    @just_a_new_compilation
    doch, ist MASM . Nur nutzt heutzutage kein Mensch diese Syntax oder Programmiert tatsächlich irgendwas für die DOSe
    Leider kann ich die Programme die du vorgeschlagen hast nicht auf meinen 64 bit System zum laufen bringen.
    Naja, was ich nicht verstehe. Wenn MASM Niemand mehr verwendet, warum wird das in allen aktuellen Assembler Büchern gelernt.

    Nostalgie Wert oder wie.... ? ....

  11. #10
    OpCodeKiddy Avatar von EBFE
    Registriert seit
    30.03.2009
    Beiträge
    442

    Standard

    Zitat Zitat von compufreak Beitrag anzeigen
    Leider kann ich die Programme die du vorgeschlagen hast nicht auf meinen 64 bit System zum laufen bringen.
    Ok, 64-Bit Systeme haben keinen eingebauten DOS Emulator mehr. Hättest deine assemblierten Programm eher nicht ausführen können . Wenn du aber unbedingst mit DOS experimentieren möchtest:
    DOSBox – Wikipedia
    darin kannst du den alten Assembler, Linker und die "Ergebnisse" laufen lassen.

    Naja, was ich nicht verstehe. Wenn MASM Niemand mehr verwendet, warum wird das in allen aktuellen Assembler Büchern gelernt.

    Nostalgie Wert oder wie.... ? ....
    Nene, nicht "MASM" an sich, sondern die Ur-alten Versionen
    Was ist für dich "aktuell" ?
    Großteil der Bücher wird nur in einer neuen Auflage gedruckt, mit minimaler Überarbeitung .

    Schaut man bei den "aktuellen" Büchern aber ganz vorne in die kleingeschriebenen Copyrights und Erscheinungsdaten, sieht man meistens 1990-1994 (zumindest fast alle Bücher, die ich so im Handel gesehen habe ). Wären die Bücher aktuell, hätten die Autoren diese "Anfänger" - Probleme längst bemerkt und beschrieben - denn du bist bei weitem nicht der erste.
    Das ist quasi schon seit 2002/2003 die "klassische" Anfängerfrage zu MASM.
    Zudem wird auch noch häufig TASM benutzt (zumindest sehe ich das immer noch ab und zu in Asm-Büchern, die es zu kaufen gibt)
    Und TASM hat schon seit 10+ Jahren keine offizielle Unterstützung
    Zitat Zitat von Wikipedia
    Die letzte veröffentlichte Version 5 unterstützte auch Windows 95 und NT und Prozessoren bis zum Pentium
    PS: wie man bemerkt, hat MASM auch keine wirkliche Unterstützung seitens MS. Es wird halt auch nicht mehr "as is" vertrieben - sondern nur zusammen mit VisualC++ und anderen MS Compilern. D.h für den Leser ist es relativ schwer, an die benötigten Sachen zu kommen. "Aktuell" wären imho eher NASM oder FASM - beide sind schon länger ausgereift, gut verwendbar und zudem problemlos zu beziehen
    Geändert von EBFE (15.05.2010 um 15:24 Uhr)
    TrueCrypt/RAR/Zip Passwort vergessen und das Bruten dauert ewig? Oder brauchst du fein abgestimmte Wortlisten? Hilf dir selbst mit WLML - Word List Markup Language
    Gib Stoned/Mebroot/Sinowal und anderen Bootkits keine Chance: Anti Bootkit v 0.8.5

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •