O objetivo desta atividade é exercitar a utilização de Macros com o montador Nasm.
Escreva um programa contendo uma Macro chamada fatorial com dois
parâmetros. Ao ser invocada a macro deve gerar uma tabela com um
rótulo denominado fatoriais na área
de dados do programa, contendo em cada entrada da tabela as diretivas:
db i
dw j
onde j é o valor do fatorial de i.
O primeiro parâmetro da macro é o valor de i a partir
do qual a tabela deve ser gerada e o segundo parâmetro é o
valor de i para o último elemento da tabela. Os fatoriais gerados
devem estar limitados a 16 bits e sua macro deve cuidar disto.
Ao ser executado o seu programa deve enviar uma mensagem ao vídeo
contendo o número de entradas da tabela gerada.
Por exemplo, a invocação fatorial 3, 10 deve gerar:
db 3
dw 6
db 4
dw 24
.
.
db 8
dw valor de 8!
Sugestão: utilize a técnica usada na macro para gerar diretivas contendo a sequencia de Fibonacci vista em aula.
Opcional: gere a tabela de fatoriais com precisão de
32 bits. Nesse caso a diretiva dw j deve ser substituída
por dd j.
V. deve também lembrar que variáveis inteiras definidas
dentro de uma macro são internamente números inteiros de
32 bits com sinal.
V. deve submeter: uma impressão do programa no formato .lst (landscape) e fazer uma demonstração no laboratório.
Data de submissão: 08/05/02 Prazo de Entrega: 22/05/02.