64 bits de montagem é instruções de 32 bits mais
-
23-08-2019 - |
Pergunta
Estou começando a porta de um programa que é escrito em C e têm vários pedaços de código escrito em conjunto com instruções para uma máquina de 32 bits - como LJMP -. A uma máquina de 64 bits
Existe um lugar / documento que tem as instruções, em assembléia, para uma máquina de 32 bits e sua contraparte para um 64 um? Se não, onde posso encontrar um documento que lista todas as instruções para a de 32 bits e uma máquina de 64 bits?
Como é é bastante óbvio, eu sou um novato para a situação. Vamos esclarecer alguns pontos.
Eu sou portagem de um sistema operacional em seus primeiros dias. Foi escrito com uma máquina x86 em mente. Agora, eu quero que ele seja executado em um x86_64.
Ele é escrito em uma caixa de Linux com UNIX em mente. Estou quase certo de que o autor original é escrevê-lo em uma máquina Intel. Eu também estou em Intel, mas eu gostaria de executar o sistema operacional em AMD também.
O compilador usado é gcc.
Solução
Leia este primeiro: http: // x86asm .net / artigos / x86-64-tour-de-Intel manuais / index.html .
Então baixe o de referência conjunto de instruções aqui: http://developer.intel .com / products / processador / manuais / index.htm .
Outras dicas
Você não ofereceram qualquer fundo, ou mesmo o tipo de CPU, mas eu vou sugerir thay talvez você deve tomar esta porta de 64 bits como uma oportunidade para reconsiderar tendo linguagem assembly usado. Embora certamente tem seu lugar, eu recomendaria recodificação a rotina em C ++ e benchmarking saída otimizada do compilador para ver se ele é realmente mais lento. Em muitos casos, não será.