Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

Desenvolva um programa em Simpletron Machine Language, que apresente os n primeiros termos da sequência yk+1 = 2 * yk, 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 2 4 8 16. 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
y2 = 2 * y1 = 2
y3 = 2 * y2 = 4
y4 = 2 * y3 = 8
y5 = 2 * y4 = 16

 

Programa em Simpletron Machine Language que apresenta os n primeiros termos da sequência yk+1 = 2 * yk
PosiçãoPalavraInstrução
00+1017read N
01+2017load N
02+4113branch negative to 13
03+4213branch zero to 13
04+1118write S
05+2018load S
06+3316multiply 2
07+2118store S
08+2017load N
09+3015add -1
10+4214branch zero to 14
11+2117store N
12+4004branch to 04
13+1115write -1
14+4300halt
15-0001constant -1
16+0002constant 2
17+0000variable N
18+0001variable S
Welcome to Simpletron!