Não, o código compilado para um processador ARM não será executado diretamente em um processador X86. O ARM e o X86 são arquiteturas diferentes do conjunto de instruções (ISAs). Isso significa que eles têm conjuntos de instruções fundamentalmente diferentes - as instruções do código da máquina que os processadores entendem são completamente diferentes.
Para executar o código do ARM em um processador X86, você precisa de um dos seguintes:
* Emulação
: Um emulador traduz as instruções do braço em instruções x86 em tempo real. Isso é significativamente mais lento que a execução nativa. Exemplos incluem qemu.
*
Compilação cruzada: Compile o código -fonte (por exemplo, C, C ++) especificamente para a arquitetura x86. Isso exige que uma cadeia de ferramentas de compilador cruzada seja configurada com alvos x86. Isso produz código X86 nativo que é executado direta e eficientemente.
*
Tradução: Algumas ferramentas traduzem o código da máquina do braço no código da máquina x86. Isso é semelhante em conceito à compilação cruzada, mas opera no nível do código da máquina em vez do nível do código-fonte.
Em suma, o código binário é incompatível. Você precisa de uma camada de tradução ou emulação para preencher a lacuna entre as duas arquiteturas.