Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Assembler » MASM 32- ich übersetze mit ml

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
20.02.2007, 13:07 Uhr
z-boson



Hallo.
Ich bin bei den ersten Gehversuchen mit dem MASM32 von codingcrew.de auf folgende Dubiositäten gestossen:

a)
Ich kann den Compiler nur mittels ml so starten, dass der code auch ohne Fehler übersetzt wird. Ist das gut so,oder ist dieser ml nur ne "nette" Variante zu dem eigentlichen Compiler, den ich zur Hölle nochmal als eigenen nicht finde. ( oder ist ml DER EIGENTLICHE Compiler)?


b)
Die Linkerversion vom MASM32 ist für die 32bit-programmierung gedacht, daher musste ich mir den LINK563 runterladen und entpacken(lassen).
Getan.
Sobald ich sowohl die LNK563 als auch die darauf entpackenden Dateien auf meinem USB Stick oder auf meiner Festplatte habe, kann ich sie nicht bearbeiten, nicht umbenennen, nicht löschen-> als ob sie im Beteib sind, aber ausführen! War bisher nur auf meiner W2K-Maschine so. Hat da jemand ähnliches erlebt und kann die Fehlerquelle eingrenzen? Weil, benutzt werden sie DEFINITIV nur, wenn ich es in die Cmd eintippe.

c)
Die Linker-Version irritiert mich: Ich habe also den Linker für 16 bit runtergeladen, weil der für 32Bit nicht mit dem Code aus Reiner Backers Buch klarkam.
Wo bitte ist denn hier abwärtskompatibilität?
Ausserdem ist mein Chip ein 64-Bitter, und nur aus Trotz würde ich auch sehr gerne die übrigen 48 Bit ansprechen, 32 würden auch erstmal reichen.

Danke erstmal!
--
...we have to create righteous thoughts for righteous words and righteous actions.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
21.02.2007, 08:16 Uhr
Kest
saint


Hi!

Ich zwar nicht viel zu sagen, aber:

zu a:
>ml.exe< ist bei mir >Microsoft (R) Macro Assembler Version 6.14.8444<, also der eigentliche Compiler.

zu b:
so 'n Problem habe ich noch nie gehabt.

zu c:

Zitat:
Ich habe also den Linker für 16 bit runtergeladen, weil der für 32Bit nicht mit dem Code aus Reiner Backers Buch klarkam.


(ich kann, ehrlich gesagt, den Satz nicht verstehen)
Soweit ich weiß, lässt sich der 32-bit Code nicht mit dem 16-bit Compiler übersetzen (wäre ja auch irgendwie unlogisch).
--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
21.02.2007, 10:08 Uhr
~z-boson
Gast


Ja, Macro Assembler. Genau so heist der.
Aber ich dachte, weil da das Wort Macro drin vorkommt, wäre es ne Art Vereinfachung eines "richtigen Assemblers".
NUn weiss ich es.
Danke.
Ja, warte mal. Von wegen, man kann 32 bit code nicht mit einem 16 Bit assembler compilieren.
Der compiler ist immernoch der ml, ob bei MASM nun die 32-er Programme geschrieben werde, oder die 16er.
Der Linker ( der, der bei mir einfach immer nicht zu löschen ist) muss verschieden sein.
Aber dennoch danke erstmal.

Ach, weiss jemand hier, wie ich ne lockere bat erstelle, die das hier tut.
- aufruf durch asm16.bat asmfile.asm ( weiss ich )
- nimmt argument 1 und wendet ml /c an ( weiss ich)
- nimmt argument, ersetzt die asm.Endung durch .obj und wendet link an ( weiss ich nicht)
- erstellt auch die .map aus dem ersten argument und die .exe ( weiss nicht ) .
- verschiebt die Dateien ( aus dem masm32/bin in den richtigen Pfad) ... ( weiss ich).
-->
Also, klar und deutlich: mir geht es darum, dass ich %1 derart bearbeiten kann, dass ich
beim eigentlichen Aufruf.......
moment mal.
es reicht, wenn ich meinen Dateinamen Ohne Endung als Argument angebe, und in der batch nur jeweils conkateniere....
Ha, ich werd mal sehen, wie das geht.
Bia bald
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
22.02.2007, 09:40 Uhr
Kest
saint


Also irgenwann mal hab ich so was benutzt:


Code:
@echo off
if '%1'=='' goto err_no_arg
if not exist %1 goto err_file_not_find
set file=%1
set compiler=%systemdrive%\masm32\bin\ml.exe /c /coff
set linker=%systemdrive%\masm32\bin\link.exe /map /subsystem:windows
%compiler% %file%
if errorlevel 1 goto err_unknown
set file=%file:~0,-3%obj
%linker% %file%
if errorlevel 1 goto err_unknown
echo B I T T E
goto :eof
:err_no_arg
echo kein Argument
goto :eof
:err_file_not_find
echo %1 nicht gefunden
goto :eof
:err_unknown
echo Fehler aufgetreten: %errorlevel%


--
Wenn man einen Hufschlag hört, sollte man >Pferd< denken und nicht >Zebra<.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Assembler ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: