汇编比较两个字符串

题目:输入两个字符串,其中两个字符串的字符数相等。然后比较两个字符串所包含的字符,如果完全相等,则输出‘Match’,否则,输出‘No match’。

data segment
        str1 db 512 dup('$')
        len  equ $-str1			;获取str1的长度
        str2 db 512 dup('$')
        matc db 'Match$'
        nomh db 'No Match$'
data ends

code segment
assume ds:data,cs:code
start:
        mov ax,data
        mov ds,ax
        mov es,ax

        mov cx,len			;设置循环次数为str1的长度

        mov di,offset str1
        mov si,offset str2


        mov ah,0ah			;输入第一个字符串
        mov dx,offset str1
        int 21h

		mov ah,02h			;回车换行
        mov dl,0dh
        int 21h
        mov dl,0ah
        int 21h
        

        mov ah,0ah			;输入第二个字符串
        mov dx,offset str2
        int 21h

		mov ah,02h			;回车换行
        mov dl,0dh
        int 21h
        mov dl,0ah
        int 21h

                     
        repz cmpsb			;当前字符相同则继续循环
        jz match
        jnz nomch

        match:				;字符串相同则显示match
        mov ah,09h
        mov dx,offset matc
        int 21h
        jmp done

        nomch:				;字符串不同则显示Nomatch
        mov ah,09h
        mov dx,offset nomh
        int 21h
        jmp done

       
        done:        		;返回操作系统
        mov ah,4ch
        int 21h
        
code ends
end start


 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值