Linguagem assembly: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Etiquetas: Edição via dispositivo móvel Edição feita através do sítio móvel
→‎Arquitetura: Correção de informações e adição de fonte.
Etiquetas: Edição via dispositivo móvel Edição feita através do sítio móvel
Linha 10:
 
== Arquitetura ==
Ao contrário do que acontece nas [[Linguagem de programação de alto nível|linguagens de alto nível]], existe (até certo ponto) uma correspondência de 1 para 1 entre ao linguagemcódigo de montagem simplesprogramado e ao linguagem de máquinaresultante. PorIsto issoé, auma traduçãoinstrução do códigoprograma deequivale montagemà emuma códigooperação de máquina não é chamadado computador.<ref>[[compilador|compilação]], mas montagemhttp://www.diegomacedo.com. Conseguebr/conversoes-se transformar a linguagem de -linguagens-traducao-montagem-compilacao-ligacao-e-interpretacao/ em linguagemConversões de máquinaLinguagens: recorrendoTradução, aMontagem, um montador (também chamado ''assembler''Compilação, originado do termo assemblé em [[Língua francesa|francês]]){{carece de fontes}},Ligação e a transformação inversa faz-se recorrendo a um [[desmontadorInterpretação]] (também chamado ''disassembler'').</ref>
 
Cada [[arquitetura de computador]] tem seu próprio código de máquina, e cada montador gera códigos para uma arquitetura específica. Cada um desses montadores tem sua própria versão de código Assembly, que pode diferir ao uso de registradores, representação de números, ou até mesmo instruções mnemónicas. E isso pode dificultar um pouco na portabilidade do código, tendo em vista que o mesmo precisaria ser reescrito para poder ser montado para outra arquitetura.
Cada [[arquitetura de computador]] tem a sua própria linguagem de máquina e, portanto, a sua própria linguagem de montagem. Essas linguagens de montagem diferem no número e tipo de operações que suportam. Também têm diferentes tamanhos e números de registradores, e diferentes representações dos tipos de dados armazenados. Enquanto todos os computadores de utilização genérica são capazes de desempenhar essencialmente as mesmas funções, o modo como o fazem é diferente.
 
Além disso, podem existir conjuntos múltiplos de mnemónicas, ou sintaxes de linguagem de montagem, para um único conjunto de instruções. Nestes casos, o conjunto mais popular é aquele que é utilizado pelo fabricante na sua documentação.
 
No mercado de [[Computador pessoal|PCs]], dominado por processadores Intel e AMD, atualmente existem duas arquiteturas. Primeiro a [[IA32]] (genericamente chamada de [[i386]], [[x86]] ou [[x86-32]]), criada pela [[Intel]] em 1985 e primeiramente utilizada pelo [[processador]]es [[i386]] e segundo a [[IA32-EM64T]] (ou [[IA32-AMD64]] ) criada em 2002 pela [[AMD]] (Mas 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 bit]]s os da x86-64 são [[64 bit]]s.{{carece de fontes}}