您的位置 首页 新能源

汇编:判别两个字符串是否持平(匹配)

;编程从键盘输入两个字符串到内存缓冲区,并比较两个字符串是否相同;;如相同,输出lsquo;matchrsquo;;如不同,输出lsquo;nomatchrsq

;编程从键盘输入两个字符串到内存缓冲区,并比较两个字符串是否相同;
;如相同,输出‘match’;如不同,输出‘no match’。
;经修正的代码可以循环运用
DATAS SEGMENT
data1 DB 100 DUP(?)
data2 DB 100 DUP(?)
string DB 0DH,0AH,$
tital1 DB Please input the first string :,0DH,0AH,$
tital2 DB Please input the second string :,0DH,0AH,$
tital3 db Do you want to have a try again(if yes,input y,else input n ): ,0dh,0ah,$
result1 db match,0dh,0ah,$
result2 db no match,0dh,0ah,$
temp DW 0
DATAS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS
START: MOV AX,DATAS
MOV DS,AX
MOV si,0
tip1: ;输出昂首1
LEA dx,tital1
MOV ah,09h
INT 21H
first: ;输入第一个字符串
MOV ah,01h ;输入字符放在AL中
INT 21H ;以回车作为完毕符
cmp al,0dh
je tip2
MOV data1[si],AL;保存在内存中
INC si
JMP first
tip2:
LEA dx,string
MOV AH,09H
INT 21H
MOV temp,si ; 保存si使得下一个字符串和它做比较
MOV si,0 ;输出昂首2
LEA dx,tital2
MOV ah,09h
INT 21H
second: ;输入第二个字符串
MOV AH,01H ;输入字符放在AL中
INT 21H ;相同以回车作为完毕符
CMP AL,0DH
je output
mov data2[si],al ;保存到内存
inc si
jmp second
output:
LEA dx,string
MOV AH,09H
INT 21H
CMP temp,si ;判别长度是否持平
JNE nomatch
MOV si,0
pipei:MOV AL,DATA1[si];判别是否每个字符都持平
MOV AH,DATA2[si]
INC si
CMP AL,AH
JNE nomatch
CMP si,temp
JE MATCH
JMP pipei
MATCH: LEA DX,result1 ;不匹配就输出定论1
MOV AH,09H
INT 21H
JMP EXIT
nomatch:LEA DX,result2 ;匹配就输出定论2
MOV AH,09H
INT 21H
EXIT: ;问询是否要继续进行
lea dx,tital3
mov ah,09h
int 21h
mov ah,01h
int 21h
cmp al,y
lea dx,string
mov ah,09h
int 21h
je start
cmp al,n
je over
jmp exit

over: ;完毕
MOV AH,4CH
INT 21H
CODES ENDS
END START

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/xinnengyuan/255070.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部