2014-02-15 6 views
6

In der Intel 64 & IA-32 architecutures Handbuch Bd 3A, Kapitel 9 Prozessorverwaltung und Initialisierung, finde ich, das die folgenden:über Intel IA-32e Modus

Kompatibilitätsmodus Ausführung auf einer Code-Segment-Basis ausgewählt ist, . Dieser Modus ermöglicht die Koexistenz von Legacy-Anwendungen mit 64-Bit-Anwendungen, die im 64-Bit-Modus ausgeführt werden. Ein im IA-32e-Modus laufendes Betriebssystem kann vorhandene 16-Bit- und 32-Bit-Anwendungen ausführen, indem es das CS.L-Bit des Codesegment-Deskriptors auf 0 löscht Anwendung kann mit 64-Bit-Anwendung auf einem Betriebssystem, das in IA-32e-Modus ausgeführt wird, koexistieren.

Aber wie ich weiß, wird Legacy-16-Bit-Code im Allgemeinen nicht von 64-Bit-Betriebssystem unterstützt. Wenn es unterstützt wird, wie kann ich eine 16-Bit-Anwendung starten?

+0

Vermächtnis * geschützten Modus * 16-Bit-Programme. Überaus selten, Betriebssysteme stören einfach nicht. Der virtuelle 8086-Modus wird nicht unterstützt, daher benötigen DOS-Programme einen Emulator. –

Antwort

6

Der Grund emuliert 64-Bit nicht unterstützt 16-Bit-Apps sind nicht geeignet, weil der 64-Bit-Modus keine 16-Bit-Befehle ausführen kann.

Der Hauptgrund ist, dass Griffe 32 Bits auf 64-Bit-Windows- haben. Daher können Handles nicht abgeschnitten und an 16-Bit-Anwendungen ohne Datenverlust übergeben werden.

http://msdn.microsoft.com/en-us/library/aa384249%28VS.85%29.aspx

+0

Sie wissen, dass ich seit langem von diesem Problem betroffen bin. Jetzt habe ich endlich eine anständige Antwort. Ich nehme an, dass Wine auf Linux amd64 Builds ähnliche Probleme hat? – Olorin

+0

Ich bin mir nicht sicher. Abhängig davon, wie viele Bits für Griffe verwendet werden –

1

32 Bit-Anwendung wird von 64-Bit-architectire unterstützt, so können sie koexistieren, in Bezug auf 16-Bit-Anwendung, die Sie einige Werkzeuge benötigen addresing Raum shuch als dosbox Fenster auf Fenster