Anfänger : MASM & Visual C++



  • Danke für die Informationen, konnte das Referat zum Glück noch verschieben.
    Werd das heute gleich testen, ich hoffe es funktioniert 🙂 .



  • Entschuldigt mir die Doppelpost, aber irgendwie funktioniert zB der Linker vom MASM32 Paket nicht. Es erscheint kurz ein Fenster (sieht wie die Eingabeaufforderug aus) und dan schließt es sich sofort wieder.
    Sprich es ist unmöglich etwas zu linken 😞 .

    Kann es daran liegen das ich Win7 Professional x64 nutze ?
    Wenn ja kennt ihr einen passenden Assembler& Linker?
    Ist es mit einem 64Bit Betriebssystem überhaupt möglich ein 16Bit Programm zu nutzen, meistens findet man ja genau für diesen Bereich Beispiele.

    Mfg Hilfsbedürftiger_Schüler



  • Du schliesst also aus den Tatsachen, dass dein Linker ein normales Konsolenprogramm und die Standardeinstellung in Windows seit Win2K ist, diese zu schliessen, sobald beendet, dass der Linker nicht funktioniert? 😕
    Mach mal die Eingabeaufforderung auf und rufe den Linker dort mit dem Parameter "/?" auf, um eine Funktionsuebersicht zu erhalten.

    16Bit-Programme laufen nicht mehr nativ auf 64Bit-Systemen. Aber auch Windows 7 bringt AFAIK eine VM mit, mit der die Programme ausgefuehrt werden koennen.



  • So ich glaub ich habs zum laufen bekommen, lesen sollte man können *hust* .
    Ich habe das Beispiel von "FrEEzE2046" jetzt harrgenau so in den Editor von MASM hineinkopiert, habe dort dann auf "Projekt->Assemble ASM File" geklickt und bekam diese Fehlermeldung:

    Assembling: C:\masm32\helloworld.asm
    C:\masm32\helloworld.asm(1) : error A2088: END directive required at end of file
     Datentr„ger in Laufwerk C: ist Windows
     Volumeseriennummer: 4676-499D
    
     Verzeichnis von C:\masm32
    
    17.01.2010  16:26                 0 helloworld.asm
                   1 Datei(en),              0 Bytes
                   0 Verzeichnis(se), 49.510.793.216 Bytes frei
    

    Ich hoffe das ihr mir helfen könnt^^.

    Mfg Hilfsbedürftiger_Schüler



  • 17.01.2010 16:26 0 helloworld.asm
    1 Datei(en), 0 Bytes
    0 Verzeichnis(se), 49.510.793.216 Bytes frei

    Die Datei scheint ja leer zu sein (0 Bytes). Ich kenne diesen Editor von MASM nicht, weil er auf meinem Rechner leider gleich beim Starten abstürzt... weiss nicht einmal, wie er aussieht.



  • Mir ging's beim Empfehlen des MASM32-Package auch eher um die Include-Files, die für dich ziemlich viel Arbeit erleichtern.

    Kopier den Code mal in einen Editor deiner Wahl und kompilier / linke wie von mir beschrieben.

    Du versuchst offensichtlich die falsche Datei zu kompilieren. Hast du vor dem kompilieren die Datei gespeichert?



  • der VC++ funktioniert nicht richtig wenn man sich nicht als Admin anmeldet,
    vielleicht gilt das für die Masm32Package auch?

    Unter 64Bit würde ich mit dem gcc und Linux arbeiten. Wird recht aktuell gehalten, ...für ein Referat über 64bitAssembler und opensource... 😉

    Für 16bit Assembler und ein Referat darüber ist debug ideal, weil die meisten Mitschüler debug sicher auch aufrufen können/Codebeispiele zuhause ausprobieren können.
    Eine brauchbare Einführung in das Debug Programm ist von Günter Born:
    http://freenet-homepage.de/gborn/Library/EinfASM.pdf
    ->Kapitel 7
    oder für den Anfang das Tut von Prof.Dr.H.Weber:
    http://swlx01.hs-esslingen.de/vorl/rt2/debug.pdf

    Praktisches Anschauungsbeispiel ist z.B. eine einfache Division mit Restanzeige oder die Einfachheit eines Fibonacci-Algorithmus in Assembler

    darüberhinaus:
    Zum VC++ gibt es eine sehr gute Hilfeseite:
    http://homepages.fh-giessen.de/~hg13025/aufgaben.htm

    Das größte Problem mit Assembler heute ist, dass du immer gute Hardwareinfos zu den Schnittstellen brauchst, und dass diese Hochzeit für Assembler eigentlich in den 80ern war. So ist Assembler eine Programmierprache der 80er Jahre und der einheitlichen Schnittstellencomputer wie c64 und co.
    Zu den wichtigsten Infos für Asm Programmier gehört die Interruptliste von
    Ralf Brown:
    http://www.cs.cmu.edu/~ralf/files.html
    (auch ein Kind der 80er Jahre)

    Aber schwieriger als eine Hochsprache ist Assembler nicht, nur eben wenig standardisiert/dokumentiert.
    Beispiel: Angenommen, du wolltest einen Additiven Synthesizer in Assembler
    schreiben und für die Obertonverarbeitung die leistungsfähige Grafikkarte
    mißbrauchen.
    Bis du dich durch die Dokumentationen und Apis, die du brauchst, durchgearbeitet hast, vergehen vielleicht Jahre, und manches bleibt undokumentiert...Herrschaftswissen...
    Da nimmt man besser C++ oder Java, hierfür gibt es heute Dokus und Apis und Bücher mit Spezialthemen und tutorials an jeder
    Straßenecke.
    😉

    P.S.:
    bei z.B.: http://www.phatcode.net/downloads.php?id=280
    kann man sich das Tasm-Packet herunterladen. Das Tasm Packet bringt 32bit und 16bit Assembler und Debugger mit und einige sehr gute Code-Beispiele.
    Für Linux und Windows zusammen, ist Nasm ganz interessant.
    Eine schöne Einführungsseite für Assembler mit Nasm bietet Dr.Erhard Henkes:
    http://www.henkessoft.de/Assembler/Assembler.htm



  • Also, dass es im Visual Studio 2008 keine IDE für Assembler geben soll, ist ja wohl ein Gerücht! Erzählt dem armen Assembler-Anfänger doch nicht so einen Quatsch. Vorrausgesetzt es handelt sich bei der Visual Studio Version mindestens um eine Professional oder höher (also nicht Express) kann man in der IDE Assemblerprojekte bearbeiten und sogar kompilieren und linken.

    Für alle, die das nicht glauben, hier ein kleiner Test, der das ganze beweisen soll:
    - Visual Studio starten
    - neues Projekt anlegen (z.B. C++ Konsolenanwendung, leeres Projekt)
    - fügt eine "Quelltext" - Datei hinzu (z.B. 'test.asm')
    - im Projektmappenexplorer Datei mit rechter Maustaste anklicken und "Eigenschaften" auswählen
    - Unter "Konfigurationseigenschaften/Allgemein" findet man rechts den Eintrag "Tool"
    - "Tool" anklicken, das daraufhin zur ComboBox wird und dort kann man unter anderem den Eintrag "Microsoft Macro Assembler" auswählen.

    Man kann sogar Haltepunkte setzen und den integrierten Debugger zur schrittweisen Ausführung benutzen.

    Happy Programming!



  • Dr. GUI schrieb:

    - "Tool" anklicken, das daraufhin zur ComboBox wird und dort kann man unter anderem den Eintrag "Microsoft Macro Assembler" auswählen.

    Ich verfüge beruflich sogar über die Team System Version und kann selbst dort bei bestem willen keinen Eintrag für den Microsoft Macro Assembler finden.
    Hast du evtl. dir eine eigene "Custom Build Rule" gebastelt? Mit dieser kann man natürlich seinem Code jedem erdenklichen Compiler zu führen.



  • Der Thread ist zwar schon etwas älter, aber ich habe ihn über Google gefunden und vielleicht hat ja noch jemand das selbe Problem.

    Deshalb hier die Lösung:

    -> Rechtsklick auf das Projekt
    -> Buildanpassungen
    -> Dort die bereits vorhandene masm.targets aktivieren
    -> Nun kann man tatsächlich unter Tool (Elementtyp in der deutschen Version) den "Microsoft Macro Assembler" auswählen

    Gruß, Iodun


Anmelden zum Antworten