안녕하세요. 도움을 주셔서 감사합니다.ecx 레지스터에 기록하면 Windows 7에서 "액세스 위반"이 발생합니다.
내 C++ 코드에서 일부 임베디드 어셈블러 코드가 있고 [mov ecx, 1AF858h] 줄에 "액세스 위반"이라는 오류 메시지가 계속 나타납니다. Windows XP에서는 완벽하게 작동하지만 불행하게도 Windows 7에서는 작동하지 않습니다.
문제의 원인을 이해하지 못하고이를 해결하기 위해 무엇을해야하는지 알고 싶습니다.
종류 안부, 데이비드
대단히 많이 달라집니다. 더 많은 코드를 보여주십시오. 또한 두 경우 모두에서 32 비트 대상으로 코드가 컴파일됩니까? –
Visual Studio 인라인 어셈블리는 32 비트 모드에서만 사용할 수 있습니다. 클래스 안에서 ECX 레지스터는'this' 포인터를 가지고있다. 변경하면 "재미있는"효과가 발생할 수 있습니다. –
'mov ecx, [1AF858h]'가 아닌'[mov ecx, 1AF858h]'입니까? 후자의 경우 주소 0x1AF858에서 읽는 동안 단지 표준 액세스 위반이 발생하고 ecx와는 아무런 관련이 없기 때문입니다. 그러나 어쨌든 오류의 코드 및/또는 컨텍스트를 게시하십시오. – user786653