Arquivo da tag: Programming

Assembly Programming – Parte 1


Bom depois de muito tempo sem artigos estou de volta para começar uma série em assembly programming básico.

Assembly é a linguagem mais próxima dos 0’s e 1’s (que é a única coisa que o computador entende).
Em qualquer outra linguagem de programação o compiler tem o trabalho de traduzir seu código (high level) para assembly (low-level) e dai o assembler converte para 1’s e 0’s. então se você não tem a mínima ideia de como o computador processa cada instrução ou como pode o computador entender somente 1’s e 0’s eu recomendo o livro ” Computer Organization and Design ” by David A. Patterson e John L. Hennesy.

Nesse tutorial estaremos usando o simulador MIPS, que utiliza o processador do tipo RISC. Cada processador tem comandos diferentes na sua linguagem assembly. É por isso que se você escrever um programa assembly para MIPS, o mesmo não ira funcionar em um processador Intel ou AMD. Processadores Intel e AMD tem uma tabela de commandos muito similar e isso minimiza os problemas de compatibilidade entre eles.

Aonde eu usaria assembly ? Por ser uma linguagem low-level é extremamente rápida se utilizada de maneira correta. Assembly também é muito utilizado quando você quer se comunicar diretamente com o hardware do computador, por isso é utilizado também para criar drivers para devices. E se você ainda não esta convencido a aprender assembly, eu te digo que se você sempre imaginou como alguém pode criar um crack para uma aplicação… É utilizando uma técnica chamada disassembly, que simplesmente converte o .exe para assembly e assim você pode ver o que esta acontecendo na aplicação e descobrir como a aplicação utiliza aquele serial que você entrou na instalação.

No próximo artigo entraremos a fundo na syntax da linguagem.

Boa sorte a todos e não se esqueça de aprender como o computador processa instruções antes de ler a próxima parte.

Abraços