MIPS: Resolução dos exercı́cios propostos
Elaine Cecı́lia Gatto 1
1
Portal Embarcados: www.embarcados.com.br
elainececiliagatto@gmail.com
1. Artigo 7: IF Simples
Verificar Tabelas 1, 2 e 3
Código C:
1 if(x==y) go to L2
2 a[1] = b - c;
3 b = a[2] + c;
4 c = b + c[3]
5 L2:
6 a[4] = a[6] + a[5];
2. Artigo 8: IF Composto
2.1. Resolução do Exercı́cio 1
Verificar Figura 1 e Tabelas 4, 5 e 6
Código C:
1 if(a==b){
2 c = a + b;
3 a = b - c;
4 } else{
5 b = a + c;
6 c = b - c;
7 }
Considere:
• BEQ: branch if equal ou desvie se igual. Se a == b desvie para else;
• Se a não é diferente de b [lado esquerdo da figura BEQ], então a só pode ser igual
a b [lado direito da figura BNE];
• BNE: branch if not equal ou desvie se não igual. Se a != b desvie para else;
• Se a não é igual a b [lado esquerdo da figura BNE], então a só pode ser diferente
de b [lado direito da figura BEQ].
• Se (a==b) entra no if e se (a!=b) entra no else. Por isso, vamos usar BNE. O desvio
acontece quando (a!=b), caso contrário não tem desvio! Atente-se a este detalhe.
2.2. Resolução do Exercı́cio 2
Verificar Figura 2 e Tabelas 7, 8 e 9
Código C:
1 if(a!=b){
2 c = a - b;
3 a = b + c;
4 } else{
5 b = a - c;
6 c = b + c;
7 }
Considere: Se (a!=b) entra no if e se (a==b) entra no else. Por isso, vamos usar BEQ. O
desvio acontece quando (a==b), caso contrário não tem desvio! Atente-se a este detalhe.
2.3. Resolução do Exercı́cio 3
Verificar Figura 3 e Tabelas 10, 11 e 12
Código C:
1 if(a > b){
2 c = a - b;
3 a = b + c;
4 } else {
5 b = a - c;
6 c = b + c;
7 }
De acordo com a instrução SLT, se o primeiro registrador for menor que o se-
gundo registrador, então o terceiro registrador recebe o valor 1. Se fizermos a seguinte
comparação, vamos descobri que maior é igual a 0 e menor é igual a 1. Portanto, para
entrar no ELSE, o valor de $t0 deve ser 1. Assim, quando $t0 for igual a um, acontece
o desvio. Quem testa isso é a instrução BNE que realiza o desvio quando a desigualdade
entre dois valores é verdadeira!
2.4. Resolução do Exercı́cio 4
Verificar Figura 4 e Tabelas 13, 14 e 15
Código C:
1 if(a > b){
2 c = a - b;
3 a = b + c;
4 } else {
5 b = a - c;
6 c = b + c;
7 }
De acordo com a instrução SLT, se o primeiro registrador for menor que o se-
gundo registrador, então o terceiro registrador recebe o valor 1. Se fizermos a seguinte
comparação, vamos descobri que maior é igual a 0 e menor é igual a 1. Portanto, para
entrar no ELSE, o valor de $t0 deve ser 0. Assim, quando $t0 for igual a 1 acontece o
desvio. Quem testa isso é a instrução BEQ que realiza o desvio quando a igualdade entre
dois valores é verdadeira!
3. Artigo 10: Operações Lógicas
Verificar Figura 5 e Tabelas 16, 17 e 18.
4. Artigo 11: Operação AND
Verificar Figura 6 e Tabelas 19, 20 e 21.
5. Artigo 12: Operação OR
Verificar Figura 7 e Tabelas 22, 23 e 24.
6. Artigo 13: Operação NOT
Verificar Figura 8 e Tabelas 25, 26 e 27.
7. Artigo 16
Verificar Tabelas 28, 29 e 30.
Table 1. Linguagem IF Simples
Inst. Assembly Máquina
1 BEQ $s3, $s4, L2 BEQ $s3, $s4, L2
2 SUB $t0, $s1, $s2 SUB $t0, $s1, $s2
3 SW $t0, 1($s0) SW $t0, 1($s0)
4 LW $t1, 2($s0) LW $t1, 2($s0)
5 ADD $s1, $t1, $s2 ADD $s1, $t1, $s2
6 LW $t2, 3($s2) LW $t2, 3($s2)
7 ADD $s2, $s1, $t2 ADD $s2, $s1, $t2
8 L2 : LW $t0, 6($s0) LW $t0, 6($s0)
9 LW $t1, 5($s0) LW $t1, 5($s0)
10 ADD $t2, $t0, $t1 ADD $t2, $t0, $t1
11 SW $t2, 4($s0) SW $t2, 4($s0)
Table 2. Representação de Máquina IF Simples
Instr. End.Mem. op rs rt rd shamt funct
1 10.000 5 19 20 10028
2 10.004 0 17 18 8 0 34
3 10.008 43 8 16 1
4 10.012 35 8 16 2
5 10.016 0 9 18 17 0 32
6 10.020 35 10 18 3
7 10.024 0 17 10 18 0 32
8 10.028 35 8 16 6
9 10.032 35 9 16 5
10 10.036 0 8 9 10 0 32
11 10.040 43 10 16 4
Table 3. Código de Máquina IF Simples
Instr. End.Mem. op rs rt rd shamt funct
1 10.000 000101 10011 10100 L2
2 10.004 000000 10001 10010 01000 00000 100010
3 10.008 101011 01000 10000 0000 0000 0000 0001
4 10.012 100011 01000 10000 0000 0000 0000 0010
5 10.016 000000 01001 10010 10001 00000 100000
6 10.020 100011 01010 10010 0000 0000 0000 0011
7 10.024 000000 10001 01010 10010 00000 100000
8 10.028 100011 01000 10000 0000 0000 0000 0110
9 10.032 100011 01001 10000 0000 0000 0000 0101
10 10.036 000000 01000 01001 01010 00000 100000
11 10.040 101011 01010 10000 0000 0000 0000 0100
Figure 1. BNE e BEQ Exercı́cio 1
Table 4. Linguagem Exercı́cio 1
Instr. End.Mem. Assembly Máquina
1 10000 BNE $s0, $s1, EXIT ELSE $16, $17, ELSE
2 10004 ADD $s2, $s0, $s1 ADD $18, $16, $17
3 10008 SUB $s0, $s1, $s2 SUB $16, $17, $18
4 10012 J EXIT J EXIT
5 10016 ELSE: ADD $s1, $s0, $s2 ELSE: ADD $17, $16, $18
6 10020 SUB $s2, $s1, $s2 SUB $18, $17, $183
7 10024 EXIT EXIT
Table 5. Representação Exercı́cio 1
Instr. End.Mem. op rs rt rd shamt funct
1 10000 5 16 17 10016
2 10004 0 16 17 18 0 32
3 10008 0 17 18 16 0 34
4 10012 2 10024
5 10016 0 16 18 17 0 32
6 10020 0 17 18 18 0 34
7 10024 EXIT
Table 6. Código de Máquina Exercı́cio 1
Instr. End.Mem. op rs rt rd shamt funct
1 10000 000101 10000 10001 0010 0111 0010 0000
2 10004 000000 10000 10001 10010 00000 100000
3 10008 000000 10001 10010 10000 00000 100010
4 10012 000010 0000 0000 0000 1001 1100 1010 00
5 10016 000000 10000 10010 10001 00000 100000
6 10020 000000 10001 10010 10010 00000 100010
7 10024 EXIT
Figure 2. BNE e BEQ Exercı́cio 2
Table 7. Linguagem Assembly Exercı́cio 2
Instr. End.Mem. Assembly Máquina
1 10000 BEQ $s0, $s1, ELSE BEQ $16, $17, ELSE
2 10004 SUB $s2, $s0, $s1 SUB $18, $16, $17
3 10008 ADD $s0, $s1, $s2 ADD $16, $17, $18
4 10012 J EXIT J EXIT
5 10016 ELSE: SUB $s1, $s0, $s2 ELSE: SUB $17, $16, $18
6 10020 ADD $s2, $s1, $s2 ADD $18, $17, $18
7 10024 EXIT EXIT
Table 8. Representação Exercı́cio 2
Instr. End.Mem. op rs rt rd shamt funct
1 10000 4 16 17 10016
2 10004 0 16 17 18 0 32
3 10008 0 17 18 16 0 34
4 10012 2 10024
5 10016 0 16 18 17 0 32
6 10020 0 17 18 18 0 34
7 10024 EXIT
Table 9. Código de Máquina Exercı́cio 2
Instr. End.Mem. op rs rt rd shamt funct
1 10000 000100 10000 10001 0010 0111 0010 0000
2 10004 000000 10000 10001 10010 00000 100000
3 10008 000000 10001 10010 10000 00000 100010
4 10012 000010 0000 0000 0000 1001 1100 1010 00
5 10016 000000 10000 10010 10001 00000 100000
6 10020 000000 10001 10010 10010 00000 100010
7 10024 EXIT
Table 10. Linguagem Exercı́cio 3
Instr. End.Mem. Assembly Máquina
1 10000 SLT $t0, $s0, $s1 SLT $8, $16, $17
2 10004 BNE $t0, $zero, ELSE BNE $8, $0, 10020
3 10008 SUB $s2, $s0, $s1 SUB $18, $16, $17
4 10012 ADD $s0, $s1, $S2 ADD $16, $17, $18
5 10016 J EXIT J EXIT
6 10020 ELSE: SUB $s1, $s0, $s2 ELSE: SUB $17, $16, $18
7 10024 ADD $s2, $s1, $s2 ADD $16, $17, $18
8 10028 EXIT EXIT
Figure 3. SLT e BNE Exercı́cio 3
Table 11. Representação Exercı́cio 3
Instr. End.Mem. op rs rt rd shamt funct
1 10000 0 16 17 8 0 42
2 10004 5 8 0 10020
3 10008 0 16 17 18 0 34
4 10012 0 17 18 16 0 32
5 10016 2 10028
6 10020 0 16 18 17 0 34
7 10024 0 17 18 18 0 32
8 10028 EXIT
Table 12. Código de Máquina Exercı́cio 3
Instr. End.Mem. op rs rt rd shamt funct
1 10000 000000 10000 10001 0010 0111 0010 0100
2 10004 000101 01000 00000 0010 0111 0010 0100
3 10008 000000 10000 10001 10010 00000 100010
4 10012 000000 10001 10010 10000 00000 100000
5 10016 000010 0000 0000 0000 1001 1100 1100 00
6 10020 000000 10000 10010 10001 00000 100010
7 10024 000000 10001 10010 10010 00000 100000
8 10028 EXIT
Figure 4. BNE e BEQ Exercı́cio 4
Table 13. Linguagem Exercı́cio 4
Instr. End.Mem. Assembly Máquina
1 10000 SLT $t0, $s0, $s1 SLT $8, $16, $17
2 10004 BEQ $t0, $zero, ELSE BEQ $8, $0, 10016
3 10008 ADD $s2, $s0, $s1 ADD $18, $16, $17
4 10012 SUB $s0, $s1, $S2 SUB $16, $17, $18
5 10016 J EXIT J EXIT
6 10020 ELSE: ADD $s1, $s0, $s2 ELSE: ADD $17, $16, $18
7 10024 SUB $s2, $s1, $s2 SUB $16, $17, $18
8 10028 EXIT EXIT
Table 14. Representação Exercı́cio 4
Instr. End.Mem. op rs rt rd shamt funct
1 10000 0 16 17 8 0 42
2 10004 4 8 0 10020
3 10008 0 16 17 18 0 34
4 10012 0 17 18 16 0 32
5 10016 2 10028
6 10020 0 16 18 17 0 34
7 10024 0 17 18 18 0 32
8 10028 EXIT
Table 15. Código Exercı́cio 4
Instr. End.Mem. op rs rt rd shamt funct
1 10000 000000 10000 10001 0010 0111 0010 0100
2 10004 000100 01000 00000 0010 0111 0010 1100
3 10008 000000 10000 10001 10010 00000 100010
4 10012 000000 10001 10010 10000 00000 100000
5 10016 000010 0000 0000 0000 1001 1100 1011 00
6 10020 000000 10000 10010 10001 00000 100010
7 10024 000000 10001 10010 10010 00000 100000
8 10028 EXIT
Figure 5. Calculando Deslocamentos Artigo 10
Table 16. Linguagem Artigo 10
Assembly Máquina
1 SRL $t0, $s0, 8 SRL $8, $16, 8
2 SLL $t1, $s1, 4 SLL $9, $17, 4
Table 17. Representação Artigo 10
op rs rt rd shamt funct
1 0 0 16 8 8 2
2 0 0 17 9 4 0
Table 18. Código Artigo 10
op rs rt rd shamt funct
1 000000 000000 010010 001000 001000 000010
2 000000 000000 010001 001001 000100 000000
Figure 6. Calculando AND Artigo 11
Table 19. Linguagem Artigo 11
Assembly Máquina
1 AND $t0, $t1, $t2 AND $8, $9, $10
Table 20. Representação Artigo 11
op rs rt rd shamt funct
1 0 9 10 8 0 36
Table 21. Código Artigo 11
op rs rt rd shamt funct
1 000000 001001 001010 001000 000000 100100
Table 22. Linguagem Artigo 12
Assembly Máquina
1 OR $t0, $t1, $t2 OR $8, $9, $10
Figure 7. Calculando OR Artigo 12
Table 23. Representação Artigo 12
op rs rt rd shamt funct
1 0 9 10 8 0 37
Table 24. Código Artigo 12
op rs rt rd shamt funct
1 000000 001001 001010 001000 000000 100101
Figure 8. Calculando NOT Artigo 13
Table 25. Linguagem Artigo 13
Assembly Máquina
1 NOT $t0, $t1, $zero NOT $8, $9, $0
Table 26. Representação Artigo 13
op rs rt rd shamt funct
1 0 9 0 8 0 39
Table 27. Código Artigo 13
op rs rt rd shamt funct
1 000000 001001 00000 001000 000000 100111
Table 28. Linguagem Artigo 16
Instr. End.Mem. Assembly Máquina
1 10000 SLL $t1, $s3, $2 SLL $8, $19, $2
2 10004 ADD $t0, $t1, $s2 ADD $9, $9, $17
3 10008 LW $t2, 0($1) LW $10, 0($9)
4 10012 ADD $s0, $s1, $t2 ADD $16, $17, $10
Table 29. Representação Artigo 16
Instr. End.Mem. op rs rt rd shamt funct
1 10000 0 19 9 2 0 0
2 10004 0 17 9 0 0 32
3 10008 35 9 0 18
4 10012 0 10 16 16 0 32
Table 30. Código Artigo 16
Instr. End.Mem. op rs rt rd shamt funct
1 10000 000000 010011 001001 000010 000000 000000
2 10004 000000 010001 001001 000000 000000 100000
3 10008 100011 001001 000000 0000 0000 0000 000000
4 10012 000000 001010 010000 010000 000000 100000

