8086 DOS模拟器(Turbo Debugger)中加减操作后零标志位(ZF)未置1的问题排查
8086 DOS模拟器(Turbo Debugger)中加减操作后零标志位(ZF)未置1的问题排查
我正在用Turbo Debugger(TD)为8086 DOS模拟器编写一个简单的汇编程序,目标是通过加法或减法操作将零标志位(ZF)置为1,但不管怎么尝试,零标志位都没有被正确设置。以下是我使用的代码片段:
IDEAL MODEL small STACK 100h DATASEG CODESEG start: mov al, 4Bh mov ah, 4Bh sub al, ah exit: mov ax, 4C00h int 21h END start
我完全搞不清问题出在哪里。
我原本预期会像课本里的示例那样,看到零标志位变为1:
课本示例:两个相同数值执行减法操作后,ZF标志位被置为1
但实际在TD中执行完程序后,看到的状态却是:
TD执行后的最终状态:零标志位(ZF)并未被置1
我尝试用F8(逐行执行)和F7(单步执行)进行调试,过程中感觉TD好像跳过了程序的第一行?我不太确定是不是这个原因导致的问题。
备注:内容来源于stack exchange,提问作者user25868573
相关产品推荐
相关产品推荐

