新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 匯編:判斷兩個(gè)字符串是否相等(匹配)

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

        作者: 時(shí)間:2016-12-01 來(lái)源:網(wǎng)絡(luò) 收藏
        ;編程從鍵盤輸入兩個(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 ;以回車作為結(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 ;同樣以回車作為結(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: ;詢問(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)鍵詞: 匯編字符串匹

        評(píng)論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 文登市| 左权县| 青铜峡市| 四子王旗| 红桥区| 芮城县| 黄浦区| 沁阳市| 长寿区| 巴楚县| 嘉兴市| 肇源县| 玉山县| 都安| 紫云| 龙胜| 德阳市| 临澧县| 漳平市| 鄂托克旗| 郧西县| 南昌市| 体育| 普安县| 余姚市| 纳雍县| 西丰县| 岗巴县| 阿拉善左旗| 夏邑县| 定兴县| 郯城县| 石河子市| 内黄县| 大竹县| 清河县| 灵丘县| 无锡市| 增城市| 中牟县| 四会市|