tarea02_arq

2
Arquitectura de Computadores 543.426 Tarea No. 2 Resuelva los siguientes problemas utilizando la convención estándar de uso de registros MIPS (temporales, argumentos, valores de retorno, etc.) y utilizando marcos de activación (incluyendo manejo de $sp y $fp) de la manera vista en clases. 1. Escriba una función recursiva en assembly MIPS que calcule el n-ésimo número Catalán. Los números Catalán se definen de la siguiente forma: C 0 = 1; C n+1 = [(4n+2)C n ]/ (n+2) El código C equivalente es: unsigned int catalan(unsigned int n) { if (n == 0) return 1; return ((4*n - 2) * catalan(n-1))/(n + 1); } 2. La función recursiva 91 de McCarthy aplicada sobre un argumento n retorna el valor n - 10 si n > 100, y retorna el valor 91 si n <= 100. El siguiente código C implementa la función. Escriba procedimiento en assembly que implemente la misma función unsigned int m91 (unsigned int n) { if (n > 100) return n – 10; return m91(m91(n + 11)); } 3. Un par de funciones son mutuamente recursivas si cada una se define en términos de la otra. Implemente el siguiente par de funciones mutuamente recursivas, utilizadas para determinar si un número es par o impar. unsigned char esPar(unsigned int n) { if (n == 0) return 1; return esImpar(n – 1); }

Upload: ismael-rubio

Post on 29-Sep-2015

220 views

Category:

Documents


2 download

DESCRIPTION

tarea

TRANSCRIPT

  • Arquitectura de Computadores 543.426

    Tarea No. 2

    Resuelva los siguientes problemas utilizando la convencin estndar de uso de registros MIPS (temporales, argumentos, valores de retorno, etc.) y utilizando marcos de activacin (incluyendo manejo de $sp y $fp) de la manera vista en clases.

    1. Escriba una funcin recursiva en assembly MIPS que calcule el n-simo nmero Cataln. Los nmeros Cataln se definen de la siguiente forma:

    C0 = 1; Cn+1 = [(4n+2)Cn]/ (n+2) El cdigo C equivalente es: unsigned int catalan(unsigned int n) { if (n == 0) return 1; return ((4*n - 2) * catalan(n-1))/(n + 1); }

    2. La funcin recursiva 91 de McCarthy aplicada sobre un argumento n retorna el valor n - 10 si n > 100, y retorna el valor 91 si n 100) return n 10; return m91(m91(n + 11)); }

    3. Un par de funciones son mutuamente recursivas si cada una se define en trminos de la otra. Implemente el siguiente par de funciones mutuamente recursivas, utilizadas para determinar si un nmero es par o impar. unsigned char esPar(unsigned int n) { if (n == 0) return 1; return esImpar(n 1); }

  • unsigned char esImpar(unsigned int n) { if (n == 0) return 0; return esPar(n 1); } Plazo mximo de entrega: Lunes 20 de Abril hasta las 17 horas en Secretara de Electrnica. No se corregirn tareas atrasadas. Se debe trabajar en grupos de 2 personas. Grupos de 1 persona son permitidos pero no recomendados. No se permitirn grupos de ms de 2 personas. Se les recuerda que cualquier copia (entre tareas o de fuentes externas) resultar en calificacin 1 para todas las tareas involucradas.