编辑:回答了我自己的问题。见下文。-_-
我在 .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 调试器)