Programação  
 
Rede de conhecimento computador >> Programação >> Programação De Computador Idiomas >> Content
Qual é o objetivo e a funcionalidade de uma linguagem de montagem?

Objetivo e funcionalidade da linguagem de montagem



A linguagem de montagem serve como uma linguagem de programação de baixo nível que fornece uma representação legível por humanos das instruções do código da máquina . Ele fica diretamente acima do código da máquina (binário) na hierarquia da linguagem de programação.

Objetivo:

* Ponte a lacuna entre programadores humanos e código da máquina: O código da máquina é difícil para os humanos entenderem e escrever. A linguagem de montagem usa mNemonics (nomes curtos e simbólicos) para representar as instruções da máquina, facilitando o programa de computadores diretamente no nível do hardware.
* Controle direto de hardware: A linguagem de montagem permite que os programadores tenham controle muito preciso e granular sobre os recursos de hardware do computador, como registros de CPU, locais de memória e portas de E/S.
* Otimização: A linguagem de montagem permite o ajuste fino do código para desempenho. Os programadores podem otimizar seções específicas de código para obter velocidade, tamanho ou consumo de energia escolhendo cuidadosamente as instruções da máquina mais eficientes.
* Entendendo a arquitetura do computador: Aprender e usar a linguagem de montagem fornece uma compreensão mais profunda de como a CPU e a memória funcionam. Ajuda os programadores a entender como o código de alto nível é traduzido em instruções da máquina.
* Programação no nível do sistema: A linguagem de montagem é frequentemente usada na programação no nível do sistema, como escrever kernels do sistema operacional, drivers de dispositivos e código de sistemas incorporados, onde o controle e o desempenho diretos de hardware são críticos.
* Engenharia reversa: A linguagem de montagem é crucial no software de engenharia reversa para entender sua funcionalidade, identificar vulnerabilidades ou modificar seu comportamento.

funcionalidade:

