Universidade Federal de Uberlndia
Arquitetura e Organizao de Computadores
Quarta Lista de Exerccios 2017-1
Prof. Henrique Fernandes FACOM
Assembly MIPS
1) Monte cdigos com o Assembly MIPS para os algoritmos escritos na linguagem C abaixo:
i) Soma de quadrados
#include <stdio.h>
int main(){
int a, b, c, res;
printf("Digite 3 valores:");
scanf("%d %d %d", &a, &b, &c);
res = ( a * a) + ( b * b ) + ( c * c );
printf("Soma de quadrados=%d\n",res);
return 0;
}
ii) Maior de 2 nmeros
#include <stdio.h>
int main(){
int a, b;
scanf("%d",&a);
scanf("%d",&b);
if( a > b ){
printf("a o maior\n");
} else {
printf("b o maior\n");
}
return 0;
}
iii) Maior de 3 nmeros
#include <stdio.h>
int main(){
int a, b, c;
scanf("%d",&a);
scanf("%d",&b);
scanf("%d",&c);
if( a > b && a > c){
printf("a o maior\n");
} else {
if( b > c){
printf("b o maior\n");
}else{
printf("c o maior\n");
}
}
return 0;
}
iv) Classificao de um triangulo
int main(){
int l1, l2, l3;
scanf("%d", &l1);
scanf("%d", &l2);
scanf("%d", &l3);
if(l1 < (l2 + l3) && l2 < (l1 + l3) && l3 < (l2 + l1)){
if (l1 == l2 && l2 == l3)
printf("equilatero");
else
if (l1 == l2 || l2 == l3 || l1 == l3)
printf("isosceles");
else
printf("escaleno");
} else {
printf("no triangulo");
}
return 0;
}
v) Sequncia de 1 a 1000
#include <stdio.h>
int main(){
int i=1;
while(i <= 1000){
printf("%d ",i);
i++;
}
}
vi) Sequencia de pares 2 a 1000
#include <stdio.h>
int main(){
int i=1;
while(i <= 1000){
if(i%2 == 0){
printf("%d ",i);
}
i++;
}
}
vii) Sequencia de multiplos de 7 ou 9 at mil
#include <stdio.h>
int main(){
int i=1;
while(i <= 1000){
if(i%7 == 0 || i%9 == 0){
printf("%d ",i);
}
i++;
}
}
viii) Imprime um quadrado com asterscos
#include <stdio.h>
int main(){
int lado,
count=1;
printf("Lado do quadrado: ");
scanf("%d", &lado);
while( count <= lado*lado)
{
if(count % lado == 0)
printf("*\n");
else
printf("*");
count++;
}
printf("\n");
return 0;
}
ix) Calculo de exponenciao com multiplao recursiva:
#include <stdio.h>
int potencia(int base, int expoente){
if(expoente == 0)
return 1;
else
return (base * potencia(base, expoente-1));
}
int main(){
int base = 0, expoente = 0, resultado;
printf("Base:");
scanf("%d", &base);
printf("Expoente:");
scanf("%d", &expoente);
resultado = potencia(base,expoente);
printf("Resultado:%d\n",resultado);
return 0;
}
x) Calculo do Mximo Divisor Comum (MDC)
#include <stdio.h>
int mdc(int a, int b){
if(b == 0)
return a;
else
return mdc(b, a % b);
}
int main(){
int a=0, b=0, res=0;
printf("A:");
scanf("%d", &a);
printf("B:");
scanf("%d", &b);
res = mdc(a,b);
printf("Resultado:%d\n",res);
return 0;
}