簡體   English   中英

我的匯編語言比較字符給出了錯誤的結果

[英]my assembly language comparing characters give the wrong result

比較字符時,我的預期輸出是“不相等”-但是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

您忘記初始化DS

...
main:

mov ax, cdata
mov ds, ax

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM