3
그래서 VS2010에서 __asm 블록을 사용하고 있으며 어셈블리 블록의 시작 부분에 포인터를 가져 오는 더 좋은 방법을 찾을 수 없었습니다.C++의 인라인 __asm 블록에 대한 포인터
이 작업을 수행하는 방법을 알고있는 유일한 방법은 void 함수를 선언하는 것입니다. 이 문제의 한 가지 문제점은 void 함수가 어셈블리 블록 전후에 자체 어셈블리를 가지므로 함수의 실제 주소를 가져 와서 오프셋을 추가하여이를 보완해야한다는 것입니다.
예 :
C++
void myfunc(){
__asm{
nop
nop
nop
ret
}
}
이에 조립 유사한 초래 :
push ebp
mov ebp,esp
add esp,8
nop
nop
nop
retn
mov esp,ebp
pop ebp
retn
이 myfunc()가 가장 가능성이 오류 실행한다면.
빠른 응답 주셔서 감사합니다. – Fyxe