Problem mit RadASM



  • Hey Leute, ich habe nun auf meinem Pc mit Windows 7, RadAMS drauf gezogen und das Assembly language pack drauf geahauen.
    Wenn ich jetzt jedoch im RadAMS dann meine Datei bzw Projekt builden will, kommt folgender Fehler:

    http://img251.imageshack.us/img251/4382/radasm.png

    Hoffe ihr könnt mir helfen;-)

    EDIT:
    Hab jetzt nomal alles gelöscht und wieder drauf gemacht, jedoch nur beim programming pack den TASM teil.

    Jetzt bekomme ich diesen Fehler:

    http://img52.imageshack.us/img52/4382/radasm.png

    Ich hätte au noch ein paar allgemeine Fragen:
    Also ich würde gern mit Assembler anfangen, hab das heut mittag n bissel überstürzt, hab mir einfach mal nen TASM Beispiel rausgesucht.
    Mit welcher Assemblersprache sollte ich denn anfangen? TASM NASM... etc?
    Habt ihr auch noch eventuell gute Tuts oder Bücher als Empfehlung?

    Vielen Dank schonmal



  • RadAsm ist nur die IDE - Tasm musst du dir selbst besorgen.
    Aus nicht ersichtlichen Gründen würde ich dir zu masm raten 😃 . Installier dir das masm32-package und stell RadAsm entsprechend um. Beispiel und Hilfsdateien findest du dann im masm32-Verzeichniss.
    BTW: aus dem ersten Bild geht dein Name hervor



  • Mit RadASM kenne ich mich leider nicht aus.
    Hast du ueberhaupt TASM im angegebenen Pfad installiert (TASM ist keine Freeware) und funktionieren die Programme, wenn du sie in der Konsole aufrufst? Bist du sicher, dass der RADAsm-Benutzer Zugriffs- und Schreibrechte im jeweils aktuellen Verzeichnis (wahrscheinlich das Programmverzeichnis von RADAsm) hat?
    Falls ja, waere meine Empfehlung, die Kommandos einfach direkt in einer Konsole einzugeben oder in eine Batch-Datei zu packen.

    Uebrigens stimmt allgemein irgendwas mit deinen build-Einstellungen nicht, wenn RADAsm fuer diesen Quellcode fuer ein DOS-Programm versucht, einen Windows Ressourcen-Compiler (brcc) aufzurufen. Solltest du nochmal checken.
    Aber wie gesagt: Schneller kommst du IMHO voran, wenn du die in deinem Tutorial sicher zum Erstellen genannten Kommandos in einer Batch speicherst und RADAsm nur als besseren Editor benutzt.

    Welchen Assembler, sogar welche Plattform du fuer deinen Einstieg in Assembler benutzt, ist IMHO unwichtig, solange du ein gutes Buch oder Tutorial hast und eine praktische Moeglichkeit, deine Codes zu testen und zu debuggen.
    Wenn du die Grundlagen drauf hast, sollte es dir nicht schwer fallen, den Assembler auf einer Plattform zu wechseln, und es sollte dir auch in absehbarer Zeit moeglich sein, dich auf anderen Plattformen einzuarbeiten.

    Viele Einsteigertutorials setzen auf den TASM. Wenn du mit deinem Tutorial so weit zufrieden bist, bleib einfach dabei. Fuer DOS-Programme musst du dir auf Win7 dann allerdings noch eine VM mit DOS, DOS-Box o.Ae. zum Testen installieren. DOS-Programme laufen auf Win7 sonst AFAIK nicht mehr.

    Empfehlungen fuer Buecher und Tutorials findest du in den FAQ und ein weiteres fuer Einsteiger hier.

    Edit:
    Falls du TASM nicht hast: NASM hat AFAIK einen TASM-Kompatibilitaetsmodus. In wie weit der mit dem Borland-TASM kompatibel ist, weiss ich nicht.



  • Hey Leute, ok erst mal Danke für die Antworten.
    Bin jetzt schonmal um einiges schlauer;-)

    masm schrieb:

    RadAsm ist nur die IDE - Tasm musst du dir selbst besorgen.
    Aus nicht ersichtlichen Gründen würde ich dir zu masm raten 😃 . Installier dir das masm32-package und stell RadAsm entsprechend um. Beispiel und Hilfsdateien findest du dann im masm32-Verzeichniss.
    BTW: aus dem ersten Bild geht dein Name hervor

    Ja, aber soweit ich sehen kann, ist es doch nur der vorname, oder?



  • Also, ich habe mich jetzt für NASM entschieden und lese mir bei Wiki-Books was durch.
    So mein Problem ist, dass ich das erstelle Programm nicht starten kann.
    Ich assembiliere es mit folgender Aufforderung:

    nasm first.asm -f bin -o first.com

    Jedoch kann ich auf meinem Win7 64 Bit diese Datei dann nicht ausführen. Er sagt ich bräuche eine 64 Bit version des Programmes.

    Mit dem Begriff nasm -hf hab ich herausgefunden ich soll den Wert -win64 nutzen.

    Jedoch weiß ich nun nicht was ich genau machen soll,

    nasm first.asm -win64 funktioniert nicht.

    Hoffe ihr könnt mir helfen und sagen was ich machen muss damit dass Programm läuft;-)

    Danke schonmal=)



  • Dein oben genanntes Kommando erzeugt ein 16Bit .com-DOS-Programm. Wie ich bereits schrieb, brauchst du in Win7 eine VM mit DOS oder einen Emulator (zB. DOSBox), um DOS-Programme auszufuehren.

    Du solltest auch bedenken, dass Assembler quasi der Inbegriff von Plattformabhaengigkeit ist. Du kannst also nicht einfach hergehen und Quellcodes fuer ein 16Bit-DOS-Programm als 64Bit-Windows-Programm erstellen. Falls sowas dann durch Zufall ueberhaupt ohne Fehlermeldungen durch Assembler und Linker geht, kannst du sicher sein, dass das Ergebnis bestenfalls einfach crashen wird.



  • fr33g schrieb:

    Hoffe ihr könnt mir helfen und sagen was ich machen muss damit dass Programm läuft;-)

    Nun, es ist so, dass nasm einfach nur "netwide" ist 😉
    Wenn Du keine Probleme haben möchtest, steige auf GNU/Linux um. Oder installiere GNU/Linux parallel zu Windows. Wie es Dir am besten passt.
    Unter GNU/Linux gibt es eine Reihe von aufeinander abgestimmten Tools, die alle funktionieren.



  • abc.w:
    Moechtest du vielleicht der Kuerze wegen nicht einfach auf "Mit Linux waer' das nicht passiert." oder besser gleich nur "Nimm Linux!" umsteigen? 😉

    Ernsthaft:
    Mir liegt es zwar fern, dich zu bekritteln, aber dieses regelmaessige Abgespule deines ewigen Mantras nervt IMHO langsam nur noch. Such wenigstens ein paar begleitende gute und einsteigergeeignete Tutorials oder Buecher dazu raus, wenn du es schon nicht lassen kannst. Trollen kannst du ansonsten wenn ueberhaupt in NADRW.



  • Also ich habe Windows 7 und wollte auch dabei bleiben und nicht irgendwie umsteigen....oder parallel linux...

    Muss ja auch iwie auf Win 7 gehen.
    Also ja aus dem Buch sind es natürlich 16 Bit Programme.

    So ich habe was von der DOSBox gehört, habe mir die auch drauf gemacht, aber irgendwie check ich das ganze Ding net so.

    Vll kann mir mal kurz einer erklären wie ich das machen soll, wenn die .com datei zum Beispiel in C:\Program Files\NASM\first.com liegt.

    Danke schön schonmal für eure Hilfe

    EDIT:
    Habs rausbekommen, geht ja ganz einfach über Drag and Drop:D:D

    Trotzdem vielen Dank



  • Nobuo T schrieb:

    Ernsthaft:
    Mir liegt es zwar fern, dich zu bekritteln, aber dieses regelmaessige Abgespule deines ewigen Mantras nervt IMHO langsam nur noch. Such wenigstens ein paar begleitende gute und einsteigergeeignete Tutorials oder Buecher dazu raus, wenn du es schon nicht lassen kannst. Trollen kannst du ansonsten wenn ueberhaupt in NADRW.

    Nun, ja... Vielleicht wissen die Leute nicht, dass es eine gute Alternative gibt und müssen periodisch daran erinnert werden 😉 Ich bin ja z.Z. selbst öfter unter Windows, nicht dass jemand denkt, ich wäre nur ein Linux-Freak und nix ausser Linux - nein, so bin ich nicht. Es ist nun mal eine Tatsache, dass man unter GNU/Linux in Assembler programmieren/lernen kann, ohne auf irgendwelche Bibliotheken, IDEs o.ä. angewiesen zu sein. Unter Windows aber, mit jeder moderneren Windows-Version gibt es immer mehr Hürden (verglichen mit Linux).
    Bezüglich Tutorials bin ich der Meinung, dass alle irgendwie wie Arzneibeipackzettel sind. Man liest sie durch, macht irgendwas damit, aber man wird nie wissen, warum oder wie man die Arznei aus welchen Bestandteilen und warum zusammengemischt hat. Bücher kenne ich zum Thema keine 😞

    Ach je, ich bin ein Troll 😞 ... Entschuldigung.



  • Um nochmal auf das Thema zurückzukommen:D:D
    Wenn ich mir jetzt Virtual PC auf meinem Pc mache und dann Linux drauf schmeiße.
    Dann könnt ich quasi ohne größere Probleme mit NASM Assembler programme erstellen,
    bzw es leichter erlernen?

    Danke schonmal

    Gruß freeG



  • fr33g schrieb:

    Wenn ich mir jetzt Virtual PC auf meinem Pc mache und dann Linux drauf schmeiße.
    Dann könnt ich quasi ohne größere Probleme mit NASM Assembler programme erstellen, bzw es leichter erlernen?

    Das kommt drauf an... Das mit Virtual PC und Linux könnte funktionieren. Mit NASM Programme erstellen - weiss nicht. Unter Linux gibt es einen "eigenen" Assembler. Dazu auch einen "eigenen" Linker. Damit wird es auf jeden Fall klappen. Es gibt dazu im Internet eine pdf-Datei: Programming from the Ground Up by Jonathan Barlett.



  • Ok, danke auf jeden Fall schon mal,
    aber ich mach jetzt erst mal mit NASM auf Windows weiter mit Hilfe von der DOSBox=)

    Vll probier ichs mal mit Linux



  • fr33g schrieb:

    ... weiter mit Hilfe von der DOSBox.

    Meinst Du 16-Bit DOS? 😮 👎



  • Ehm also, ich benutze da die Register wie EAX sprich müsst ja 32-Bit sein.
    Hab davor mit nem tut 16 bit und dos box gemacht.
    jetzt benutz ich aber folgendes buch bzw tutorial
    http://www.drpaulcarter.com/pcasm

    Aber jetzt hab ich wieder das Problem dass ichs nicht zum laufen bekomme, weder DOSBox noch mit meinem Win 7, was ja klar ist.

    Weiß au net wie ich des lösen soll, ein 64 bit tut wäre wohl das beste:D

    mhhh=(

    gruß freeG



  • nasm ist IMO auch nicht die erste Wahl für Windows ... masm/jwasm, fasm oder goasm sind hier empfehlenswerter. 32Bit Programme laufen im Übrigen ohne Beschränkung auf Win64 (Ausnahmen bestätigen natürlich die Regel).



  • fr33g schrieb:

    jetzt benutz ich aber folgendes buch bzw tutorial
    http://www.drpaulcarter.com/pcasm

    Ich habe die deutsche Version der pdf Datei kurz überflogen. Kann das sein, dass dort die Adressierungsarten der CPU und ihre Entsprechungen im nasm Assembler überhaupt nicht behandelt werden 😕 Die Intel CPUs können ein Dutzend Adressierungsarten und das muss man doch behandeln. Das ist schwach. Andererseits könnte ich so ein Tutorial auch nicht besser machen.
    Nimm am Besten Linux und arbeite das Buch "Programming from the Ground Up" durch...



  • Habe es auch mal ueberflogen und IMHO wird dort schon irgendwie das Wesentliche zu gegebener Zeit behandelt. Was auf jeden Fall fehlt, sind mehr Asm-spezifische Zusammenfassungen (auch ueber die Adressierungsarten/-modi) und eine Uebersicht. Der Autor spezialisiert sich einfach sehr auf die praktische Verwendung von 32Bit-Asm mit C (djgpp), was dem Ganzen eine recht eigentuemliche, "spezialisierte" Struktur gibt.
    Durch die weitgehend systemunabhaengigen 32Bit Asm-Codes, zusammen mit externen C-Bibliotheken fuer den systemspezifischen Kram, sollte man andererseits recht schnell zu praktischen Ergebnissen kommen und wenn man durch diesen Text durch ist, auch einen groben Ueberblick ueber viele wichtige Themen haben.
    Alles in allem ist dieses Skript ganz sicher keine Asm-Enzyklopaedie, zudem auch fuer sich genommen unzureichend, aber fuer den Anfang vielleicht trotzdem nicht schlecht.

    fr33g:
    Wo liegt denn dein Problem beim Erstellen/Starten?
    Hast du dir die Tools besorgt, mit denen der Autor arbeitet? Ohne geht's naemlich nicht.



  • Ehm ja ich benutze den NASM Assembler und den Gcc Compiler und Linker.
    Ja ich bekomme ne Exe, aber wenn ich sie starte meldet er, das Programm musste beendet werden...

    Stimmt dass denn das 32-Bit Programme auf Win 64 laufen?
    Das wär ja natürlich schonmal sehr gut=)

    Würdet ihr mir dann doch von NASM abraten und lieber FASM oder MASM epmfehlen?

    Schonmal vielen Dank für die Antworten und eure Mühe

    Gruß freeG



  • Wie hast du das Programm erstellt und was ist rausgekommen (lade die exe mal irgendwo hoch oder schicke sie mir per mail)?

    32Bit-Windows-Programme laufen auch in der 64Bit-Version von Win7 prinzipiell ohne Probleme.
    Dh. entweder ist bei dir aus irgendwelchen Gruenden ein DOS-Programm erstellt worden, oder es ist etwas anderes gruendlich schief gelaufen.

    Mit einem hat abc.w wohl recht: Mit Linux haettest du zumindest dieses Problem mit Microsofts DOS/win32/win64-exe-Verwirrung und den tausend halb-standardisierten Object-Formaten in der Form nicht. 😃

    NASM ist an sich nicht schlecht, hat aber zB. ein paar Probleme mit seinen Macros (obwohl sich da in letzter Zeit auch einiges getan haben sollte) und ist zumindest was bei der Windows-Programmierung das Einbinden von Ressourcen und externen libs betrifft, etwas unpraktisch, bzw. unflexibel. Zudem hat dieser Assembler, wie abc.w schon andeutete, das Problem, dass er ziemlich einsam und unabhaengig von irgendwelchen anderen Tools wie Linkern oder Compilern entwickelt wird und deshalb keine wirklich passende Toolchain mitbringt.
    Bis vielleicht auf den letzten Punkt sind das aber alles Themen, die dich vorerst nicht zu interessieren brauchen, solange du nicht produktiv komplexere Windows-Programme mit Fenstern erstellen willst.

    Von MASM halte ich persoenlich gar nichts. Statt sich mit Microsofts halbgarer Macro-Hoelle einzulassen, kann man auch gleich bei einer gut durchdachten Hochsprache bleiben.

    FASM ist anscheinend ebenfalls auf dem Stand der Dinge und weitaus praktischer fuer den Einsatz zur Windows-Programmierung als NASM. So bietet er zB. uA. Moeglichkeiten direkt Ressourcen fuer Dialoge in die Quellcodes zu schreiben.
    Habe ich sonst noch nicht naeher ausprobiert.

    GoAsm habe ich noch gar nicht ausprobiert, kann ihn also nicht vergleichen. Da die GoTools allgemein aber ziemlich robust sind, wird GoAsm vermutlich zumindest nicht schlechter abschneiden.


Log in to reply