The name of a function is its address. The following example is not guaranteed to work or be portable, but it is a Win32 example built with BC55.
Code:
#include <stdio.h>
void foo(void)
{
puts("foo");
}
int main(void)
{
printf("main @ %p\n", (void*)main);
printf("foo @ %p\n", (void*)foo);
return 0;
}
/* my output
main @ 0040108C
foo @ 0040107C
*/
I know they are pushed onto the stack, but I cant seem to get relevant addresses popping such.
Are you really trying to use assembly calling convention for a C function? Your compiler should document such things.