CI1068 © Roberto André Hexsel, 2019-2020Da tarefa (ii), vale 2,5 pontos da média
Suas respostas devem ser enviadas por e-mail para rhexsel@gmail.com, até as 23:59 de amanhã, com arquivos texto contendo o código assembly. Seu programa será executado e só receberá crédito caso produza resultados corretos. Plágio não será tolerado, podendo acarretar um inquérito disciplinar. O trabalho pode ser efetuado em duplas. Os dois nomes são parte da resposta.
Problema 2: Traduza para assembly do Mico XII o programa Pascal abaixo. A primeira instrução deve ser alocada no endereço 0 da memória de programa, e deve fazer o registrador sp (re) apontar para o endereço 0xffff: addi sp, r0, ffff O vetor de dados deve ser alocado no endereço 0 da memória de dados. { no corpo do programa principal } ... i : integer; vet : vetor(0..15); ... function times_6(num: integer) : integer; begin times_6 := times_2(num) * 3; end; function times_2(num: integer) : integer; begin times_2 := num + num; end; begin { programa principal } ... i := 0; while (i < 15) do begin vet [i] := times_6(i); i := i + 1: end; ... end. Sua resposta deve conter o arquivo texto com o "executável" do Mico, com o código assembly das três funções, e com os comentários (instruções human readable). A última instrução de seu programa assembly deve ser um halt. Na correção, alterarei os números dos registradores para garantir que os mesmos registradores (exceto os do protocolo) sejam usados em times_6(), times_2() e no programa principal.
--fim desta tarefa--