Programar em Assembly com GAS/Porque usar GNU assembler?

Origem: Wikilivros, livros abertos por um mundo aberto.

Porque usar GNU Assembler "as"?[editar | editar código-fonte]

O GNU assembler está licenciado sob GPL, que garante alguns direitos básicos ao usuários como estudar, adaptar e ou modificar e também de redistribuir o programa, desde que o próximo utilizador tenha os mesmos direitos.
Com isso temos a segurança de usar um software livre, uma ferramenta a qual sabemos que amanhã ou depois não vai passar em licença privativa como é o caso de alguns programas da free software.

Outra vantagem é que ferramentas da GNU, assim como a maioria dos projetos de software livre, estão em constante desenvolvimento.

O GNU assembler é utilizado para trabalhar com arquiteturas de processadores da família x86. Fazem parte da família x86 os processadores que guardam uma certa compatibilidade com as instruções do processador intel 8086.

O GNU assembler usa a sintaxe AT&T para seu código assembly ao contrario de outros que usam a sintaxe INTEL.


GNU Assembler, GNU e Software Livre[editar | editar código-fonte]

Para quem não sabe o que é GNU. O GNU é, a princípio, um projeto de Sistema Operacional compatível com sistemas Unix, porém, hoje é usado como parte fundamental o sistema operacional Linux em seu núcleo ou "kernel" significa raiz , geralmente chamados GNU/Linux.
O projeto GNU, também tem outros núcleos um pouco menos populares que o Linux pois requerem um certo conhecimento para a utilização. São o HURD e o Mach que é utilizado no kernel do Mac em conjunto com o XNU .
Diversos programas desenvolvidos pelo projeto GNU como o editor de textos Emacs, o gerenciador de desktop GNOME e o compilador GCC, podem ser usados em diversos sistemas operacionais como MacOS, OpenSolaris, BSDs, Microsoft Windows, BeOS etc. Assim como diversos Sistemas Operacionais os programas GNU, e Software Livre em geral, também suportam diversas arquitetura de processadores.

O GNU assembler (as), faz parte do pacote binutils (as é o nome do executável).