Wie Schreibe Ich Einen Emulator?

Inhaltsverzeichnis:

Wie Schreibe Ich Einen Emulator?
Wie Schreibe Ich Einen Emulator?

Video: Wie Schreibe Ich Einen Emulator?

Video: Wie Schreibe Ich Einen Emulator?
Video: NES Emulator Part #1: Bitwise Basics u0026 Overview 2024, November
Anonim

Emulation ist ein Versuch, ein Gerät auf einem bestimmten System zu imitieren. Es gibt drei Möglichkeiten, Emulatoren zu erstellen: dynamische und statische Neukompilierung und Interpretation. Um den maximalen Geschwindigkeitseffekt beim Arbeiten zu erzielen, wird empfohlen, alle drei Methoden zu verwenden. Betrachten wir ein Beispiel für das Schreiben eines typischen Prozessoremulators.

Wie schreibe ich einen Emulator?
Wie schreibe ich einen Emulator?

Anweisungen

Schritt 1

Wählen Sie eine Programmiersprache aus. Die empfohlene und wahrscheinlich einzige Alternative ist C und Assembler. In C können Sie Code erstellen, der auf andere Plattformen portiert wird. Es ist relativ einfach zu verstehen und leicht zu debuggen, aber viel langsamer als andere. Der Assembler zeichnet sich durch seine hohe Arbeitsgeschwindigkeit aus, er verwendet Prozessorregister, was zur Annäherung des Programms an das Neukompilieren beiträgt. Es ist jedoch sehr schwierig, Codes darin zu verfolgen und zu reparieren. Es ist wichtig, die gewählte Sprache gut zu kennen und den Code gut auf Geschwindigkeit zu optimieren.

Schritt 2

Weisen Sie dem Zyklus- und Programmzähler einen Initialwert zu. Der zyklische Zähler zählt die Anzahl der Taktzyklen, nach denen der Interrupt auftritt, und der Software-PC zeigt den Speicherbereich an, in dem der nächste Opcode-Befehl liegt.

Schritt 3

Nachdem Sie den Opcode erhalten haben, ziehen Sie die Anzahl der Taktzyklen, die zum Ausführen des Opcodes erforderlich sind, vom Schleifenzähler ab. Bitte beachten Sie, dass sich einige Befehle je nach Argument in der Anzahl der Ticks unterscheiden. Ändern Sie für solche Befehle später den Zähler im Ausführungscode.

Schritt 4

Überprüfen Sie nach erfolgreicher Ausführung des Opcodes, ob Interrupts ausgelöst werden müssen. Erledigen Sie an dieser Stelle die Aufgaben, die dringend rechtzeitig synchronisiert werden müssen.

Schritt 5

Überprüfen Sie jeden Durchlauf des Zyklus auf die Notwendigkeit, seine Arbeit abzuschließen. Denken Sie daran, dass das Programm modular sein sollte, da die meisten Computer aus Modulen bestehen, und ein typischer Emulator sollte, wenn möglich, mit dem Originalsystem identisch sein. Dies ermöglicht ein schnelleres und einfacheres Debuggen des Programms, und Sie können dieselben Module für verschiedene Emulatoren verwenden, da viele Computer auf denselben Prozessor- oder Videoprozessormodellen basieren.

Empfohlen: