我的汇编语言比较字符给出了错误的结果

my assembly language comparing characters give the wrong result

比较字符时,我的预期输出是 'not equal' - 但 tasm 显示的输出始终是 'equal'。

我的程序比较 dl 和 bl 中的值,如果相等则显示相等,如果不相等则显示不相等

...但即使等于或不等于输出总是相等我现在不知道问题出在哪里

 title compare.program
cstack segment para stack 'stack'
dw 200h
cstack ends

cdata segment para 'data'
msg1 db 'equal $'
msg2 db 'not equal $'
cdata ends

ccode segment para 'code'
Assume cs:ccode,ds:cdata,ss:cstack
main:
mov dl,'a'
mov bl, 'b'

compare:
cmp dl,bl
je correct
jmp wrong


correct:
mov ah,09
lea dx,msg1
int 21h

mov ah,4ch
int 21h

wrong:
mov ah,09
lea dx,msg2
int 21h

mov ah,4ch
int 21h

ccode ends
end main

您忘记初始化 DS:

...
main:

mov ax, cdata
mov ds, ax

mov dl,'a'
mov bl, 'b'
...