O que é montagem embutida?
Montagem embutida - também chamada de linguagem de montagem em linha ou assembler embutido - é um bloco de código de linguagem de montagem que é inserido diretamente nas funções e código -fonte para outro idioma. Isso permite que um programador insira um bloco de linguagem de montagem pura em um programa no qual o restante do programa está usando um idioma sem montagem. A capacidade é suportada em alguns idiomas - como C, C ++ e Pascal -, mas é um recurso do compilador específico usado e não faz necessariamente parte do padrão de idiomas. Em muitos casos, a montagem embutida é usada para acessar funções especiais na Unidade Central de Processamento (CPU), para otimizar o código ou para executar operações de nível muito baixo, como o Blitting Memory. Embora um determinado compilador ou linguagem de programação possa ter suporte para criar executáveis entre plataformas, o uso da montagem em linha normalmente restringe o programa a sistemas que podem empregar as instruções específicas de montagem ou ter arquitetu correspondenteRe.
Existem várias maneiras pelas quais um idioma ou compilador permite que a montagem embutida seja incluída em um arquivo de código -fonte padrão. Um dos métodos mais fáceis é simplesmente definir o início de um bloco de montagem, após o qual todos os comandos são interpretados como montagem direta. Alguns ambientes de desenvolvimento integrado (IDEs) e compiladores realmente permitem que o código embutido use variáveis definidas no programa ou função sem carregá -las explicitamente nos registros primeiro.
Outra maneira pela qual a montagem embutida é definida dentro de um arquivo de origem é através do uso de uma função somente de linguagem de montagem dedicada. Nesse caso, o código embutido geralmente não pode ser combinado com o código sem montagem, como um loop de controle ou instrução de retorno. Quando implementado dessa maneira, a função embutida também geralmente precisa empurrar e aprimorar explicitamente as variáveis dentro e fora da pilha para usar variáveis locais ou passar valoreslado a função.
Um dos usos mais comuns para o código de montagem embutida é a otimização do Pinpoint para pequenos segmentos de um programa. Dependendo de como o código embutido é integrado, isso pode significar o uso de comandos de linguagem mais legíveis por humanos envolvidos em código embutido que executa diretamente alguma ação de maneira rápida e eficiente. Além disso, se o sistema de destino for conhecido, o código poderá usar registros e comandos específicos de hardware que podem tornar o programa executado muito mais rápido.
montagem embutida pode ser usada para acessar partes do sistema operacional, CPU ou até portas de hardware diretamente quando outros métodos podem falhar ou causar um erro do sistema. Isso pode ser usado para alterar rapidamente os quadros em uma placa gráfica ou enviar sinais diretamente para uma porta de interrupção ou hardware específico. Um dos perigos de usar o código de montagem dessa maneira, no entanto, é que pequenos erros podem ser difíceis de encontrar ou fazer com que o programa trava inesperadamente em certos sistemas.