Programar em Assembly com GAS/Linguagem Assembly

Linguagem Assembly

editar

A linguagem assembly é o ancestral de todas as linguagens modernas de mais alto nível. E mesmo quando falando de linguagens de um nível mais alto, durante a compilação o código é transformado em assembly e a seguir montado. Chama-se montagem o processo de conversão da linguagem Assembly para a linguagem de máquina.

A linguagem assembly é mais leve que qualquer outra linguagem por ser o único código legível pelo homem antes da linguagem de máquina.

Por ter instruções mais próximas as suportadas pela arquitetura e o processador tende a ser mais difícil de se aprender.

Mais se é mais difícil de se aprender que outras linguagens qual é a utilidade?

Vamos a um exemplo simples, quando você liga a sua máquina temos o BIOS que é o primeiro programa a ser executado pelo computador, o BIOS busca um setor de inicialização do disco ativo, um setor ativo é um setor com um código assembly , se encontrar um setor ativo o código assembly será colocado na memória e executado pelo processador.

A linguagem assembly faz uso das instruções para executar operações e graças ao bus interno do processador comunicar com outros controladores que comunicam com os periféricos usando as portas de entrada e saida .

A linguagem assembly também é usada para trabalhar com interrupções ,como as do BIOS ,ou o mecanismo de chamadas ao sistema do Kernel (System Call) ou ainda gerenciar a memória.

O código assembly não é mágico, pois os processadores são diferentes. Tem vários tipos de códigos assembly para para vários tipos de processadores ou arquiteturas diferentes.

Nesse livro vamos trabalhar com o assembly do GNU, que tem como montador um programa chamado "as" para arquiteturas x86. Então podemos dizer que se você quer saber realmente como funcionam os componentes do hardware e os utilizar, é preciso aprender uma linguagem de baixo nível como o assembly .

Se você estiver interessado em fazer um jogo 3D não tem muita utilidade aprender essa linguagem.

Algumas das utilizações mais significativas da linguagem assembly é para desenvolver bootloader , kernel e drivers de um sistema operacional.

Espero que você não esta vindo sem nada na sacola, a linguagem assembly é simples e fácil, mais se você ainda não sabe programar não aconselho começar por aqui.

Comece aprendendo a "linguagem C" por ser uma linguagem de um nível mais alto do que a linguagem assembly e mais baixo do que as outras. Ao mesmo tempo a "linguagem C" é a base de várias outras linguagens como "C++", "Python", etc.

Livros

editar