Nein, der für einen ARM -Prozessor zusammengestellte Code wird nicht direkt auf einem X86 -Prozessor ausgeführt. Arm und X86 sind verschiedene Anleitungs -Set -Architekturen (ISAs). Dies bedeutet, dass sie grundsätzlich unterschiedliche Anweisungssätze haben - die Anweisungen für Maschinencode, die die Prozessoren verstehen, sind völlig unterschiedlich.
Um den ARM -Code auf einem X86 -Prozessor auszuführen, benötigen Sie eines der folgenden:
* Emulation: Ein Emulator übersetzt die ARM -Anweisungen in x86 Anweisungen im laufenden Fliegen. Dies ist deutlich langsamer als die native Ausführung. Beispiele sind QEMU.
* Kreuzverbesserung: Kompilieren Sie den Quellcode (z. B. C, C ++) speziell für die X86 -Architektur. Dies erfordert eine Cross-Compiler-Toolchain-Einrichtung, die auf X86 abzielt. Dies erzeugt einen nativen X86 -Code, der direkt und effizient ausgeführt wird.
* Übersetzung: Einige Tools übersetzen den ARM -Maschinencode in den X86 -Maschinencode. Dies ist im Konzept ähnlich wie bei der Cross-Compilation, arbeitet jedoch eher auf der Ebene der Maschinencode als auf der Ebene der Quellcode.
Kurz gesagt, der Binärcode ist unvereinbar. Sie benötigen eine Übersetzungs- oder Emulationsschicht, um die Lücke zwischen den beiden Architekturen zu schließen.