Desenvolva um programa em Simpletron Machine Language, que apresente os n primeiros termos da sequência yk+1 = yk + (2 * k + 1), sendo k = 1, 2, ..., n e y1 = 1. O número de termos será fornecido pelo usuário, devendo ser um valor inteiro e positivo. Por exemplo, caso o número de termos fornecido pelo usuário seja 5, o programa deverá apresentar como resposta a sequência de valores 1 4 9 16 25. Caso o usuário forneça um valor inválido para o número de termos, o programa deverá apresentar como resposta o valor -1.
y1 = 1| Posição | Palavra | Instrução |
|---|---|---|
| 00 | +1021 | read N |
| 01 | +2021 | load N |
| 02 | +4116 | branch negative to 16 |
| 03 | +4216 | branch zero to 16 |
| 04 | +2020 | load 2 |
| 05 | +3322 | multiply I |
| 06 | +3019 | add 1 |
| 07 | +3023 | add Y |
| 08 | +2123 | store Y |
| 09 | +1123 | write Y |
| 10 | +2022 | load I |
| 11 | +3019 | add 1 |
| 12 | +2122 | store I |
| 13 | +3121 | subtract N |
| 14 | +4104 | branch negative to 04 |
| 15 | +4300 | halt |
| 16 | +1118 | write -1 |
| 17 | +4300 | halt |
| 18 | -0001 | constant -1 |
| 19 | +0001 | constant 1 |
| 20 | +0002 | constant 2 |
| 21 | +0000 | variable N |
| 22 | +0000 | variable I |
| 23 | +0000 | variable Y |
Welcome to Simpletron!