Entendendo Assembly: Um Guia Detalhado com Exemplos
Classificado em Computação
Escrito em em português com um tamanho de 2,65 KB.
Assembly
Assembly é a linguagem de programação. Significa linguagem de montagem. É considerada a linguagem de mais baixo nível.
Assembler
Assembler é o programa montador. Tem a função de compilar o programa escrito em Assembly. Exemplo: Debug, emu8086.
Linguagem de Máquina
Linguagem de máquina são códigos binários que o processador unicamente opera. É o código mais rapidamente executado pelo processador, pois dispensa decodificação.
Linguagem de Baixo Nível
Linguagem de baixo nível possuem recursos que facilitam a leitura das instruções, porém são limitadas e complexas. São rápidas, pois estão muito próximas (semelhantes) à linguagem de máquina.
Linguagem de Alto Nível
Linguagem de alto nível a codificação se aproxima da linguagem natural, sendo que uma única linha de instrução comporta muitas operações, se comparada à linguagem de baixo nível.
Exemplo de Código em Assembly
1 a 0100
2 0CA3.0100 MOV CX,0003
3 0CA3.0103 MOV AX,000A
4 0CA3.0106 MOV BX,CX
5 0CA3.0108 DIV BX
6 0CA3.010A LOOP 0106
Explicação do Código
0100: referencia o endereço 0100 da memória para iniciar a codificação e manter as instruções na memória (a partir do endereço 0100).
MOV CX, 0003: move o valor hexadecimal 3 para o registrador CX.
MOV AX, 000A: move o valor hexadecimal 000A (10, em decimal) para o registrador AX.
MOV BX,CX: move o conteúdo atual do registrador CX para BX
DIV BX: realiza a divisão AX/BX e coloca o quociente em AX
LOOP 0106: as instruções, a partir do endereço inicial 0106 são repetidas. CX é decrementado em uma unidade até que seja igual a 0 e, assim, o LOOP encerra.
Questão
Qual o último valor armazenado nos registradores AX, BX, CX e DX, após execução completa do código?
Resposta
AX = 0004
BX = 0001
CX = 0000
DX = 0000
Reprodução do Código em C
int AX = 10;
for (int i=3, i>0, i--)
AX = AX - i;
Análise do Código no Debug
a 0100
MOV AX,0002
MOV BX,0002
MUL BX
MOV BX,AX
MOV AX,0008
DIV BX
Correção de Erros
Linha 25: MUL BX
Linha 34: CMP AX,5d
Linha 44: CALL escreve
Resultado Final
Informando o resultado final de AX: AX = 6