You are on page 1of 2

Lista de Exerccios - Aula prtica do MipsIt 2012-1

Faa cada programa em um arquivo separado, com nome dado por exerccionumero_questo.asm , por exemplo exercicio-1.asm 1. Codifique um programa correspondente ao seguinte pseudo-cdigo: int a = 3; int b = 4; int m = 10; m = a; if ( b < m ) m = b; 2. Codifique um programa correspondente a int a = ...; int b = ...; x = 0; if ( a >= 0 && b <= 50 ) x = 1; 3. Faa um programa em linguagem de montagem MIPS que receba como entrada uma string com n caracteres e gere como sada uma nova string com a inverso da ordem dos caracteres. Essa nova string tambm ter a troca das letras maisculas por minsculas e vice-versa. Por exemplo: se a entrada for HArdwArE a sada dever ser eRaWDRah. A entrada deve ser lida da memria e a sada deve ser escrita na memria. Caso a string possua algum caractere que no seja letra o valor 1 dever ser armazenado no registrador v1 e o programa dever ser encerrado. Lembramos que o fim da string dado pelo caractere nulo e que para manipular string nessa questo recomendamos que sejam usadas variveis do tipo ASCIIZ. Ateno: os caracteres devero ser armazenados em seqncia na memria. 4. Escreva um programa em linguagem de montagem do MIPS que receba dois nmeros inteiros armazenados na memria e realiza a multiplicao dos dois nmeros. Considere nmeros positivos e negativos. A instruo mult no dever ser utilizada na implementao dessa questo. O resultado dever ser armazenado em uma varivel RESULT na memria. 5. Faa um programa em linguagem de montagem MIPS que receba como entrada dois nmeros, n e s, e que tenha como sada o resultado da combinao de n tomados s a s. Os nmeros n e s devem ser carregados da memria e o resultado da combinao deve ser colocado na mesma em uma varivel COMB. Caso s seja maior que n, deve ser armazenado o valor 1 no registrador v1. Caso n e/ou s seja menor que zero, o valor 2 deve ser armazenado no registrador v1. Quando n for igual a s o valor 3 deve ser armazenado no registrador V1. Quando n e/ou s for igual a zero o valor 4 deve ser armazenado no registrador v1. Segue abaixo a frmula da combinao.

Ateno: obrigatrio o uso de recurso para a implementao do clculo de n!, (n - s)! e s!. Sendo que a questo que no for feita recursivamente no ser aceita como resposta vlida. 6. Escreva um programa em linguagem de montagem do MIPS que converta um nmero inteiro (representao complemento a dois) na sua representao em ASCII. Nmeros positivos e negativos devem ser considerados. O nmero binrio ter 32 caracteres e ser lido da memria. Os nmeros estaro representados como string de caracteres ASCII e o fim de string ser denotado com o caractere null. O nmero binrio dever ser armazenado no registrador v0. Caso o nmero a ser convertido no seja vlido, o registrador v1 retornar o valor 1. Ateno: o cdigo de todas as questes dever estar claramente comentado, pois caso contrrio a correo ser muito dificultada. Portanto colaborem com a correo! Obs: os exerccios 1 e 2 devero ser entregues no mesmo dia da aula (poremail). Os demais exerccios (3 a 6) devero ser entregues at o dia 29 de Maro de 2012. Enviar exerccios para os endereos: ensb@cin.ufpe.br e (Bruno) bab@cin.ufpe.br

Boa Sorte!

You might also like