<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Virtual_8086_Mode</id>
	<title>Virtual 8086 Mode - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Virtual_8086_Mode"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Virtual_8086_Mode&amp;action=history"/>
	<updated>2026-05-27T13:02:57Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Virtual_8086_Mode&amp;diff=66341&amp;oldid=prev</id>
		<title>~2026-27579-8: Fettschrift</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Virtual_8086_Mode&amp;diff=66341&amp;oldid=prev"/>
		<updated>2026-01-13T23:58:17Z</updated>

		<summary type="html">&lt;p&gt;Fettschrift&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Der Betriebsmodus &amp;#039;&amp;#039;&amp;#039;{{lang|en|Virtual 8086 Mode}}&amp;#039;&amp;#039;&amp;#039; – kurz &amp;#039;&amp;#039;&amp;#039;VM86&amp;#039;&amp;#039;&amp;#039; –, manchmal auch &amp;#039;&amp;#039;&amp;#039;V86&amp;#039;&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;https://www.xtof.info/inside-windows3.html#h-virtual-8086-mode&amp;lt;/ref&amp;gt; wurde mit dem [[Intel 80386|80386]]-Prozessor von [[Intel]] im Jahr [[1985]] eingeführt. Da sich zu dieser Zeit [[Protected Mode|Protected-Mode]]-Betriebssysteme noch nicht am Markt gegen das [[Real Mode|Real-Mode]]-Betriebssystem [[PC-kompatibles DOS|DOS]] durchgesetzt hatten, wurde mit dem &amp;#039;&amp;#039;{{lang|en|Virtual 8086 Mode}}&amp;#039;&amp;#039; die Möglichkeit geschaffen, innerhalb eines Protected-Mode-Betriebssystems Real-Mode-Programme (also vor allem DOS-Programme) auszuführen, ohne die Protected-Mode-Umgebung zu verlassen.&lt;br /&gt;
