Diferença chave – linguagem de máquina vs linguagem assembly
Linguagens de programação permitem que humanos criem instruções para um computador realizar tarefas. Existem três categorias de linguagens de programação, como linguagens de programação de alto nível, linguagem de montagem e linguagem de máquina. As linguagens de programação de alto nível são mais fáceis para os humanos entenderem. A linguagem reconhecida por um computador é conhecida como linguagem de máquina. A linguagem assembly é a linguagem entre as linguagens de alto nível e a linguagem de máquina. A principal diferença entre linguagem de máquina e linguagem de montagem é que, a linguagem de máquina é executada diretamente por um computador e a linguagem de montagem requer que um montador converta em código de máquina ou código objeto para ser executado pela CPU.
O que é linguagem de máquina?
Humanos podem entender linguagens de programação de alto nível. Não é necessário ter um profundo conhecimento da CPU interna, para programar usando linguagens de alto nível. Eles seguem uma sintaxe semelhante à do idioma inglês. Java, C, C++, Python são algumas linguagens de programação de alto nível. Um computador reconhece a linguagem de máquina, mas não entende as linguagens de alto nível. Portanto, esses programas devem ser convertidos em linguagem de máquina compreensível por computador. Esta tradução é feita usando um compilador ou um interpretador.
Figura 01: Linguagem de Máquina de Zeros e Uns.
Uma linguagem de máquina consiste em dígitos binários que são zeros e uma vez. Um computador é um dispositivo eletrônico digital, por isso usa binário para operações. Um indica o estado verdadeiro/estado ligado enquanto zero indica o estado falso/estado desligado. A maneira de converter um programa de linguagem de alto nível para linguagem de máquina depende da CPU.
O que é linguagem assembly?
Assembly language é a linguagem intermediária entre as linguagens de programação de alto nível e a linguagem de máquina. É um nível acima da linguagem de máquina. A linguagem assembly é mais fácil de entender do que a linguagem de máquina, mas mais difícil do que as linguagens de programação de alto nível. Essa linguagem também é conhecida como linguagem de baixo nível porque está próxima do nível de hardware. Para escrever programas eficazes usando Assembly, o programador deve ter um bom entendimento da arquitetura do computador e da estrutura de registradores. Um compilador especial conhecido como montador é usado para converter instruções da linguagem assembly em código de máquina ou código objeto.
As instruções da linguagem assembly têm quatro seções. São rótulo, mnemônico, operando, comentário. Rótulo e comentários são opcionais. Mnemônico é a instrução a ser executada e os operandos são parâmetros para o comando. A linguagem assembly também suporta macros. Uma macro pode ser definida como um conjunto de instruções com um nome. Pode ser usado em qualquer outra parte do programa.
Alguns exemplos de instruções em linguagem Assembly são os seguintes.
MOV SUM, 50 – Esta instrução copia o valor 50 para a variável SUM.
ADD VALUE1, 20 – Isto é para adicionar 20 à variável VALUE1
ADD AH, BH – Esta instrução é para copiar o conteúdo do registrador AH para o registrador BH.
INC COUNT – Isto é para incrementar a variável COUNT em um.
AND VALUE1, 100 – Isto é para realizar a operação AND nas variáveis VALUE1 e 100.
MOV AL, 20 – Copia o valor 20 para o registrador AL
Figura 02: Um Programa escrito em linguagem Assembly
Set of Assembly é um programa Assembly. Pode-se ver que a linguagem assembly é mais fácil do que a linguagem de máquina. Tem uma sintaxe semelhante à do idioma inglês. A linguagem assembly tem cerca de trinta instruções. A memória e o tempo de execução necessários são mínimos em comparação com linguagens de alto nível.
Em sistemas de tempo real, pode haver eventos que requerem ação imediata da CPU. Esses eventos são sub-rotinas especiais chamadas Rotina de serviço de interrupção (ISR). A linguagem assembly é útil para programar ISR.
Qual é a semelhança entre linguagem de máquina e linguagem assembly?
A linguagem de máquina e a linguagem assembly estão relacionadas ao nível de hardware
Qual é a diferença entre linguagem de máquina e linguagem assembly?
Linguagem de Máquina vs Linguagem Assembly |
|
Machine language é a linguagem de programação de nível mais baixo onde as instruções são executadas diretamente pela CPU. | Assembly language é uma linguagem de programação de baixo nível que requer um montador para converter em código de máquina/código objeto. |
Compreensibilidade | |
A linguagem de máquina é compreensível apenas para os computadores. | A linguagem de montagem é compreensível para os humanos. |
Sintaxe | |
Uma linguagem de máquina consiste em dígitos binários. | A linguagem assembly segue uma sintaxe semelhante à linguagem inglesa. |
Dependência | |
A linguagem da máquina varia de acordo com a plataforma. | A linguagem assembly consiste em um conjunto padrão de instruções. |
Aplicativos | |
Linguagem de máquina é código de máquina. | A linguagem assembly está sendo usada para sistemas de tempo real baseados em microprocessadores. |
Resumo – Linguagem de Máquina vs Linguagem de Montagem
A diferença entre linguagem de máquina e linguagem de montagem é que a linguagem de máquina é executada diretamente por um computador e a linguagem de montagem é uma linguagem de programação de baixo nível que requer um montador para converter em código objeto ou código de máquina. A linguagem assembly está um passo à frente da linguagem de máquina. A linguagem assembly é uma linguagem ideal para programar sistemas baseados em microcontroladores. Esta linguagem também dá uma boa compreensão de como a CPU está funcionando e sobre os componentes internos do computador.
Baixe a versão em PDF de Machine Language vs Assembly Language
Você pode baixar a versão em PDF deste artigo e usá-lo para fins offline conforme nota de citação. Faça o download da versão em PDF aqui Diferença entre linguagem de máquina e linguagem de montagem
Imagem cortesia:
1.'Machine language'Por Turkei89 – Trabalho próprio, (CC BY-SA 3.0) via Commons Wikimedia
2.'Zstr count x86 assembly' Por OldCodger2, (Domínio Público) via Commons Wikimedia