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

时间:2015-01-16 05:29:31

标签: assembly tasm

比较字符时,我的预期输出是“不相等” - 但是,显示的输出总是“相等”。

我的程序比较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

1 个答案:

答案 0 :(得分:1)

您忘记初始化DS

...
main:

mov ax, cdata
mov ds, ax

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