NOTA: esta foi uma interpretação que fiz do código-esqueleto do reduce.asm que os Profs disponibilizaram no CLIP. Poderá nao estar totalmente correcta sté porque ha instruções das quais ainda não falámos. start: - lê tamanho de vector e coloca em size - faz copia do mesmo pa t0 - mete t1 a apontar para posicao 1 buf input_loop: - lê os elementos da seq e vai mentendo-os por ordem no vector (avançando com t1) - a medida que vao sendo colocados, diminui o numero dos que falta colocar, i.e., diminui t0 SE t0=0 (quer dizer que ja todos foram arrumados no vector) => salta para print_buf SE NAO => arruma até condição acima se verificar print_buf: - coloca novamente t1 a apontar para base do vector buf - renicializa t0 com size vector, i.e., passa a dizer quantos elementos la estao arrumados print_buf_loop: SE t0=0 (i.e, nao houver elementos arrumados no vector buf) => salta para print_nl SE NAO => printa 1º elemento vector buf, decrementa size t0 (counter) e repete operação até todos os elementos terem sido printados (=> t0=0) (faz isto avançando com t1) [no a0 vai mentendo os elementos do vector buf que sao passadas para o v0 com espaços ' ' para forma linha com os inteiros igualmente espaçados. Esta linha recebe um enter no print_nl] print_nl: - apenas para receber enter ('\n') entre cada linha a printar de inteiros somar_buf: - meu código => tem que somar os pares e rearranjar vector - no final salta sempre para print_buf fim: - apenas termina programa ____________ correr: $  java  -jar  Mars_4_2.jar  reduce.asm  <  input.txt $ java -jar Mars_4_2.jar reduce_actual.asm < input.txt