현재 YouTube에서 x64 Assembly Tutorial을 통해 작업하고 있습니다.Visual Studio 2017의 디버거에서 레지스터에 대한 감시를 설정하려고합니다 : "레지스터 값 읽기 오류"
내가 지금하고있는 일은 C++
기능을 ASSEMBLY
에 사용하고 mov
명령을 사용하여 값을 레지스터로 옮기는 것과 같은 기본적인 것들이다.
#include <iostream>
using namespace std;
extern "C" void SomeFunction();
int main() {
SomeFunction();
// Just putting this here to stop the program from closing immediately after opening
cin.get();
return 0;
}
가 ASSEMBLY
코드 : 여기
C++
코드의
.code
SomeFunction proc
mov ax, -1
ret
SomeFunction endp
end
문제 : 나는 비주얼 스튜디오 커뮤니티 2017 사용하고, 내가 로컬 윈도우 디버거를 실행 언제 시계를 ax
레지스터에 추가하십시오. 그러나 오류 메시지 'Error reading register value'
이 계속 나타납니다.
어디로 잘못 가고 있습니까?
사과하지 않을 경우 알려 주시면 더 잘 설명해 드리겠습니다.
UPDATE
: 그래서 내가 대신rbx
레지스터를 사용하여 시도하고 난에 시계를 추가 할 수 있었다. 하지만 문제는 지금 내가 값
-1
을 레지스터로 이동하기 위해
mov
을 사용 했음에도 불구하고 값이 없다는 것을 나타냅니다 (값 섹션이 0으로 표시됨).
이 정보가 도움이되는지 알 수 없습니다.
시계에 레지스터를 추가하는 것을 고려하지 않았지만 디버그 >> Windows >> 레지스터가 * 모든 * 레지스터를 볼 수있는 레지스터가 있습니다. –
@BoPersson 레지스터 창은 항상 16 진수 값을 표시하는 것으로 보입니다.이 값은 조사 식 창에서 형식을 선택할 때 매우 편리합니다. – VTT
어셈블리없이 일반 코드에서'ax' watch를 설정하려고한다면이 문제가 발생합니까? – VTT