Programação  
 
Rede de conhecimento computador >> Programação >> C /C + + programação >> Content
O que é o código de montagem e como ele é usado na programação do computador?

Código de montagem:a ponte entre humano e máquina



O código de montagem é uma linguagem de programação de baixo nível que é essencialmente uma representação mais legível pelo homem do código da máquina. O código da máquina consiste em instruções binárias brutas (sequências de 0s e 1s) que a unidade de processamento central de um computador (CPU) pode executar diretamente. O código de montagem usa representações simbólicas (mNemonics) para essas instruções, facilitando a compreensão e o código dos programadores.

O que é o código de montagem?

Pense desta maneira:

* Código da máquina: A "língua nativa" da CPU, expressa em binário. Muito difícil para os humanos ler e escrever.
* Código de montagem: Uma tradução do código da máquina em forma simbólica, onde cada instrução é representada por uma palavra curta e memorável (mnemônica). Ainda muito baixo, mas mais compreensível que o binário bruto.
* idiomas de alto nível (por exemplo, C, Java, Python): Línguas abstratas e amigas do ser humano que são compiladas ou interpretadas no código de montagem (ou às vezes diretamente no código da máquina) antes da execução.

Principais recursos do código de montagem:

* mnemonics: Cada instrução de montagem é representada por um mnemônico, como `mov` (move dados),` add` (add), `sub` (subtração),` jmp` (salto), `cmp` (compare), etc.
* Registros: O código de montagem interage diretamente com os registros da CPU. Os registros são pequenos locais de armazenamento de alta velocidade na CPU usados ​​para manter dados e instruções sendo processadas ativamente. Os exemplos incluem `ax`,` bx`, `cx`,` dx` (na arquitetura x86), `r0`,` r1`, etc. (na arquitetura do ARM).
* Endereços de memória: O código de montagem permite a manipulação direta dos endereços de memória. Os programadores podem ler dados de locais específicos de memória e escrever dados para eles.
* Controle direto de hardware: O código de montagem oferece o maior grau de controle sobre o hardware. Os programadores podem manipular componentes específicos de hardware, o que geralmente é impossível ou complicado em idiomas de nível superior.
* arquitetura específica: A linguagem de montagem é específica para uma arquitetura específica da CPU (por exemplo, x86, braço, mips). O código de montagem escrito para uma arquitetura não será executado em outra.

Exemplo (montagem x86):

`` `Assembléia
; Um programa simples para adicionar dois números e armazenar o resultado

Mov ax, 5; Mova o valor 5 para o registro do machado
Mov bx, 10; Mova o valor 10 para o registro BX
Adicione ax, bx; Adicione o conteúdo de BX ao AX (AX agora possui 15)
Resultado mov, machado; Armazene o resultado de Ax em um local de memória chamado "Resultado"
`` `

Neste exemplo:

* `Mov` é o mnemônico para a instrução" mover ".
* `Ax` e` bx` são registros da CPU.
* `Resultado` é um nome simbólico para um local de memória.
* Semicolons (`;`) geralmente introduzem comentários.

Como o código de montagem é usado na programação de computador:

