far call 이란 무엇인가요?
글쓴이: kese111 / 작성시간: 화, 2010/04/13 - 12:14오전
WORD farcall[3];
farcall[2] = (selector<<3);
_asm
{
mov ebx,x
push ebx
call fword ptr [farcall]
mov res,eax
}
위의 코드가 뭘 의미하는지 모르겠습니다.
opcode는 ff 이고 값은 6바이트입니다.
인텔 매뉴얼 보면 이런 형식이
call m16:32 로 나오는데, 설명을 이해 못하겠습니다.
타입이 두개로 나뉘는데 B ModRM:r/m(r) 입니다.
설명은 다음과 같습니다.
In 64-bit mode: if selector points to a gate, then RIP = 64-bit displacement taken from gate
else RIP = zero extended 32-bit offset from far point referenced in the instruction.
64-bit mode는 아니니까 RIP = 32-bit offset 으로 확장된 zero 이거나
RIP = zero 이고 32-bit offset 으로 확장된거 둘 중 하나같은데
이 명령어의 정확한 의미를 알려주시면 갑사하겠습니다 ㅠ_ㅠ
Forums:
댓글 달기