* mnemonics: A linguagem de montagem usa mnemônicos para representar as instruções da máquina. Por exemplo, `mov` representa a instrução" move ",` add` representa "adição", "jmp" representa "salto" e assim por diante.
* Registros: Instruções de idioma de montagem manipulam diretamente os registros da CPU. Os registros são pequenos locais de armazenamento de alta velocidade na CPU. Os registros comuns incluem acumulador (por exemplo, `ax`,` eax`, `rax`), registro de base (por exemplo,` bx`, `ebx`,` rbx`), registro do contador (por exemplo, `cx`,` ecx` 'rcx`), registro de dados (e.g., `dx`,` `` `` rcx`), registro de dados (e.g., `cx`,` `` `` rcx`), registro de dados (e.g. (por exemplo, `sp`,` esp`, `rsp`), ponteiro base (por exemplo,` bp`, `ebp`,` rbp`) e ponteiro de instrução (por exemplo, `ip`,` eip`, `rip`).
* Acesso à memória: As instruções de linguagem de montagem permitem que os programadores leiam e gravem em locais específicos de memória. Os programadores podem especificar endereços diretamente ou usar registros para conter endereços de memória.
* Modos de endereçamento: As linguagens de montagem oferecem vários modos de endereçamento para acessar dados na memória, como:
* Endereço imediato: O operando é um valor constante.
* Endereço direto: O operando é um endereço de memória.
* Registre o endereço: O operando é um registro da CPU.
* Endereço indireto: O operando é um registro que contém o endereço de memória.
* Endereço indexado: O operando é calculado adicionando um valor de registro (índice) a um endereço base.
* Fluxo de controle: A linguagem de montagem fornece instruções para controlar o fluxo de execução, como:
* Jump (jmp): Salto incondicional para um endereço especificado.
* saltos condicionais (JE, JNE, JG, JL, etc.): Salte para um endereço especificado com base no status dos sinalizadores da CPU (por exemplo, sinalizador zero, bandeira de transporte, sinalizador de sinal).
* Ligue (ligue): Chame uma sub -rotina (função).
* retornar (ret): Retornar de uma sub -rotina.
* assembler: O código da linguagem de montagem é traduzido em código de máquina por um programa chamado A Assembler . O assembler lê o código da montagem, traduz cada mnemônico em sua instrução correspondente do código da máquina e gera um arquivo de objeto (por exemplo, `.o`,` .obj`) contendo o código da máquina.
* Linker: Os arquivos de objeto gerados pelo assembler são vinculados por um ligante Para criar um arquivo executável (por exemplo, `.exe`,` .elf`). O vinculador resolve referências entre diferentes arquivos de objeto e os combina em um único programa executável.
* Diretivas/Pseudo-OPS: O idioma da montagem normalmente inclui diretivas (também chamadas pseudo-opa) que são instruções para o assembler, não as instruções da máquina reais. Essas diretivas são usadas para:
* Defina dados (por exemplo, `db`,` dw`, `dd` para definir bytes, palavras e palavras duplas, respectivamente).
* Alocar memória (por exemplo, `resb`,` resw`, `resd` para reservar memória para bytes, palavras e palavras duplas).
* Defina rótulos (nomes simbólicos para locais de memória ou endereços de código).
* Inclua outros arquivos.
* Controle o processo de montagem.
* macros: A linguagem de montagem suporta macros, que são modelos de código que podem ser expandidos pelo assembler. As macros permitem que os programadores definam trechos de código reutilizáveis, reduzindo a duplicação de código e melhorando a manutenção de código.

Exemplo (Assembléia Intel X86):

`` `Assembléia
; Exemplo:adiciona dois números e armazena o resultado em memória

Seção .Data
Num1 DW 10; Defina uma palavra (2 bytes) variável num1 com valor 10
Num2 DW 20; Defina uma variável de palavra num2 com o valor 20
resultado dw 0; Defina um resultado variável da palavra, inicializado para 0

Seção .Text
Global _start; Ponto de entrada para o programa

_começar:
mov ax, [num1]; Mova o valor de num1 para o registro do machado
adicione ax, [num2]; Adicione o valor de num2 ao registro do AX
mov [resultado], machado; Mova o valor no registro do AX para o local da memória do resultado

; Saia do programa (específico da plataforma, este é o exemplo do Linux)
mov eax, 1; SYS_EXIT SYSCALL Número
xor ebx, ebx; Código de saída 0
int 0x80; Ligue para o kernel
`` `

em resumo:

A linguagem de montagem é uma ferramenta poderosa para programadores que precisam de controle de baixo nível sobre hardware, desempenho ideal ou um profundo entendimento da arquitetura de computadores. Embora possa ser mais complexo e demorado para escrever do que os idiomas de alto nível, oferece controle incomparável e potencial de otimização em situações específicas. Suas aplicações são frequentemente encontradas em programação no nível do sistema, sistemas incorporados e engenharia reversa.

Anterior :

Próximo :
  Os artigos relacionados
·Como editar hiperlinks em HTML 
·Quais peças do computador começam com a letra c? 
·PowerShell Funções de data 
·Como excluir o primeiro elemento da seqüência C 
·Como compilar um programa QBasic 
·Código FCM em MATLAB 
·Como usar o Force Feedback Com GTA IV para a Xbox 
·Quais são os usos do código ASCII? 
·Qual é o significado das linguagens sem contexto de in…
·Como projetar um carrinho de compras 
  Artigos em destaque
·Como criar um contador de PHP 
·Como para encerrar o aplicativo atual em Visual Basic 6…
·Como copiar um site PHP 
·Como usar a instrução foreach em PHP 
·Como compilar Flex para iPhone 
·Como programar TI- 83 Plus Jogos 
·Como criar um site High-Tech 
·Como determinar quando usar Python 
·O que é o NetBeans Desenvolvimento 
·Como fechar serviços WCF 
Cop e direita © Rede de conhecimento computador https://ptcomputador.com Todos os Direitos Reservados