MASM mit MASM32 Compilieren?

Offizieller deutscher Support für das MASM32 SDK. Download FAQ

Moderatoren: crack, Krüsty, Marwin

MASM mit MASM32 Compilieren?

Beitragvon Phatano » Freitag 4. November 2005, 01:42

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
Phatano, nicht Pharao!
Phatano
Newbie
 
Beiträge: 2
Registriert: Samstag 10. Mai 2003, 14:41

Beitragvon Nordwind64 » Freitag 4. November 2005, 10:44

Hi,

MASM32 ist ja die Weiterentwicklung von MASM. Und ist weitestgehend abwärts kompatibel. Du kannst also deine alten MASM-Codes mit MASM32 compilieren, ggf. musst du den Kopf etwas ändern. Aber dürfte kein Problem sein.

Gruß,
Nordwind64
Nordwind64
Newbie
 
Beiträge: 5
Registriert: Freitag 28. Oktober 2005, 17:28

Beitragvon crack » Montag 7. November 2005, 10:33

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.
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 275
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf

Beitragvon Odysseus » Dienstag 7. Februar 2006, 05:28

Kannst du mal bitte genauer werden? Was genau muss man im Programmkopf ändern? Danke
Odysseus
Newbie
 
Beiträge: 3
Registriert: Donnerstag 2. Februar 2006, 22:00
Wohnort: Baden-Württemberg

Beitragvon crack » Dienstag 7. Februar 2006, 10:59

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
mit freundlichen grüssen,
with best regards,

crack
Benutzeravatar
crack
Administrator
 
Beiträge: 275
Registriert: Dienstag 21. Dezember 2004, 15:02
Wohnort: 53783 Eitorf


Zurück zu MASM32-Package


Social Bookmarking
Bookmark bei: Mr. Wong Bookmark bei: Del.icio.us Bookmark bei: Webnews Bookmark bei: Icio Bookmark bei: Oneview Bookmark bei: Linkarena Bookmark bei: Newskick Bookmark bei: Folkd Bookmark bei: Yigg Bookmark bei: Digg Bookmark bei: Reddit Bookmark bei: Simpy Bookmark bei: StumbleUpon Bookmark bei: Slashdot Bookmark bei: Netscape Bookmark bei: Furl Bookmark bei: Yahoo Bookmark bei: Spurl Bookmark bei: Google Bookmark bei: Blinklist Bookmark bei: Blogmarks Bookmark bei: Diigo Bookmark bei: Technorati Bookmark bei: Newsvine Bookmark bei: Blinkbits Bookmark bei: Ma.Gnolia Bookmark bei: Smarking Bookmark bei: Netvouz

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder

cron