INF1018 - Software Básico

Assembly: Exercício Extra

Considere um programa composto pelos seguintes módulos:

Crie os arquivos correspondentes a esses módulos e execute o comando a seguir. Esse comando compila os módulos dados.c e main.c e produz o executável prog, que reúne código e dados definidos nesses dois módulos.
gcc -o prog dados.c main.c
Execute o programa gerado, verificando seu resultado.

Repare que o array dados (global) é declarado em um módulo (dados.c) e referenciado em outro (main.c). Essa "referência externa" do módulo main.c é resolvida durante o processo de linkedição (ou amarração) responsável pela geração do arquivo executável.

Traduza agora para assembly o módulo main.c, criando um arquivo mainasm.s. Note que, assim como o módulo C, seu módulo assembly pode conter uma "referência externa" para o símbolo dados!

Use o comando abaixo para gerar o novo executável:

gcc -o prog2 dados.c mainasm.s
Execute o novo programa, e verifique se o resultado é igual ao obtido antes.