Guiao 1
Ex.1
a)
b) O objectivo deste troço de programa é: 1º - Após RESET ou arranque de sistema, os registos t0, t1 e t2, estão a 0. 2º - A primeira instrução é uma adição, dos valores 3 com 0, colocando o resultado em t0, daí o valor de t0 ser de 3 após a execução da 1ª instrução. 3º - A segunda instrução é uma adição, dos valores 0 com 1, colocando o resultado em t1, daí o valor de t1 ser de 1 após a execução da 2ª instrução. 4º - A terceira instrução é uma adição, mas desta vez dos valores contidos nos registos t0 e t1, colocando em t2 o seu resultado. O valor final de t2 é 4 após execução da 3ª instrução. 5º - Por fim o programa recebe como instrução jump return (jr $ra), e acaba.
Ex.2 O enunciado era: f = 5; g = 3; t = f + g;
O código sugerido para a sua resolução é : main: addi $t0, $0, 5 addi $t1, $0, 3 add $t2, $t0, $t1 jr $ra
Tem-se então que : f corresponde a t0, g corresponde a t1, e t corresponde a t.
Este exercício é semelhante ao anterior mudando apenas os valores das constantes em t0 e t1.
Exercício 1.8
Ex.1
a)
A função da instrução sub, é subtrair a um número outro, podendo ser esta com a subtracção de carry ou não.
b)
Ex.2 Ex.3
Código que proponho: Código que proponho: main: main: addi $t0, $0, 3 addi $t0, $0, 3 addi $t1, $0, 5 addi $t1, $0, 2 addi $t2, $0, 2 add $t2, $t0, $t0 addi $t3, $0, 1 jr $ra add $t0, $t0, $t1 add $t2, $t2, $t3 sub $t4, $t0, $t2 jr $ra
Ex.4
Código que proponho: main: addi $t0, $0, 1 addi $t0, $t0, 2 addi $t0, $t0, 3 jr $ra