Linguagens de Montagem
Linguagens de Montagem é um livro didático da Série SBC/Campus.
ISBN (versão digital): 978-85-352-8521-5
Audiência
O material do livro é direcionado para cursos de graduação em Ciência ou Engenharia de Computação, cursos técnicos de formação em Computação, ou ainda cursos de graduação em Engenharia Elétrica ou Mecatrônica. É necessário conhecimento básico em programação; vários exemplos usam a linguagem C, mas apenas como forma de ilustrar a tradução de comandos básicos de uma linguagem de alto nível para linguagem de montagem. Conhecimento de outra linguagem, como Java ou Pascal, também é adequado para acompanhar os exemplos.
Organização do livro
O livro apresenta o conjunto de instruções e a linguagem de montagem correspondente de dois processadores: um fictício, didático, e um real, comercial. Na primeira parte do livro é apresentado o processador didático, chamado LEG. No entanto, para um melhor entendimento de linguagens de montagem, é imperativo estudar também um processador real. Assim, na segunda parte do livro é apresentado o processador ARM, atualmente um dos mais utilizados comercialmente, presente principalmente em dispositivos móveis, como tablets e telefones celulares.
Há vantagens e desvantagens em usar um processador fictício. A principal vantagem é que, livre das restrições que processadores reais têm, como consumo de energia, custo e tamanho, um processador fictício pode ser muito mais didático, com instruções codificadas de maneira simples, que pode ser facilmente entendida e mesmo montada manualmente. Além disso, o conjunto de instruções pode demonstrar as principais características de um processador real, como diferentes modos de endereçamento, mas mantendo um número pequeno de instruções. Por outro lado, a desvantagem é que ferramentas de software existentes, como montadores e ligadores, não podem ser usados, e não é possível executar exemplos do livro diretamente em computadores e sistemas operacionais reais. Para solucionar esse problema são fornecidas ferramentas para montar e executar código no processador fictício, como descrito na Seção Ferramentas.
O livro está organizado da seguinte maneira. No Capítulo 1 vamos estudar como a informação é representada na memória do computador, aprendendo como são representados números inteiros, números fracionários e caracteres. O Capítulo 2 traz uma primeira introdução ao processador LEG e à organização básica de computadores, mostrando como funciona um processador e sua comunicação com memória e dispositivos de entrada e saída. O Capítulo 3 introduz linguagens de montagens e descreve o funcionamento de um montador simples de dois passos, para montar um programa contido em um único arquivo, para que os leitores conheçam como um programa-fonte é processado de forma a poder ser executado pelo computador.
Os Capítulos de 4 a 8 apresentam em detalhes o repertório de instruções do processador LEG, com vários exemplos de programação, sendo que o Capítulo 7 trata mais especificamente da implementação de procedimentos. O Capítulo 8 trata de entrada e saída, mostrando as dificuldades e soluções para a comunicação do processador com o mundo exterior.
A segunda parte do livro apresenta, como estudo de caso, o processador ARM. Da mesma forma que no caso do processador LEG, o repertório de instruções do ARM é apresentado e ilustrado através de vários exemplos de programas, nos Capítulos de 9 a 13.
Finalmente, no Capítulo 14 são apresentados conceitos complementares ao estudo de linguagens de montagem: uma visão mais geral do funcionamento de montadores para o caso de programas formados por vários módulos descritos em arquivos separados, e o funcionamento de ligadores para juntar, em tempo de montagem ou em tempo de execução, os módulos montados separadamente pelo montador.