Aula 05 Introdu o a Assembly
Djalma de Melo Carvalho Filho
Assembly ou linguagem de montagem Código de máquina = padrão de bits específico para uma dada arquitetura de computador; Introdução de mnemônicos = inteligível para o ser humano.
Ex: Seja a instrução (1011000001100001) que pode ser traduzida para MOV AL, 61h
Leve o valor hexadecimal 61h para o registrador AL.
Tradução ou interpretação?
Assembly ou linguagem de montagem Assembly ou linguagem de montagem Existe uma correspondência de de 1 para
1 entre a linguagem de montagem simples e a linguagem de máquina =
Interpretação (montagem)
Interpretador de linguagem de montagem em linguagem de máquina = Assembler;
Cada arquitetura tem a sua própria linguagem de máquina e, logo, a própria linguagem de montagem.
Principais diferenças
Número e tipo de operações que suportam; Número e tipo diferente de registradores;
Representação diferente dos tipos de dados armazenados;
Conjuntos múltiplos de mnemônicas, ou sintaxes de linguagem de montagem para um único conjunto de instruções.
Por que usar?
A maioria dos processadores só consegue manipular os dados que estão em registradores e a linguagem de montagem facilita o trabalho direto com os registradores. Arquiteturas dos processadores
Intel e AMD
IA32 (i386,x86 ou x86-32)
IA32-EM64T (IA32-AMD64)
Criada pela Intel em 1985
Criada em 2002 pela AMD
Primeiro em processadores i386 Utilizada hoje também pela
Intel
Utiliza o grupo de instruções x86 Utiliza o grupo de instruções x86-64 Registradores de 32 bits
Registradores de 64 bits
Registradores de uso geral x86
%EAX – Registrador acumulador;
%EBX – Registrador base;
%ECX – Registrador contador;
%EDX – Registrador de dados;
%ESI – Registrador de índice da fonte dos dados;
%EDI – Registrador de índice do destino dos dados; %EBP – Registrador ponteiro para a moldura de chamada de função;
%ESP – Registrador ponteiro para a pilha de execução.
Registradores de uso geral