편집 : 내 질문에 답합니다. 아래를 참조하십시오. -_- 다음과 같이 이상하게 작동하는 변수 (인텔 8086)
내가 .DATA 세그먼트에 정의 된 변수가 :retVal DW 0100h ;stores hex fraction of the intermediate value. Starts at 1.00
이 내가 추가하거나 내 반환 값을 얻기 위해 할 빼기 값입니다.
는 코드 세그먼트에 표시 처음으로 다음과 같은 점에 :
sub [retVal], ax ;
내가 디버거를 사용했으며,이 작업시 다음 사항을 확인 할 수 있습니다, 도끼 레지스터입니다 : 0000H .
그러나, 나는 바로 전에 다음 코드 줄을 추가하는 경우 :
mov dx, 0100h;
mov [retVal], 0100h;
내가 (또한 잘못된) 완전히 다른 가치를 얻을. 나는 꽤 당황 스럽다. 근본적으로 변수를 잘못 사용하고 있습니까? 변수가 원래 초기화 된 동일한 값을로드하는 (그리고 아직 수정되지 않은)로드가 결과를 변경하는 이유는 없습니다.
아이디어가 있으십니까? 그렇다면 누군가 CodeView를 통해 변수의 가치를 추적하는 방법을 생각 나게 할 수 있습니까? (내가 사용중인 DOSBox 디버거)
문제의 원인이되는 것으로 생각되는 코드 줄만 표시하면 문제의 원인을 추측 할 수 없습니다. 보고있는 문제를 보여주는 짧은 예를 게시하십시오. * 예상 * 및 * 실제 * 결과를 모두 정확하게 명시하는 것을 잊지 마십시오. –