Este website utiliza cookies na gestão de autenticações, navegação e outras funcionalidades que lhe disponibilizam uma melhor experiêcncia de utilização. Ao utilizar o nosso website, você aceita que nós coloquemos este tipo de cookies no seu dispositivo.
A linguagem de programação Assembly é tida por muitos como um “bicho de sete-cabeças”, por ser muito próxima do código máquina dos computadores e um pouco diferente das linguagens de alto nível como o C#. Para ajudar a “enxotar o papão, sugerimos este livro da Editora No Starch Press - The Art of Assembly Language.
O Assemby, tal como já o afirmámos, é uma linguagem de programação de baixo nível, que está a apenas um nível do código máquina que os computadores entendem. Esta é uma linguagem mais utilizada para quando necessitamos de interagir directamente com o hardware, como por exemplo num driver de um periférico, emuladores, etc. e possui uma sintaxe que talvez por ser pouco “amigável”, afasta muitos programadores. Por isso mesmo, e por não existirem muitos interessados em meter as mãos neste tipo de código, é uma boa oportunidade para muitos programadores, pois tratando-se de um nicho de mercado no mundo da programação comercial, a concorrência não é muito forte.
Este livro, que é escrito em inglês, é uma reedição da obra de Randall Hyde, com o mesmo nome, que foi impressa em 1996, e que fazia uma abordagem compreensiva à programação em Assembly , introduzindo-nos nas arquitecturas de 32-bits x86, destinada aqueles que nunca tinham tido contacto com a linguagem. Foi introduzida a ferramenta de aprendizagem, que também é utilizada nesta edição, o HLA – High Level Assembler, que incorpora muitas das funcionalidades das linguagens de alto nível como o Java ou o C, de forma a nos familiarizar mais facilmente com os conceitos do Assembly. O HLA possibilita-nos programar num nível mais baixo, utilizando ao mesmo tempo alguns conceitos das linguagens de mais alto nível.
Esta excelente obra da Editora Californiana No Starch Press, possibilita-nos uma aprendizagem fácil passo a passo da linguagem Assembly, desde os conceitos mais teóricos aos fundamentos funcionais da mesma. Alguns dos conceitos que iremos aprender são por exemplo, compilar e editar programas em HLA; declaração e uso de variáveis, ponteiros, constantes, estruturas, uniões e namespaces; tradução de expressões aritméticas; conversão de estruturas de controlo de alto nível, entre outros.
A razão que levou a No Starch a lançar uma nova edição deste livro, deve-se ao facto de poder assim desta forma incorporar as mais recentes alterações do HLA, para suportar também Linux, Mac OS e FreeBSD.
O livro The Art of Assembly Language – 2.ª Edição – é destinado a todos os que sejam entusiastas das novas tecnologias, quer sejam ou não iniciantes na programação, pois o livro está escrito de uma forma simples, cheio de exemplos ilustrativos e práticos, que nos ajudam a absorver melhor os conceitos, mesmo que não tenhamos experiencia em programação.
A Editora Norte-Americana No Starch Press, está sedeada na Califórnia, em São Francisco, e especializou-se na publicação de livros na área das Tecnologias da Informação e Comunicação, ou “entretenimento para Geeks” como a própria Editora afirma no seu site. Trata-se de uma Editora ainda um pouco desconhecida no nosso país, mas de grande relevo internacional, pela qualidade das suas obras e pelos temas que aborda de forma aprofundada e rigorosa.
Randall Hyde é autor e co-autor de várias obras da No Starch PRess, como por exemplo Write Great Code Volumes 1 e 2, assim como escreve várias colunas em jornais e revistas. Ele lecciona à mais de uma década, a Linguagem de Programação Assembly na Universidade da Califórnia, em Riverside.
Capítulo 1: Hello, World of Assembly Language – Capitulo introdutório onde somos introduzidos ao HLA, declaração de dados, instruções máquina e arquitecturas de CPU Intel;
Capítulo 2: Data Representation – Sistemas de numeração (binário e hexadecimal), organização de dados binários, operações aritméticas, pois muito do que iremos aprender neste livro irá depender da aprendizagem destes conceitos, por isso ler este capítulo é fundamental;
Capítulo 3: Memory Access and Organization – Neste capítulo iremos aprender a manipular dados numa stack 80X86, assim como alocação dinâmica de memória na heap. São nos apresentados também alguns conceitos como indexação de endereçamentos, organização das memórias, alocação de memória pelos programas, etc.;
Capítulo 4: Constants, Variables, and Data Types – Tal como o nome indica, este capítulo incide sobre o tratamento de variáveis, constantes, arrays, ponteiros e todas as estruturas de dados básicas numa introdução à aprendizagem de uma linguagem de programação.
Capítulo 5: Procedures and Units – Discussão da linguagem de alto nível HLA e sua sintaxe;
Capítulo 6: Arithmetic – Noções de aritmética computacional, onde iremos aprender a traduzir expressões aritméticas de linguagens de alto nível como o C ou Pascal e C++, para linguagem 80x86 Assembly ;
Capítulo 7: Low-Level Control Structures – Neste capítulo iremos abordar as estruturas de controlo de baixo nível, sendo que aqui iremos tratar do Assembly puro e duro, e deixaremos de usar a “muleta” do HLA, para começarmos a tratar verdadeiramente o Assembly por “tu”.
Capítulo 8: Advanced Arithmetic – A aritmética avançada será o tema principal deste capítulo, que lida com aquelas operações aritméticas para as quais o Assembly está mais talhado.
Capítulo 9: Macros and the HLA Compile-Time Language – Este capítulo analisa o HLA Compile-Time Language, incluindo umas das suas vertentes, as macros, Conversão de tipos por funções Compile Time, Compilação condicional, tratamento de erros de compilação, etc.
Capítulo 10: Bit Manipulation – Manipulação de Bits, onde iremos ver o que são Bits, manipulação de Bits, instruções, arrays de strings de Bits, etc.
Capítulo 11: The String Instructions – Aqui iremos trabalhar com mais detalhe as strings, que são colecções de valores alocados em espaços contíguos de memória. Esta apresentação e discussão serão enquadradas dentro da arquitectura do processador 80x86.
Capítulo 12: Classes and Objects – Por fim iremos aprender um dos conceitos mais utilizados nas linguagens de programação de alto nível mais modernas, os objectos.
Autor: Randall Hyde
Março 2010, 760 pág.
ISBN: 978-1-59327-207-4