안녕하세요.
인라인 어셈블러를 사용하다가 다음과 같은 표현에 에러가 생겼습니다
var
ErrorAddr : LongWord;
begin
try
// 어떤 로직 구현
except
asm
mov ErrorAddr, EIP;
end;
ShowMessage('에러나는 번지는 ' + IntToStr(ErrorAddr) + '입니다.');
end;
end;
즉, 어떤 루틴을 돌다가 에러가 생기는 현재의 번지를 EIP레지스터에 저장이 되어 있으므로 가져오는 프로그램인데 델파이에서는 EIP라는 예약어가 없다는 에러가 생깁니다.
EIP는 Extended Instruction Pointer 레지스터로 현재 컴파일러가 지시하는 번지를 나타내는 고유한 변수명으로 알고 있는데, 델파이에서 인식을 하지 못하니, 막막합니다.
혹시 위의 방법을 사용할 수 있는 방법을 알고 계신 분은 답을 꼭 부탇드립니다. 그리고, 위의 방법이 불가능할 경우 델파이에서 현재 에러가 뜬 번지를 프로그램상에서 어떻게 알아낼수 있는지도 답변 부탁드립니다.