Ir ao conteúdo
  • Cadastre-se

Como os compiladores buscam as instruções de cada processador?


Posts recomendados

Olá!

 Minha dúvida está em como os compiladores "sabem" em quais instruções de um determinado processador (Assembly) ele deve transformar a linguagem de programação de alto nível. Por exemplo, como pode um mesmo compilador, compilar para o processador 80386 e para um i7, já que o i7 possui instruções mais sofisticadas, assim podendo ser mais eficiente? Existe algum tipo de comunicação entre o compilador e o processador para buscar todas as instruções deste determinado processador e assim o compilador poder montar o código de montagem mais eficiente possível para este determinado processador?

Link para o comentário
Compartilhar em outros sites

eles podem usar uma instrução CPUID pra saber as informações específicas,mas isso seria só uma parte do processo complexo,o nivel de introspecção do compilador é com certeza bizarro(é meio pertubador ver as vezes um inline assembly sendo menos efetivo que uma otimização O3 de um compilador como o visual C++)

 

em um programa escrito por voce em assembly é só voce especificar o set de instruções pro processador alvo que voce ta escrevendo no começo do programa usando uma diretiva,por exemplo .386 (isso monta qualquer instrução dos processadores anteriores e do 80836,mas nao monta nenhuma nova instrução de processadores posteriores)

 

Aqui tambem há um bom tópico com uma boa resposta

http://programmers.stackexchange.com/questions/167857/do-compilers-have-to-be-written-for-each-model-of-cpu

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...