編輯:回答我自己的問題。見下文。 -_-行爲奇怪的變數(Intel 8086)
我在.data段中定義的變量如下:
retVal DW 0100h ;stores hex fraction of the intermediate value. Starts at 1.00
這是我加上或減去來讓我的返回值。
第一次它在代碼段示出了在以下點:
sub [retVal], ax ;
我已經使用的調試器,並且可以確認,在此操作的時間,AX寄存器是:0000H 。
不過,如果我添加下面的代碼行之前立即:
mov dx, 0100h;
mov [retVal], 0100h;
我得到一個完全不同的值(也是錯誤的)。我很困惑。我在這裏從根本上濫用變量嗎?我不明白爲什麼加載變量最初初始化爲(並且尚未從中修改)的相同值會改變結果。
任何想法?否則,有人會提醒我如何通過CodeView跟蹤變量的值? (我正在使用的DOSBox調試器)
如果您只向我們展示您認爲會導致問題的代碼行,我們無法猜測出現了什麼問題。請發佈一個簡短的完整示例,說明您遇到的問題。不要忘記明確說明*預期*和*實際*結果。 – 2010-07-19 01:41:10