Abrir menu principal
Wikitext.svg
Esta página ou seção precisa ser wikificada (desde agosto de 2015).
Por favor ajude a formatar esta página de acordo com as diretrizes estabelecidas.
Question book.svg
Este artigo ou secção não cita fontes confiáveis e independentes (desde agosto de 2015). Ajude a inserir referências.
O conteúdo não verificável pode ser removido.—Encontre fontes: Google (notícias, livros e acadêmico)

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.