Hola!, estuve buscando por internet pero todavía no me queda del todo claro, alguien sabe algo sobre funciones anidadas?
Algo como esto estoy buscando
void f( int a){
int gg(char v){
return 1;
}
gg('b');
}
Sí se que se lo puede pasar a ASM con gcc -S, de todos modos no entiendo los procedimientos que hace.
Saludos!
Quieres una traduccion en ASM?
No, las diferentes formas de implementar funciones anidadas en ASM y la lógica de cada una de las implementaciones.
Si quisiera el código simplemente haría gcc -S ff.c, pero no es la única forma que hay de escribir funciones anidadas.
Quizás ésto (https://en.wikipedia.org/wiki/Nested_function) te pueda servir.
Saludos!
No, ya lo había leído por arriba.
.section .text
.globl ___f
___f:
movb $0x62, %dil
callq _gg
;/////continuacion del code.... si no un ret
ret
_gg
movb $0x1, %al
ret
o
.section .text
.globl ___f
___f:
jmp slt
__f2:
; continuacion de code si no un ret
ret
_gg
movb $0x1, %al
ret
slt:
movb $0x62, %dil
callq _gg
jmp __f2
No se si quieres algo asi, se podria hacer de muchas maneras.
La funcion f puede estar donde quieras, la ejecucion empezara donde dice .globl, da igual que f este arriba o abajo del todo.
Un saludo.