É muito importante ter uma idéia de como o seu programa em C é transformado em linguagem de máquina pelo computador. Isso pode mudar sua forma de programar.
Para ter uma melhor idéia de como ocorre esse processo de tradução, é interessante escrever alguns pequenos programas em linguagem de montagem. As linguagens de montagem reais podem ser bem complicadas e técnicas, pois os processadores são complicados. Por isso, criei uma linguagem de montagem simples e um montador para ela, o SASM (Simple Assembler). Essa linguagem de montagem é muito próxima ao pouco que vimos na primeira aula.
Minha sugestão é que você escreva vários pequenos programas para essa linguagem de montagem durante o curso. É particularmente instrutivo resolver um exercício em C e depois pensar em como fazer a mesma coisa em linguagem de montagem. Isso vai melhorar seu raciocínio algorítmico e mudar a maneira como você programa.
Para instalar o SASM no seu computador você precisa de um compilador C (SASM foi escrito em C) e do programa make. Se você usa o Linux ou o Mac OS, tanto o compilador quanto o make são fáceis de instalar (eles provavelmente já vêm instalados no Linux; no Mac OS você deve instalar o XCode). Se você usa o Windows, eu sugiro fortemente que você deixe de usá-lo.
Daí basta baixar o SASM:
Entre no diretório que contém o arquivo e digite no terminal:
tar -xvf sasm-0.1.tar.bz2
Isso cria um diretório chamado sasm-0.1. Agora você deve compilar o SASM:
cd sasm-0.1
make
Se tudo correr bem, dentro do diretório sasm-0.1 haverá um arquivo chamado sasm, que é o nosso montador. Para executar um programa SASM você deve escrever algo como:
./sasm programa.sasm
Aqui, suponho que programa.sasm esteja no diretório em que o executável sasm se encontra e que você esteja dentro desse diretório. Se você quiser, pode incluir o diretório do sasm no caminho do sistema, para poder invocá-lo de qualquer diretório (use o Google para descobrir como).
Para começar a usar o SASM, você deve ler o manual de referência cujo link se encontra acima. Depois, explore alguns dos exemplos incluídos. Durante o curso vou disponibilizar alguns outros exemplos.