1.1 Introdução

Linguagem Assembly

Diferentemente de outras linguagens de programação, para se programar em Assembly é necessário ter conhecimento da arquitetura do processador para o qual o código está sendo desenvolvido. Também, diferentemente das outras linguagens de programação, o código objeto não é gerado por um compilador, e sim por um montador (Assembler).

Existem algumas sintaxes diferentes para os montadores, como o BAL (Basic Assembly Language), usada em mainframes da IBM, o NASM (Netwide Assembler), usada em arquitetura Intel x86, entre outras. Aqui usamos o montador GNU Assembler (as), com a nova sintaxe unificada (UAL=Unified Assembler Language).

O GNU Assembler, comumente conhecido como gas, ou simplesmente como as, o nome de seu executável, é o montador usado pelo Projeto GNU. É a retaguarda padrão do GCC.

Os programas escritos em Assembly não são portáveis, porque existe uma correspondência muito forte entre as instruções da linguagem e a arquitetura do processador. Embora exista o desenvolvimento cruzado, este não é tratado aqui.

Versão

pi@raspberrypi:~ $ as -v
GNU assembler version 2.31.1 (arm-linux-gnueabihf) using BFD version (GNU Binutils for Raspbian) 2.31.1

Referências: