Anexo ao Trabalho de Programação
1998/1999
1 Programas
Tal como indicado no enunciado principal, uma das tarefas a realizar durante
o desenvolvimento do trabalho da cadeira é a escrita de alguns programas
no assembly da máquina XIM (ver abaixo). Para que esses
programas possam ser executados pelo simulador a desenvolver, é
necessário traduzi-los para a linguagem máquina do XIM.
Para isso deve ser usado o assemblador disponibilizado aqui.
Para executar o assemblador, deve-se abrir uma janela "Command Prompt"
no Window NT e dar o comando
ximasm divide.asm divide.xim
de modo a que o assemblador traduza o código assembly no
ficheiro divide.asm gerando código
máquina que será guardado no ficheiro divide.xim.
Claro está que os nomes dos ficheiros podem ser outros! Mas
pode começar por usar os ficheiro indicados para experimentar o
assemblador. Pode experimentar também o programa de ordenação
ordena.asm
e ordena.xim, que lê um número
n
seguido de n valores inteiros que depois escreve por ordem crescente.
Para possibilitar aos alunos a compreensão mais profunda do enunciado
já disponibilizado, fornece-se também aqui
uma versão executável dum simulador equivalente aos que os
alunos devem produzir. Experimente usá-lo para executar o
programa divide.xim ou o programa ordena.xim.
Para obter os ficheiros indicados fazer shift-click no Netscape.
No #$%@ do IE, fazer right-click e escolher Save target as
(mas tenha atenção que as extensões ficam .htm
mesmo que se alterem na janela de Save!).
Nota: se não conseguiu correr os programas Xim disponibilizados
(assembly [.asm] e código máquina [.xim]),
isso deveu-se provavelmente a um erro na sua leitura pelo navegador WWW
que usou. Nesse caso peça a um dos docentas da cadeira uma
versão em disquete.
2 Programas assembly a desenvolver
Há quatro enunciados diferentes, E0, E1, E2 e E3. Cada grupo
deverá resolver apenas um deles. Se o número do grupo
for n esse grupo deverá resolver o enunciado Em sendo
m
= n % 4. Por exemplo, o grupo ETI13 deverá resolver
o enunciado E1. Os números dos grupos são os publicados
na última pauta afixada.
Todos os programas deverão ser adequadamente comentados, nomeadamente
contendo a PC a CO e a CI de cada ciclo usado.
Enunciado E0
Escreva um programa no assembly do XIM que leia um número
inteiro n seguido de uma sequência de n números
inteiros e escreva o maior desses n números inteiros.
Admita que n > 0.
Enunciado E1
Escreva um programa no assembly do XIM que leia um número
inteiro n seguido de uma sequência de n números
inteiros e de dois números inteiros min e max e escreva
1 se todos os n números da sequência se encontram entre
min
e max e 0 no caso contrário.
Enunciado E2
Escreva um programa no assembly do XIM que leia um número
inteiro n seguido de uma sequência de n números
inteiros e de um número inteiro x e escreva no ecrã
o índice da primeira ocorrência de x na sequência
de números inteiros introduzida. Se x não existir
na sequência o programa deve escrever no ecrã o número
n.
Enunciado E3
Escreva um programa no assembly do XIM que leia um número
inteiro n seguido de uma sequência de n números
inteiros e escreva no ecrã o valor da soma de todos os números
inteiros introduzidos.