&lt;br /&gt;
Bekanntestes Beispiel hierfür ist die so genannte [[MS-DOS-Eingabeaufforderung]], die ab [[Microsoft Windows 3.0|Windows 3.0]] existierte.&lt;br /&gt;
&lt;br /&gt;
== Nutzung ==&lt;br /&gt;
Im {{lang|en|Protected Mode}} können mehrere Programme – so genannte &amp;#039;&amp;#039;Tasks&amp;#039;&amp;#039; – quasi parallel ablaufen. Für jeden dieser Tasks kann über ein bestimmtes [[Bit]] im [[Statusregister]] festgelegt werden, ob er ein VM86-Task sein soll.&lt;br /&gt;
&lt;br /&gt;
Im Virtual-8086-Modus verhält sich der [[Prozessor]] aus Programmsicht wie ein Prozessor im &amp;#039;&amp;#039;{{lang|en|Real Mode}}&amp;#039;&amp;#039;. Es ist für ein Programm aber leicht feststellbar, ob es im &amp;#039;&amp;#039;{{lang|en|Real Mode}}&amp;#039;&amp;#039; oder im &amp;#039;&amp;#039;{{lang|en|VM86 Mode}}&amp;#039;&amp;#039; läuft. Jedem VM86-Task stehen maximal ein [[Mebibyte]] Arbeitsspeicher zur Verfügung. Dies muss jedoch – im Gegensatz zum &amp;#039;&amp;#039;{{lang|en|Real Mode}}&amp;#039;&amp;#039; – nicht das erste Mebibyte im physischen Speicher sein, da die {{lang|en|Protected-Mode}}-Umgebung im Hintergrund automatisch eine Umsetzung der &amp;#039;&amp;#039;virtuellen Adressen&amp;#039;&amp;#039; in &amp;#039;&amp;#039;physische Adressen&amp;#039;&amp;#039; vornimmt.&lt;br /&gt;
&lt;br /&gt;
Da ein VM86-Task in der Regel unprivilegiert läuft, hat er nur eingeschränkte Zugriffsrechte auf die Hardware oder bestimmte [[Register (Computer)|CPU-Register]]. Dies ist notwendig, da sonst ein Programm im VM86-Modus das {{lang|en|Protected-Mode}}-Betriebssystem und somit den [[Speicherschutz]] umgehen könnte. Jeder Hardwarezugriff, den ein VM86-Task tätigt, wird daher vom [[Prozessor]] abgefangen und als [[Ausnahmebehandlung|Ausnahmesituation]] ({{enS|Exception}}) an das {{lang|en|Protected-Mode}}-Betriebssystem gemeldet, welches dann entweder das Verhalten der [[Hardware]] nachbilden (simulieren) muss, oder bei unerlaubtem Zugriff den VM86-Task und das in ihm laufende Programm beendet. Da unter DOS solche direkten Hardwarezugriffe recht häufig vorkommen, stellt dies an das [[Betriebssystem]] große Anforderungen, da eine Vielzahl an Hardwareverhalten nachgebildet werden muss. Da das Abfangen und Simulieren der Hardwarezugriffe außerdem meist langsamer ist als der direkte Hardwarezugriff, laufen viele DOS-Programme im VM86-Modus spürbar langsamer als im „echten“ &amp;#039;&amp;#039;{{lang|en|Real Mode}}&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Der VM86-Modus wurde jedoch nicht nur für diverse DOS-Fenster z.&amp;amp;nbsp;B. unter [[Microsoft Windows|Windows]] („[[COMMAND.COM#MS-DOS-Eingabeaufforderung|Eingabeaufforderung]]“), [[OS/2]] („DOS-Modus“), [[Linux]] (über das Programm [[DOSEMU]]) benutzt, sondern auch von DOS selbst. Der Speichertreiber [[EMM386.EXE]] von [[MS-DOS]] schaltete – vom Benutzer meist unbemerkt – in den &amp;#039;&amp;#039;{{lang|en|Protected Mode}}&amp;#039;&amp;#039;, um Zugriff auf den Speicher jenseits der 1-Mebibyte-Grenze zu bekommen. Anschließend startete er einen VM86-Task, in den das bereits laufende DOS dann verlegt wurde. EMM386.EXE benutzte die ebenfalls ab dem 80386er verfügbare [[Paging]]-Technik, um den DOS-Programmen mehr Speicher zur Verfügung zu stellen, indem es Speicher von jenseits der 1-Mebibyte-Grenze in den DOS-Adressraum einblendete (&amp;#039;&amp;#039;{{lang|en|Expanded Memory}}&amp;#039;&amp;#039;, [[Expanded Memory Specification|EMS]]). Solche Speichermanager existieren auch für die anderen MS-DOS-kompatiblen Betriebssysteme. Sie heißen dort anders, aber ihre prinzipielle Arbeitsweise ist identisch.&lt;br /&gt;
&lt;br /&gt;
== Verbesserter Virtual 8086 Mode ==&lt;br /&gt;
Als &amp;#039;&amp;#039;Virtual 8086 mode enhancements&amp;#039;&amp;#039;,&amp;lt;ref name=&amp;quot;softwaresolutions2018p75&amp;quot; /&amp;gt; kurz &amp;#039;&amp;#039;&amp;#039;VME&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;{{lang|en|Virtual Mode Extensions}}&amp;#039;&amp;#039;), kamen bei späteren [[Intel 80486|80486]]-Modellen und beim [[Intel Pentium|Pentium]] weitere Features für den VM86-Modus hinzu, die es erlauben, dass bestimmte [[Interrupt]]-Serviceroutinen komplett im VM86-Modus abgearbeitet werden können, ohne dass aufwändige Taskwechsel in das &amp;#039;&amp;#039;{{lang|en|Protected-Mode}}&amp;#039;&amp;#039;-Betriebssystem erfolgen müssen. Dies ermöglicht eine Ausführungsgeschwindigkeit, die dem echten &amp;#039;&amp;#039;{{lang|en|Real Mode}}&amp;#039;&amp;#039; sehr nahekommt, vor allem, da unter DOS Software-Interrupts sehr häufig sind, wo sie als Aufruf ins Betriebssystem und von [[BIOS]]-Routinen benutzt werden.&lt;br /&gt;
&lt;br /&gt;
Mit dem in x86-Prozessoren ab späteren 80486 CPUs verfügbaren [[CPUID]]-Funktionsaufruf lässt sich auslesen, ob ein Prozessor die verbesserten &amp;#039;&amp;#039;{{lang|en|Virtual Mode Extensions}}&amp;#039;&amp;#039; bietet. Dazu muss in Register EAX der Wert &amp;lt;code&amp;gt;1H&amp;lt;/code&amp;gt; stehen, wenn die CPUID-Funktion ausgeführt wird. In Register EDX findet sich anschließend im zweiten Bit (Bit 1) die Information über die Verfügbarkeit von VME.&amp;lt;ref name=&amp;quot;softwaresolutions2018p75&amp;quot;&amp;gt;{{Literatur |Autor=Julio Sanchez, Maria P. Canton |Titel=Software Solutions for Engineers and Scientists |Verlag=CRC Press |Datum=2018 |ISBN=978-1-4200-4303-7 |Seiten=75 |Sprache=en |Online={{Google Buch |BuchID=jtKc0k5BWA8C |Seite=75 |Linktext=Volltext |Hervorhebung=Virtual 8086 mode enhancements}} |Zitat=EDX = feature information: Bit 1: Virtual 8086 mode enhancements}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Bei vielen Betriebssystemen lassen sich die CPUID-Informationen relativ einfach auslesen. Unter Linux z.&amp;amp;nbsp;B. reicht es, sich den Inhalt von &amp;lt;code&amp;gt;[[procfs|/proc]]/cpuinfo&amp;lt;/code&amp;gt; anzeigen zu lassen. In der Zeile „[[Flag (Informatik)|flags]]“ findet sich &amp;lt;code&amp;gt;&amp;#039;&amp;#039;&amp;#039;vme&amp;#039;&amp;#039;&amp;#039;&amp;lt;/code&amp;gt;, wenn der verbesserte VM86-Modus vorhanden ist. Beispiel (Prozessor: [[Intel Pentium II|Pentium&amp;amp;nbsp;II]]):&lt;br /&gt;
&lt;br /&gt;
 [[Prompt|$]] [[cat (Unix)|cat]] /proc/cpuinfo [[Pipe (Informatik)|&amp;amp;#124;]] [[grep]] -m 1 -e &amp;quot;flags&amp;quot;&lt;br /&gt;
 flags           : fpu &amp;#039;&amp;#039;&amp;#039;vme&amp;#039;&amp;#039;&amp;#039; de pse tsc msr pae mce cx8 sep mtrr pge mca cmov pse36 mmx fxsr up&lt;br /&gt;
&lt;br /&gt;
Auf einigen [[Berkeley Software Distribution|BSD]]-Systemen werden die Flags als „Features“ bei den Textmeldungen beim Systemstart ausgegeben, die auch mit &amp;lt;code&amp;gt;[[dmesg]]&amp;lt;/code&amp;gt; auf einem laufenden System angezeigt werden können. Auch das Programm &amp;lt;code&amp;gt;dmidecode&amp;lt;/code&amp;gt; kann bei geeigneten Systemen (DMI steht für &amp;#039;&amp;#039;{{lang|en|[[Desktop Management Interface]]}}&amp;#039;&amp;#039;) die CPU-Flags ausgeben.&lt;br /&gt;
&lt;br /&gt;
=== AMD Ryzen ===&lt;br /&gt;
Beim AMD-[[Zen (Mikroarchitektur)|Ryzen]]-Prozessor (Mitte 2017) ist die Implementierung der &amp;#039;&amp;#039;{{lang|en|Virtual Mode Extensions}}&amp;#039;&amp;#039; (VME) fehlerhaft, so dass Software, die diese Erweiterung benutzt, nicht stabil lief. Da der Virtual-8086-Modus nur im 32-Bit-Betriebsmodus verfügbar ist, betraf der Fehler nur 32-Bit-Betriebssysteme – allerdings auch dann, wenn diese virtualisiert ausgeführt wurden. Der [[Hardwarefehler]] kann meist in [[Virtuelle Maschine|Virtuellen Maschinen]], etwa [[VirtualBox]], [[Workaround|umgangen]] werden, indem die Unterstützung für VME per [[CPUID]] für das [[Gastsystem]] deaktiviert wird. Mit der Aktualisierung auf [[AMD Generic Encapsulated Software Architecture|AGESA]]-Version 1.0.0.6 von Ende 2017 wurde der VME-Bug von AMD per [[Mikrocode|Microcode]]-Update behoben.&amp;lt;ref name=&amp;quot;heiseonline_3732056&amp;quot;&amp;gt;{{Heise online |ID=3732056 |Titel=AMD Ryzen: Kommende BIOS-Updates patchen auch „VME-Bug“ |Autor=Christof Windeck |Datum=2017-06-01 |Abruf=2017-07-07}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bedeutung auf 64-Bit-x86-Systemen „x64“ ==&lt;br /&gt;
Mit der schwindenden Bedeutung des Betriebssystems DOS ist auch der VM86-Modus nunmehr eher als historisch anzusehen und wird daher kaum noch verwendet, auch wenn er in jedem aktuellen x86-kompatiblen Prozessor noch im 32-Bit-Modus (ab „{{lang|en|[[IA-32|Intel Architekture 32-Bit]]}}“, kurz IA-32) verfügbar ist. Auf einem 64-Bit-x86-System „[[X64#Betriebsmodi|x64]]“ (eine Erweiterung der IA-32) gibt es zwar einen „{{lang|en|Compatibility Mode}}“, der verwendet wird, um 16-Bit-&amp;#039;&amp;#039;{{lang|en|Protected-Mode}}&amp;#039;&amp;#039;- oder 32-Bit-Programme auf einem 64-Bit-Betriebssystem auszuführen, jedoch fehlt darin der &amp;#039;&amp;#039;{{lang|en|Virtual86 Mode}}&amp;#039;&amp;#039;. Abhilfe schaffen [[Emulator]]en wie z.&amp;amp;nbsp;B. [[DOSBox]], die ein 8086-kompatibles System mit [[IBM-PC-kompatibler Computer|PC-typischer]] Hardwareumgebung komplett in Software nachbilden.&amp;lt;!-- Ebenso können manche Programme den &amp;#039;&amp;#039;{{lang|en|Real Mode}}&amp;#039;&amp;#039; in Software emulieren, wenn VM86/VME auch im 32-Bit-Modus gänzlich fehlt.--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Jeder 64-Bit-x86-Prozessor „x64“ bietet mit dem „{{lang|en|Legacy Mode}}“ vollwertiges 32-Bit-x86, oder anders ausgedrückt: Jeder x64-Prozessor ist auch ein vollwertiger 32-Bit-x86-Prozessor („IA-32“). Läuft darauf ein 32-Bit-Betriebssystem, so ist normalerweise auch der verbesserte VM86-Modus „VME“ weiterhin verfügbar. Auch unter einem 64-Bit-Betriebssystem kann in einer [[Virtuelle Maschine|virtuellen Maschine]] der 32-Bit-&amp;#039;&amp;#039;{{lang|en|Legacy-Mode}}&amp;#039;&amp;#039;, inklusive VME, verwendet werden. Beispielsweise kann ein auf einem 64-Bit-Betriebssystem, das im 64-Bit-Modus läuft, virtualisiert ausgeführtes 32-Bit-Betriebssystem alle im &amp;#039;&amp;#039;{{lang|en|Legacy Mode}}&amp;#039;&amp;#039; vorhandenen Funktionen nutzen, und damit auch VME, wenn dieses per CPUID angezeigt ist.&lt;br /&gt;
&lt;br /&gt;
In 64-Bit-Umgebungen spielt der &amp;#039;&amp;#039;{{lang|en|Real Mode}}&amp;#039;&amp;#039;, und damit auch der &amp;#039;&amp;#039;{{lang|en|Virtual 8086 Mode}}&amp;#039;&amp;#039; bzw. VME, keine Rolle mehr.&lt;br /&gt;
&lt;br /&gt;
== Weblinks ==&lt;br /&gt;
* [http://www.rcollins.org/articles/vme1/ Virtual Mode Extensions on the Pentium Processor], Robert Collins, Jim Brooks (englisch)&lt;br /&gt;
&lt;br /&gt;
== Einzelnachweise ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Navigationsleiste x86-Erweiterungen}}&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Mikroprozessortechnik]]&lt;/div&gt;</summary>
		<author><name>~2026-27579-8</name></author>
	</entry>
</feed>