Simulador neander x
INSTITUTO DE INFORMÁTICA - DEPARTAMENTO DE INFORMÁTICA APLICADA
INF01107 - Arquitetura e Organização de Computadores I – Turma A - 2008
Trabalho Prático 1 - Simulador NEANDER
Escrever um programa para o simulador Neander que implemente as quatro operações aritméticas básicas (soma, subtração, multiplicação e divisão) sobre números inteiros positivos, representados em complemento de dois (ou seja, os operados estão na faixa entre 0 e 127, inclusive).
Para a definição da operação devem ser obrigatoriamente utilizadas as seguintes posições:
Palavra 128 – primeiro operando da operação Palavra 129 – segundo operando da operação Palavra 130 – código da operação (1: soma, 2: subtração, 3: multiplicação, 4: divisão) Palavra 131 – resultado da operação Palavra 132 – código de erro (veja abaixo)
Não é necessário realizar nenhum teste sobre a correção do resultado, ou seja, eventuais "vai-um" ou estouros de representação devem ser ignorados. A operação de divisão corresponde a uma divisão inteira, ou seja, o quociente é um número inteiro e o resto é descartado. A correção da entrada deve ser indicada através dos seguintes códigos no endereço 132:
Código 0: entrada correta Código 1: operando(s) fora da faixa, ou seja, negativo(s) Código 2: operandos dentro da faixa, mas código de operação inválido Código 4: tentativa de divisão por zero
Em caso de erro, deve ser devolvido zero como resultado da operação.
Os valores das posições 128 a 130 de memória não devem ser alterados pelo programa.
Dicas:
1. O simulador Neander não possui operação de subtração. Entretanto, uma subtração pode ser transformada em uma soma através do complemento do subtraendo.
2. O simulador Neander não possui operação de multiplicação. Entretanto, uma multiplicação não é nada mais que uma série de somas sucessivas.
3. O simulador Neander não possui operação de divisão. Entretanto, o