1. compilador e montagem Construção: Os primeiros compiladores e montadores para idiomas de nível superior foram frequentemente escritos em linguagem de montagem. Hoje, eles podem ser escritos em idiomas de nível superior, mas os princípios subjacentes envolvem a compreensão da geração de código de montagem.
2. Desenvolvimento do sistema operacional: Partes críticas dos sistemas operacionais, como rotinas do kernel, drivers de dispositivo e manipuladores de interrupção, são frequentemente escritos no código de montagem. Isso ocorre porque os sistemas operacionais precisam de controle de granulação fina sobre o hardware e devem ser altamente eficientes.
3. sistemas incorporados: Em sistemas incorporados (por exemplo, microcontroladores em aparelhos, carros, dispositivos médicos), a memória e o poder de processamento são frequentemente limitados. O código de montagem permite que os programadores otimizem o código para desempenho e tamanho, garantindo que o sistema opere com eficiência dentro de suas restrições.
4. Engenharia reversa: O código de montagem é crucial para o software de engenharia reversa. Ao desmontar um programa compilado em código de montagem, os programadores podem analisar sua funcionalidade, encontrar vulnerabilidades e potencialmente modificá -lo.
5. otimização de desempenho: Em situações em que o desempenho é crítico (por exemplo, computação de alto desempenho, desenvolvimento de jogos), os programadores podem usar o código de montagem para otimizar partes específicas de um programa. Ao escrever diretamente a montagem, eles podem evitar a sobrecarga do código gerado pelo compilador e aproveitar os recursos específicos da CPU.
6. Entendendo a arquitetura do computador: O Código da Assembléia de Aprendizagem é inestimável para entender como os computadores funcionam em um nível fundamental. Ajuda os programadores a entender a arquitetura da CPU, o gerenciamento de memória e a relação entre software e hardware.
7. Segurança: A compreensão da linguagem da montagem é útil para os profissionais de segurança que precisam analisar malware, identificar vulnerabilidades no software e executar testes de penetração.

O processo de montagem:

1. Escrevendo o Código da Assembléia: Um programador grava código de montagem em um arquivo de texto.
2. montagem: Um * Assembler * é um programa que traduz o código de montagem no código da máquina (código do objeto). Cada instrução de montagem é normalmente traduzida em uma única instrução da máquina.
3. Linking: A * Linker * combina o código do objeto com outros arquivos de objeto e bibliotecas (código pré-compilado) para criar um programa executável. Ele resolve endereços e dependências entre diferentes partes do código.
4. Execução: O sistema operacional carrega o programa executável na memória e a CPU executa as instruções do código da máquina.

Vantagens do Código da Assembléia:

* Controle máximo: Acesso direto aos registros de hardware e CPU.
* Otimização de desempenho: Potencial para código altamente eficiente.
* Entendendo o hardware: Insights profundos sobre como os computadores funcionam.
* Engenharia reversa: Ativa a análise de programas compilados.

Desvantagens do Código de Assembléia:

* Complexidade: Difícil de escrever e depurar em comparação com idiomas de alto nível.
* arquitetura específica: O código não é portátil entre diferentes arquiteturas da CPU.
* demorado: O desenvolvimento leva mais tempo do que com idiomas de nível superior.
* Manutenção: Mais desafiador para manter e modificar grandes programas de montagem.

em resumo:

O código de montagem fornece um link vital entre a programação de alto nível e as instruções da máquina crua que a CPU de um computador executa. Embora seja menos comum para a programação de uso geral hoje, permanece essencial em áreas onde o desempenho, o controle de hardware e um profundo entendimento da arquitetura de computadores são fundamentais. A linguagem de montagem de aprendizado pode melhorar significativamente a compreensão de um programador de como o software interage com o hardware e permitir que eles otimizem o código para obter a máxima eficiência.

Anterior :

Próximo :
  Os artigos relacionados
·Programa C para calcular pesquisa linear e binária? 
·Como usar o Visual Studio para C + + 
·Como enviar um soquete de texto em UDP em Linux 
·Como adicionar dois inteiros grandes em C + + 
·Como Rejeitar os dados que ultrapassam as dimensões 
·O que é um cabeçalho Ctype 
·Como usar caixas de seleção em MFC 
·Como escrever um programa C + + computador que calcula …
·Como mover um objeto com Arrastar no XCode 
·Como limpar um buffer de entrada em C + + 
  Artigos em destaque
·Como excluir todos os arquivos em uma pasta no Powershe…
·Como faço Combine colunas com MySQL 
·Como alterar o nome lógico -Volume 
·Como enviar uma mensagem SMS com um script PHP 
·Como converter AS3 para Java 
·Diferença entre Orientada a Byte I /O & Character I /O…
·Como configurar o Esquema MIT para SICP 
·Como eliminar de várias tabelas com PHP em MySQL 
·Como fazer um arquivo SWF em um botão URL 
·Como começar com NetBeans UML 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados