- CPUs „Turing vervollständigt“ (bis Speicherbegrenzungen)
- CPUs hat ein einfaches deterministisches Verhalten, die mit endlichen Speichern Turing Maschinen simuliert werden können
Daher ist es klar, dass jede CPU kann jede CPU emulieren, die genügend Speicher hat.
Die schwierige Frage ist, wie das zu tun schnell.
Neben Intels Houdini empfehle ich dringend, dass Sie studieren, wie QEMU es tut.
QEMU ist der führende Weg, um ARM auf x86 laufen zu lassen. Es GPL-Software, und wird als Kern des Android-Emulators von Android-Entwicklern verwendet.
x86 auf ARM hat weniger Unterstützung, aber die wichtigsten Konzepte sollten umgekehrt ähnlich sein.
Spielen Sie insbesondere mit dem Userland-Emulationsmodus. Mit diesem Modus können Sie eine statisch gelinkte ARM ausführbare Datei auf x86-Host ausgeführt werden einfach als:
qemu-arm-static ./executable
ein paar Ideen:
- Befehle werden in Hostinstruktionen übersetzt
- Systemaufrufe an die weitergeleitet werden host
Wahrscheinlich ARM native Code kann nicht auf x86 ausgeführt werden, oder zumindest einen Emulator benötigt. –