笔试题-用汇编语言实现Palindrome(回文)的判断

kernelkoder 2015-01-23 02:00:33
笔试题-用汇编语言实现Palindrome(回文)的判断
请赐教
...全文
1006 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kernelkoder 2015-08-23
  • 打赏
  • 举报
回复
谢谢,还是有汇编语言高手
斧王啊 2015-06-28
  • 打赏
  • 举报
回复
引用 2 楼 fuyong13 的回复:
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
可以不用判断奇偶,把退出循环条件设置为小于等于吗 jng stop1
我会飞 2015-06-26
  • 打赏
  • 举报
回复
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
kernelkoder 2015-04-02
  • 打赏
  • 举报
回复
没人懂汇编语言吗?

33,008

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