Programación General > C/C++
funcion recursiva
morfus_bedxhed:
Gracias por la explicada, ya se con quien dirigrime cuando tenga problemas.
!Saludos!
m0skit0:
Gracias, espero que tú también compartas con nosotros tus conocimientos ^_^ :good:
alb:
Hola,
--- Cita de: "m0skit0" ---
--- Cita de: "morfus_bedxhed" ---En IA32 (comúnmente llamada x86), el paso de argumentos a funciones se realiza a través de la pila. Esto es, se ponen en la pila los argumentos de la función en orden inverso a los declarados en C, usando la instrucción PUSH. En este caso, se pasa el char en la pila a inversa(). La función lo recupera con la instrucción POP.
--- Fin de la cita ---
--- Fin de la cita ---
Eso depiende del modo de llamada de una funccion : cdecl/stdcall pasa por la pila, pero fastcall utiliza ecx y edx para los dos primeros parametros. Luego hay differencia en quien tiene la responsabilidad de limpiar la pila. Antes existia tambien __pascal para indicar que se pasaba de hizquierda hacia derecha. Y otro modo register que utilizaba eax. En C++, this puede ser pasado en ECX o en la pila. Todo eso depiende del compilador y del 'calling conventions' de la function. No es nada estandar. ver aqui : x86 calling conventions
m0skit0:
Tienes toda la razón, pero sólo era un ejemplo. En MIPS se pasan por los registros $aX y se devuelve el valor de la función en $v0 (y también soportaba 2 valores de retorno, en $v1), pero también se podrían pasar por pila. De todas formas, esas son meras convenciones, uno lo puede hacer como prefiera.
Navegación
[*] Página Anterior
Ir a la versión completa