Wenn ich das richtig mitbekommen habe, ist doch MASM und MASM32 ziemlich stark miteinander verwannt. Kann man mit dem MASM32 auch normale MASM Programme compileren. Mein Problem ist, das ich MASM und MASM32 nicht parallel installieren kann, da ja immer nur eins richtig funktioniert wegen der Pathvariablen.
Würde mich über Lösung freuen...
Das Phatano
MASM mit MASM32 Compilieren?
Moderatoren: crack, Krüsty, Marwin
MASM mit MASM32 Compilieren?
Phatano, nicht Pharao!
-
Nordwind64
- Newbie
- Beiträge: 5
- Registriert: Freitag 28. Oktober 2005, 17:28
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Ja, das Compilieren von 16Bit Code ist mit MASM32 selbstverständlich möglich, mit der Vorraussetzung das man die Assembler Direktiven im Programmkopf (insbesondere die .model Anweisung) ändert. darüberhinaus ist eine spezielle Option beim Linken zu wählen, Marvin hat dazu eine Batch Datei erstellt, die ihr hier im Forum findet. Ich habe diese Batch Datei auch mit dem A86 Assembler getestet und muss sagen: Funktioniert astrein 
Hier ist der Batch:
@ECHO OFF
ECHO Assembling ...
\masm32\bin\ml /c /AT %1.asm
ECHO Linking ...
link16 /TINY %1.obj, %1.com;
DIR %1.*
PAUSE
am Besten macht man sich ein spezielles Verzeichniss wo alle Tools Platz finden, dann ist das wahrscheinlich sehr bedienungsfreundlich und man hat Ordnung bzw. keine wildes Gemisch von 16 und 32 Bit Quellen.
Hier ist der Batch:
@ECHO OFF
ECHO Assembling ...
\masm32\bin\ml /c /AT %1.asm
ECHO Linking ...
link16 /TINY %1.obj, %1.com;
DIR %1.*
PAUSE
am Besten macht man sich ein spezielles Verzeichniss wo alle Tools Platz finden, dann ist das wahrscheinlich sehr bedienungsfreundlich und man hat Ordnung bzw. keine wildes Gemisch von 16 und 32 Bit Quellen.
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack
- crack
- Administrator
- Beiträge: 280
- Registriert: Dienstag 21. Dezember 2004, 15:02
- Wohnort: 53783 Eitorf
- Kontaktdaten:
Die Direktive .model=flat kann nicht benutzt werden, bei 'flat' wird´der Speicher 'logisch' addressiert (durch eine 32Bit Addresse), der direkt zugängliche Addressraum beträgt 2³² !
Statt dessen muss die Direktive .model=tiny oder .model=small benutzt werden.
Hier bei wird die physikalische (20 bit) Addresse aus einem 'direkten' Anteil und einem Offset (Wert in Segmentregistern:CS,DS,ES oder SS x 16) gebildet:
mov ds,1000
mov bx,00f0
ds: mov ax,[bx]
lädt von Addresse:
Addresse bx = 00f0
Offset +(ds*16) = 1000
______________
reale (physikalische) Addresse = 100f0
Statt dessen muss die Direktive .model=tiny oder .model=small benutzt werden.
Hier bei wird die physikalische (20 bit) Addresse aus einem 'direkten' Anteil und einem Offset (Wert in Segmentregistern:CS,DS,ES oder SS x 16) gebildet:
mov ds,1000
mov bx,00f0
ds: mov ax,[bx]
lädt von Addresse:
Addresse bx = 00f0
Offset +(ds*16) = 1000
______________
reale (physikalische) Addresse = 100f0
mit freundlichen grüssen,
with best regards,
crack
with best regards,
crack