assume cs:code,ds:data data segment str db 'ABCDEFHGGHFEDCBA';要判断的字符串 data ends code segment start: mov ax,data mov ds,ax mov bx,offset str mov di,15 ;尾指针,字符串长度减一 mov si,0 ;头指针,建议编译时,把注释删掉 comper: cmp si,di ;字符串为奇数,判断头尾指针相等时为回文 je stop1 push di ;字符串为偶数,要判断尾指针比头指针小时为回文 add di,1 cmp si,di je stop1 pop di xor ax,ax mov al,[bx+si] cmp al,[bx+di] jne stop2 ;比较对称位置的字符,不相等,立即跳出判断 inc si dec di jmp comper stop1: ;是回文,在屏幕上显示绿色的Y,当然你可以自己设置显示的位置 mov ax, 0b800h mov es, ax mov al,89 mov cl,2 mov bx,00a0H mov di,0 mov es:[bx][di],al mov es:[bx][di+1],cl jmp endd stop2: ;不是回文,在屏幕上显示绿色的N,当然你可以自己设置显示的位置 mov ax, 0b800h mov es, ax mov al,78 mov cl,2 mov bx,00a0H mov di,0 mov es:[bx][di],al mov es:[bx][di+1],cl endd: mov ah,4ch int 21h code ends end start
32,944
社区成员
35,339
社区内容
加载中
试试用AI创作助手写篇文章吧