程序集x86定义数据段中的变量问题

时间:2017-04-30 06:30:12

标签: assembly x86 tasm

我在代码段中定义了变量,如下所示:

.data

msg db "Enter a string: $"
buff db 20, ?, 20 dup(?)
newline db 13, 10, "$" 
promptmsg db "You have entered: $"
strlen db ?
msgreverse db ?
palinmsg db "Palindrome$"
notpalinmsg db "Not palindrome$"
reverseprompt db "The reverse of the string is: $" 

我正在尝试比较字符串是否是回文。通过这些比较和跳转声明。

cmp bx, dx
je palin
jne notpalin

palin:
    lea dx, palinmsg
    mov ah, 9h
    int 21h
    jmp exit

notpalin:
    lea dx, notpalinmsg
    mov ah, 9h
    int 21h
    jmp exit

exit:
    mov ax, 4c00h
    int 21h

我确定检查字符串是否是回文没有问题,我的问题是每当字符串是回文时,它不会输出我在数据段中定义的palinmsg,但它输出内容msgreverse位于数据段声明中的palinmsg顶部。这是为什么?

0 个答案:

没有答案