Assembly no Linux/Introdução: diferenças entre revisões

[edição não verificada][edição não verificada]
Conteúdo apagado Conteúdo adicionado
m formatação (ficou bom?)
Linha 1:
Uma '''linguagem de montagem'''' ou ''assembly'' é uma notação legível por humanos para o código de máquina que uma arquitectura de computador específica usa. A linguagem de máquina, que é um mero padrão de ''bits'', torna-se legível pela substituição dos valores em bruto por símbolos chamados mnemônicos.
 
Por exemplo, enquanto um computador sabe o que a instrução-máquinamáquin<code>a IA-21 (10110000 01100001</code>) faz, para os programadores é mais fácil recordar a representação equivalente em instruções mnemônicas <code>MOV AL, 61h</code>. Tal instrução ordena que o valor hexadecimal <code>61</code> (97, em decimal) seja movido para o registrador '<code>AL</code>'.
 
* A tradução do código de montagem em código de máquina não é chamada compilação, mas montagem;
* Cada arquitetura tem sua própria linguagem de maquina, então, cada uma tem sua própria linguagem de montagem;
* Embora todos os computadores de utilização genérica são capazes de desempenhar essencialmente as mesmas funções, o modo como o fazem é diferente;
* 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;
* No mercado de PCs, dominado por processadores Intel e AMD, atualmente existem duas arquiteturas. Primeiro a IA32 , criada pela Intel em 1985 e primeiramente utilizada pelo processadores i386 e segundo a IA32-EM64T (ou IA32-AMD64 ) criada em 2002 pela AMD (Masmas também utilizada pela Intel hoje). O IA32 utiliza o grupo de instruções chamado x86, e o IA32-EM64T utiliza o grupo chamado x86-64. As duas arquiteturas usam números diferentes de registradores gerais e tamanho. Enquanto os registradores do x86 são 32 ''bits'' os da x86-64 são 64 ''bits''.