專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計(jì)實(shí)例 >> 瀏覽文章

匯編:判斷兩個(gè)字符串是否相等(匹配)

作者:佚名   來(lái)源:本站原創(chuàng)   點(diǎn)擊數(shù):  更新時(shí)間:2013年12月01日   【字體:

 ;編程從鍵盤(pán)輸入兩個(gè)字符串到內(nèi)存緩沖區(qū),并比較兩個(gè)字符串是否相同;
;如相同,輸出‘match’;如不同,輸出‘no match’。
;經(jīng)修改的代碼能夠循環(huán)使用
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:           ;輸入第一個(gè)字符串
 MOV ah,01h   ;輸入字符放在AL中
 INT 21H     ;以回車(chē)作為結(jié)束符
 cmp al,0dh
 je  tip2
 MOV data1[si],AL;保存在內(nèi)存中
 INC si
 JMP first
tip2:
 LEA dx,string
 MOV AH,09H
 INT 21H
 MOV temp,si ; 保存si使得下一個(gè)字符串和它做比較
 MOV si,0         ;輸出抬頭2
 LEA dx,tital2
 MOV ah,09h
 INT 21H
second:       ;輸入第二個(gè)字符串
 MOV AH,01H  ;輸入字符放在AL中
 INT 21H    ;同樣以回車(chē)作為結(jié)束符
 CMP AL,0DH
 je output           
 mov data2[si],al   ;保存到內(nèi)存
 inc si
 jmp second
output:
 LEA dx,string
 MOV AH,09H
 INT 21H
 CMP temp,si      ;判斷長(zhǎng)度是否相等
 JNE nomatch
 MOV si,0
pipei:MOV AL,DATA1[si];判斷是否每個(gè)字符都相等
 MOV AH,DATA2[si]
 INC si
 CMP AL,AH
 JNE nomatch
 CMP si,temp
 JE MATCH
 JMP pipei
MATCH: LEA DX,result1   ;不匹配就輸出結(jié)論1
     MOV AH,09H
     INT 21H
     JMP EXIT
nomatch:LEA DX,result2   ;匹配就輸出結(jié)論2
  MOV AH,09H
  INT 21H
EXIT:                     ;詢(xún)問(wèn)是否要繼續(xù)進(jìn)行
     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:                ;結(jié)束
MOV AH,4CH
  INT 21H
CODES ENDS
 END START
 

關(guān)閉窗口

相關(guān)文章