Inline Assembler

Origem: Wikipédia, a enciclopédia livre.

Em programação de computadores, um inline assembler é um recurso de alguns compiladores que permitem código-fonte de baixo nível escritos em assembly serem embutidos em linguagens de alto nível como C ou Ada. Esta inclusão de código-fonte de baixo nível é usualmente feita por causa de uma das três razões:

  • Otimização: quando trechos de códigos-fonte são escritos em linguagem assembly para otimização, a maioria das partes com performance crítica de um algoritmo são substituidas por códigos-fonte assembly escritos pelo desenvolvedor.
  • Acesso a instruções específicas de determinado processador: alguns processadores disponibilizam instruções especiais, como "Compare and Swap" e "Test and Set" — instruções que podem ser usadas para construir semáforos ou outros mecanismo de sincronização e bloqueio primitivos. Atualmente os processadores modernos têm estas ou instruções similares, pois, elas são necessárias para implementar multi-tarefa (multitasking). Para dar alguns exemplos, instruções especializadas são encontradas nos conjuntos de instruções SPARC VIS, Intel MMX e SSE, e Motorola Altivec.
  • Chamadas de sistema: linguagens de alto nível raramente tem uma direct facility para fazer chamadas de sistema, então códigos-fonte em assembly são usados.