此代码应检查字符串是否为回文。
但它总是为任何字符串打印“是”。我该如何解决这个问题?
我认为错误出现在某些跳转指令中。
错误是什么?
include inout.asm
.model small,c
.stack 200h
.data
pal db "rear"
;pal db 200 dup("mohammad")
pal_len equ $ - pal - 1
szYes db "yes$"
szNo db "no$"
.code
.startup
;call gets,offset pal
call puts,offset pal
lea si, pal
lea di, pal
add di, pal_len
mov cx, 0
CheckIt:
mov al, byte ptr [si]
mov dl, byte ptr [di]
cmp al, dl
jne No
inc si
dec di
inc cx
cmp cx, pal_len
JNE CheckIt
lea dx,szYes
jmp done
No:
lea dx,szNo
done:
.exit
end