zzz_nec
19.11.2007, 00:00
есть код на C
void foo(void);
void main(){
foo();
}
void foo(void){
return;
}
компилирует,линкуем...смотр им дизасм...там што то вроди
j_foo PROC
jmp _foo
j_foo ENDP
_main PROC
push ebp
mov ebp,esp
call j_foo (*)
mov esp,ebp
pop ebp
ret
_main ENDP
_foo PROC
push ebp
mov ebp,esp
mov esp,ebp
pop ebp
ret
_foo ENDP
а как сделать што бы в (*) было сразу call _foo
или
как получить адрес самой функции, а не джампа на нее
единственное што знаю - это написать #pragma alloc_text("sect",foo)
и получить адрес начала секции
void foo(void);
void main(){
foo();
}
void foo(void){
return;
}
компилирует,линкуем...смотр им дизасм...там што то вроди
j_foo PROC
jmp _foo
j_foo ENDP
_main PROC
push ebp
mov ebp,esp
call j_foo (*)
mov esp,ebp
pop ebp
ret
_main ENDP
_foo PROC
push ebp
mov ebp,esp
mov esp,ebp
pop ebp
ret
_foo ENDP
а как сделать што бы в (*) было сразу call _foo
или
как получить адрес самой функции, а не джампа на нее
единственное што знаю - это написать #pragma alloc_text("sect",foo)
и получить адрес начала секции