Desenvolva um programa em Simpletron Machine Language, que apresente a sequência de Tribonacci, definida recursivamente pela fórmula Fn = Fn-1 + Fn-2 + Fn-3, sendo F0 = 0, F1 = 1 e F2 = 1. O valor de n será fornecido pelo usuário, devendo ser um valor inteiro maior ou igual a zero. Por exemplo, caso o valor fornecido pelo usuário para n seja 6, o programa deverá apresentar como resposta a sequência de números 0 1 1 2 4 7 13. Caso o usuário forneça um valor inválido para n, o programa deverá apresentar como resposta o valor -1.
| Posição | Palavra | Instrução |
|---|---|---|
| 00 | +1022 | read N |
| 01 | +2022 | load N |
| 02 | +4119 | branch negative to 19 |
| 03 | +1123 | write A |
| 04 | +4220 | branch zero to 20 |
| 05 | +2023 | load A |
| 06 | +3024 | add B |
| 07 | +3025 | add C |
| 08 | +2126 | store D |
| 09 | +2024 | load B |
| 10 | +2123 | store A |
| 11 | +2025 | load C |
| 12 | +2124 | store B |
| 13 | +2026 | load D |
| 14 | +2125 | store C |
| 15 | +2022 | load N |
| 16 | +3021 | add -1 |
| 17 | +2122 | store N |
| 18 | +4003 | branch to 03 |
| 19 | +1121 | write -1 |
| 20 | +4300 | halt |
| 21 | -0001 | constant -1 |
| 22 | +0000 | variable N |
| 23 | +0000 | variable A |
| 24 | +0001 | variable B |
| 25 | +0001 | variable C |
| 26 | +0000 | variable D |
Welcome to Simpletron!