Exercícios resolvidos de MIPS Portal Embarcados

  • 1.
    MIPS: Resolução dosexercı́cios propostos Elaine Cecı́lia Gatto 1 1 Portal Embarcados: www.embarcados.com.br elainececiliagatto@gmail.com 1. Artigo 7: IF Simples Verificar Tabelas 1, 2 e 3 Código C: 1 if(x==y) go to L2 2 a[1] = b - c; 3 b = a[2] + c; 4 c = b + c[3] 5 L2: 6 a[4] = a[6] + a[5]; 2. Artigo 8: IF Composto 2.1. Resolução do Exercı́cio 1 Verificar Figura 1 e Tabelas 4, 5 e 6 Código C: 1 if(a==b){ 2 c = a + b; 3 a = b - c; 4 } else{ 5 b = a + c; 6 c = b - c; 7 } Considere: • BEQ: branch if equal ou desvie se igual. Se a == b desvie para else; • Se a não é diferente de b [lado esquerdo da figura BEQ], então a só pode ser igual a b [lado direito da figura BNE]; • BNE: branch if not equal ou desvie se não igual. Se a != b desvie para else; • Se a não é igual a b [lado esquerdo da figura BNE], então a só pode ser diferente de b [lado direito da figura BEQ]. • Se (a==b) entra no if e se (a!=b) entra no else. Por isso, vamos usar BNE. O desvio acontece quando (a!=b), caso contrário não tem desvio! Atente-se a este detalhe.
  • 2.
    2.2. Resolução doExercı́cio 2 Verificar Figura 2 e Tabelas 7, 8 e 9 Código C: 1 if(a!=b){ 2 c = a - b; 3 a = b + c; 4 } else{ 5 b = a - c; 6 c = b + c; 7 } Considere: Se (a!=b) entra no if e se (a==b) entra no else. Por isso, vamos usar BEQ. O desvio acontece quando (a==b), caso contrário não tem desvio! Atente-se a este detalhe. 2.3. Resolução do Exercı́cio 3 Verificar Figura 3 e Tabelas 10, 11 e 12 Código C: 1 if(a > b){ 2 c = a - b; 3 a = b + c; 4 } else { 5 b = a - c; 6 c = b + c; 7 } De acordo com a instrução SLT, se o primeiro registrador for menor que o se- gundo registrador, então o terceiro registrador recebe o valor 1. Se fizermos a seguinte comparação, vamos descobri que maior é igual a 0 e menor é igual a 1. Portanto, para entrar no ELSE, o valor de $t0 deve ser 1. Assim, quando $t0 for igual a um, acontece o desvio. Quem testa isso é a instrução BNE que realiza o desvio quando a desigualdade entre dois valores é verdadeira! 2.4. Resolução do Exercı́cio 4 Verificar Figura 4 e Tabelas 13, 14 e 15 Código C: 1 if(a > b){ 2 c = a - b; 3 a = b + c; 4 } else { 5 b = a - c; 6 c = b + c; 7 } De acordo com a instrução SLT, se o primeiro registrador for menor que o se- gundo registrador, então o terceiro registrador recebe o valor 1. Se fizermos a seguinte comparação, vamos descobri que maior é igual a 0 e menor é igual a 1. Portanto, para
  • 3.
    entrar no ELSE,o valor de $t0 deve ser 0. Assim, quando $t0 for igual a 1 acontece o desvio. Quem testa isso é a instrução BEQ que realiza o desvio quando a igualdade entre dois valores é verdadeira! 3. Artigo 10: Operações Lógicas Verificar Figura 5 e Tabelas 16, 17 e 18. 4. Artigo 11: Operação AND Verificar Figura 6 e Tabelas 19, 20 e 21. 5. Artigo 12: Operação OR Verificar Figura 7 e Tabelas 22, 23 e 24. 6. Artigo 13: Operação NOT Verificar Figura 8 e Tabelas 25, 26 e 27. 7. Artigo 16 Verificar Tabelas 28, 29 e 30. Table 1. Linguagem IF Simples Inst. Assembly Máquina 1 BEQ $s3, $s4, L2 BEQ $s3, $s4, L2 2 SUB $t0, $s1, $s2 SUB $t0, $s1, $s2 3 SW $t0, 1($s0) SW $t0, 1($s0) 4 LW $t1, 2($s0) LW $t1, 2($s0) 5 ADD $s1, $t1, $s2 ADD $s1, $t1, $s2 6 LW $t2, 3($s2) LW $t2, 3($s2) 7 ADD $s2, $s1, $t2 ADD $s2, $s1, $t2 8 L2 : LW $t0, 6($s0) LW $t0, 6($s0) 9 LW $t1, 5($s0) LW $t1, 5($s0) 10 ADD $t2, $t0, $t1 ADD $t2, $t0, $t1 11 SW $t2, 4($s0) SW $t2, 4($s0)
  • 4.
    Table 2. Representaçãode Máquina IF Simples Instr. End.Mem. op rs rt rd shamt funct 1 10.000 5 19 20 10028 2 10.004 0 17 18 8 0 34 3 10.008 43 8 16 1 4 10.012 35 8 16 2 5 10.016 0 9 18 17 0 32 6 10.020 35 10 18 3 7 10.024 0 17 10 18 0 32 8 10.028 35 8 16 6 9 10.032 35 9 16 5 10 10.036 0 8 9 10 0 32 11 10.040 43 10 16 4 Table 3. Código de Máquina IF Simples Instr. End.Mem. op rs rt rd shamt funct 1 10.000 000101 10011 10100 L2 2 10.004 000000 10001 10010 01000 00000 100010 3 10.008 101011 01000 10000 0000 0000 0000 0001 4 10.012 100011 01000 10000 0000 0000 0000 0010 5 10.016 000000 01001 10010 10001 00000 100000 6 10.020 100011 01010 10010 0000 0000 0000 0011 7 10.024 000000 10001 01010 10010 00000 100000 8 10.028 100011 01000 10000 0000 0000 0000 0110 9 10.032 100011 01001 10000 0000 0000 0000 0101 10 10.036 000000 01000 01001 01010 00000 100000 11 10.040 101011 01010 10000 0000 0000 0000 0100 Figure 1. BNE e BEQ Exercı́cio 1
  • 5.
    Table 4. LinguagemExercı́cio 1 Instr. End.Mem. Assembly Máquina 1 10000 BNE $s0, $s1, EXIT ELSE $16, $17, ELSE 2 10004 ADD $s2, $s0, $s1 ADD $18, $16, $17 3 10008 SUB $s0, $s1, $s2 SUB $16, $17, $18 4 10012 J EXIT J EXIT 5 10016 ELSE: ADD $s1, $s0, $s2 ELSE: ADD $17, $16, $18 6 10020 SUB $s2, $s1, $s2 SUB $18, $17, $183 7 10024 EXIT EXIT Table 5. Representação Exercı́cio 1 Instr. End.Mem. op rs rt rd shamt funct 1 10000 5 16 17 10016 2 10004 0 16 17 18 0 32 3 10008 0 17 18 16 0 34 4 10012 2 10024 5 10016 0 16 18 17 0 32 6 10020 0 17 18 18 0 34 7 10024 EXIT Table 6. Código de Máquina Exercı́cio 1 Instr. End.Mem. op rs rt rd shamt funct 1 10000 000101 10000 10001 0010 0111 0010 0000 2 10004 000000 10000 10001 10010 00000 100000 3 10008 000000 10001 10010 10000 00000 100010 4 10012 000010 0000 0000 0000 1001 1100 1010 00 5 10016 000000 10000 10010 10001 00000 100000 6 10020 000000 10001 10010 10010 00000 100010 7 10024 EXIT Figure 2. BNE e BEQ Exercı́cio 2
  • 6.
    Table 7. LinguagemAssembly Exercı́cio 2 Instr. End.Mem. Assembly Máquina 1 10000 BEQ $s0, $s1, ELSE BEQ $16, $17, ELSE 2 10004 SUB $s2, $s0, $s1 SUB $18, $16, $17 3 10008 ADD $s0, $s1, $s2 ADD $16, $17, $18 4 10012 J EXIT J EXIT 5 10016 ELSE: SUB $s1, $s0, $s2 ELSE: SUB $17, $16, $18 6 10020 ADD $s2, $s1, $s2 ADD $18, $17, $18 7 10024 EXIT EXIT Table 8. Representação Exercı́cio 2 Instr. End.Mem. op rs rt rd shamt funct 1 10000 4 16 17 10016 2 10004 0 16 17 18 0 32 3 10008 0 17 18 16 0 34 4 10012 2 10024 5 10016 0 16 18 17 0 32 6 10020 0 17 18 18 0 34 7 10024 EXIT Table 9. Código de Máquina Exercı́cio 2 Instr. End.Mem. op rs rt rd shamt funct 1 10000 000100 10000 10001 0010 0111 0010 0000 2 10004 000000 10000 10001 10010 00000 100000 3 10008 000000 10001 10010 10000 00000 100010 4 10012 000010 0000 0000 0000 1001 1100 1010 00 5 10016 000000 10000 10010 10001 00000 100000 6 10020 000000 10001 10010 10010 00000 100010 7 10024 EXIT Table 10. Linguagem Exercı́cio 3 Instr. End.Mem. Assembly Máquina 1 10000 SLT $t0, $s0, $s1 SLT $8, $16, $17 2 10004 BNE $t0, $zero, ELSE BNE $8, $0, 10020 3 10008 SUB $s2, $s0, $s1 SUB $18, $16, $17 4 10012 ADD $s0, $s1, $S2 ADD $16, $17, $18 5 10016 J EXIT J EXIT 6 10020 ELSE: SUB $s1, $s0, $s2 ELSE: SUB $17, $16, $18 7 10024 ADD $s2, $s1, $s2 ADD $16, $17, $18 8 10028 EXIT EXIT
  • 7.
    Figure 3. SLTe BNE Exercı́cio 3 Table 11. Representação Exercı́cio 3 Instr. End.Mem. op rs rt rd shamt funct 1 10000 0 16 17 8 0 42 2 10004 5 8 0 10020 3 10008 0 16 17 18 0 34 4 10012 0 17 18 16 0 32 5 10016 2 10028 6 10020 0 16 18 17 0 34 7 10024 0 17 18 18 0 32 8 10028 EXIT
  • 8.
    Table 12. Códigode Máquina Exercı́cio 3 Instr. End.Mem. op rs rt rd shamt funct 1 10000 000000 10000 10001 0010 0111 0010 0100 2 10004 000101 01000 00000 0010 0111 0010 0100 3 10008 000000 10000 10001 10010 00000 100010 4 10012 000000 10001 10010 10000 00000 100000 5 10016 000010 0000 0000 0000 1001 1100 1100 00 6 10020 000000 10000 10010 10001 00000 100010 7 10024 000000 10001 10010 10010 00000 100000 8 10028 EXIT Figure 4. BNE e BEQ Exercı́cio 4
  • 9.
    Table 13. LinguagemExercı́cio 4 Instr. End.Mem. Assembly Máquina 1 10000 SLT $t0, $s0, $s1 SLT $8, $16, $17 2 10004 BEQ $t0, $zero, ELSE BEQ $8, $0, 10016 3 10008 ADD $s2, $s0, $s1 ADD $18, $16, $17 4 10012 SUB $s0, $s1, $S2 SUB $16, $17, $18 5 10016 J EXIT J EXIT 6 10020 ELSE: ADD $s1, $s0, $s2 ELSE: ADD $17, $16, $18 7 10024 SUB $s2, $s1, $s2 SUB $16, $17, $18 8 10028 EXIT EXIT Table 14. Representação Exercı́cio 4 Instr. End.Mem. op rs rt rd shamt funct 1 10000 0 16 17 8 0 42 2 10004 4 8 0 10020 3 10008 0 16 17 18 0 34 4 10012 0 17 18 16 0 32 5 10016 2 10028 6 10020 0 16 18 17 0 34 7 10024 0 17 18 18 0 32 8 10028 EXIT Table 15. Código Exercı́cio 4 Instr. End.Mem. op rs rt rd shamt funct 1 10000 000000 10000 10001 0010 0111 0010 0100 2 10004 000100 01000 00000 0010 0111 0010 1100 3 10008 000000 10000 10001 10010 00000 100010 4 10012 000000 10001 10010 10000 00000 100000 5 10016 000010 0000 0000 0000 1001 1100 1011 00 6 10020 000000 10000 10010 10001 00000 100010 7 10024 000000 10001 10010 10010 00000 100000 8 10028 EXIT Figure 5. Calculando Deslocamentos Artigo 10
  • 10.
    Table 16. LinguagemArtigo 10 Assembly Máquina 1 SRL $t0, $s0, 8 SRL $8, $16, 8 2 SLL $t1, $s1, 4 SLL $9, $17, 4 Table 17. Representação Artigo 10 op rs rt rd shamt funct 1 0 0 16 8 8 2 2 0 0 17 9 4 0 Table 18. Código Artigo 10 op rs rt rd shamt funct 1 000000 000000 010010 001000 001000 000010 2 000000 000000 010001 001001 000100 000000 Figure 6. Calculando AND Artigo 11 Table 19. Linguagem Artigo 11 Assembly Máquina 1 AND $t0, $t1, $t2 AND $8, $9, $10 Table 20. Representação Artigo 11 op rs rt rd shamt funct 1 0 9 10 8 0 36 Table 21. Código Artigo 11 op rs rt rd shamt funct 1 000000 001001 001010 001000 000000 100100 Table 22. Linguagem Artigo 12 Assembly Máquina 1 OR $t0, $t1, $t2 OR $8, $9, $10
  • 11.
    Figure 7. CalculandoOR Artigo 12 Table 23. Representação Artigo 12 op rs rt rd shamt funct 1 0 9 10 8 0 37 Table 24. Código Artigo 12 op rs rt rd shamt funct 1 000000 001001 001010 001000 000000 100101 Figure 8. Calculando NOT Artigo 13 Table 25. Linguagem Artigo 13 Assembly Máquina 1 NOT $t0, $t1, $zero NOT $8, $9, $0 Table 26. Representação Artigo 13 op rs rt rd shamt funct 1 0 9 0 8 0 39
  • 12.
    Table 27. CódigoArtigo 13 op rs rt rd shamt funct 1 000000 001001 00000 001000 000000 100111 Table 28. Linguagem Artigo 16 Instr. End.Mem. Assembly Máquina 1 10000 SLL $t1, $s3, $2 SLL $8, $19, $2 2 10004 ADD $t0, $t1, $s2 ADD $9, $9, $17 3 10008 LW $t2, 0($1) LW $10, 0($9) 4 10012 ADD $s0, $s1, $t2 ADD $16, $17, $10 Table 29. Representação Artigo 16 Instr. End.Mem. op rs rt rd shamt funct 1 10000 0 19 9 2 0 0 2 10004 0 17 9 0 0 32 3 10008 35 9 0 18 4 10012 0 10 16 16 0 32 Table 30. Código Artigo 16 Instr. End.Mem. op rs rt rd shamt funct 1 10000 000000 010011 001001 000010 000000 000000 2 10004 000000 010001 001001 000000 000000 100000 3 10008 100011 001001 000000 0000 0000 0000 000000 4 10012 000000 001010 010000 010000 000000 100000