Frage

Für meine Assembler-Sprache Klasse, gerade schreiben wir DOS-Programme mit DPMI. Leider habe ich keinen Zugriff auf 32-Bit-Windows-Rechner die ganze Zeit. Ich habe eine Debian virtuelle Maschine jeden Computer nur über installiert ich tun.

Ich habe beide DOSBox und DOSEMU installiert bekommt. Gibt es eine Möglichkeit, dass ich die Programme in Linux zusammenzubauen und zusammenstellen können, anstatt DOS? Ich verwende nasm, so dass ich scheinen keine Probleme zu haben, es assembledin DOS-Format zu bekommen. Aber ich habe Probleme es durch den Compiler mit meinem C-Code ausgeführt wird und eine DOS ausführbare bekommen (entweder gcc oder MinGW verwenden).

Gibt es eine Möglichkeit, dies zu tun oder bin ich so ziemlich alle Werkzeuge unter DOS installieren gehen zu müssen?

War es hilfreich?

Lösung

Ich bin nicht einmal sicher, ob Sie DOS kompilieren können GCC-Anwendungen. Vor langer Zeit gab es eine gcc-Compiler-Variante DJGPP (oder so ähnlich) genannt. Ich habe nie, obwohl es funktioniert.

Die Chancen, dass Sie können einen GCC für DOS-Kreuz kompilieren in diesen Tagen sind fast Null.

Ich schlage vor, Sie den alten Watcom Compiler versuchen. Es ist eine native DOS-Compiler und es ist DPMI Implementierung funktioniert auch wie ein Zauber unter DosBox. Interfacing mit NASM kompilierten Objektdateien ist kein Problem (ich habe das ein paar Jahre)

Heute ist der Compiler Open Source und genannt OpenWatcom gemacht wurde.

http://www.openwatcom.org/index.php/Main_Page

Andere Tipps

BCC ist in debian, und ist in der Lage produziert anständigen Code für 8080 bis zu 80386 Verwenden Sie den -Md Schalter eine MS-DOS binäre zu erzeugen.

Die wahrscheinlich einfachste Weg für Sie zu gehen, ist die Standard-DOS-Tools für die Aufgabe zu verwenden.

DOSBOX ist ein wirklich guter Emulator.

DJGPP ist lächerlich einfach zu installieren, Nötigste nur drei .ZIPs benötigt:

  1. BNU219B.ZIP (Assembler, Linker, Librarian)
  2. GCC441B.ZIP (C-Compiler)
  3. DJDEV204.ZIP (libc, headers)

http://www.delorie.com/djgpp/getting.html

unzip *.zip -d c:\djgpp && 
set DJGPP=c:\djgpp\djgpp.env &&
path c:\djgpp\bin;%PATH%

gcc myfile.c -o myfile.exe

DOS-kompatible Ausgabe zu erzeugen, werden Sie entweder die DOS-hosted-Compiler in DOSEMU (nicht DOSBox !! Art und Weise zu langsam und Buggy, für Spiele gedacht nur) oder verwenden Linux-hosted Cross-Compiler (DJs Website hat die RPMs für diese).

Wenn Sie jedoch 100% 16-Bit-Code wollen, müssen Sie etwas anderes (z OpenWatcom) verwenden. OpenWatcom hat auch Linux (Beta !!) Host und Ziel (keine gemeinsamen libs, aber IIRC) unterstützen, aber Sie können es selbst mit GCC kompilieren müssen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top