Ir al contenido principal

Investigación de funciones complejos y llamadas

La investigación realizada fue para saber como se implementa casos donde se crea funciones con más de 4 parámetros y también un caso donde se llame una función con más de 4 parámetros. 
En MIPS sucede que hay cuatro registros para los argumentos y no sabíamos que hacer en casos que se requiera llamar o crear una función con más de 4 argumentos.

Solución
La solución que se dio fue que se utiliza los 4 argumentos brindados y se empieza a reservar campos en la pila y luego guardar  los argumentos restantes en esos campos reservados.
Con esto podemos tomar la funcionalidad de utilizar los cuatro primero argumentos y en dado caso que haya más parámetros se utiliza una pila temporalmente.

Comentarios

Entradas más populares de este blog

Prueba de códigos básicos

A continuación se muestra un código básico del lenguaje: string salto = "\n"@ int Edad = 5@ bool FuncionBool(bool b) { return b@ } real FuncionReal(real r) { return r+1.0@ } int FuncionInt(int i) { return i+1@ } string FuncionString(string s) { return s@ } char FuncionChar(char c) { return c@ } int main() { char c@ c = FuncionChar('I')@ print(c)@ print(salto)@ string s@ s = FuncionString("Hola Nahum")@ print(s)@ print(salto)@ int i@ i = FuncionInt(1)@ print(i)@ print(salto)@ real r@ r = FuncionReal(1.1)@ print(r)@ print(salto)@ bool b@ b = FuncionBool(True)@ print(b)@ } Seguidamente de su traducción al lenguaje MIPS .data true: .asciiz "print true" false: .asciiz "print false" Et0: .asciiz "\n" Et1: .asciiz "Hola Nahum" .text .globl main print_true: li    $v0,4 la   $a0, true syscall jr $ra print_false: li    $v0,...

Pruebas de condicionales

Se realizaron pruebas de diferentes ejemplos para expresiones condicionales. Se analizaron cuales son los procesos que deben ser ejecutados para las expresiones condicionales en asignaciones booleanas que podrán ser utilizadas en las diferentes estructuras de control, ejemplo; for, while, if.

Investigación de condicionales

Hasta el momento se ha avanzado en el proyecto y se ha llegado la punto donde se logra generar funciones, asignaciones complejas, llamadas de funciones y varios tipos de expresiones. Al tener expresiones y la mayoría de la gramática se requiere saber como lograr hacer condiciones en MIPS, ya que es sumamente   importante para darle sentido a la funcionalidad de los códigos que se ingresan en el compilador. Gracias a la tarea II y actividad #5 del curso, se tiene un resumen sobre el comportamiento de las condiciones en MIPS, y se logro llegar a una idea sobre lo que se necesita estructurar en el código Back-End para lograr que se genere las condiciones que aparezcan en el código fuente.