You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 12:43:02