汇编语言: 试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则 显示“NO MATCH”。

试编写一段程序,要求输入两个字符串,如两个字符串相等则显示“MATCH”, 否则 显示“NO MATCH”。
2017年5月25日23:55:38

data segment
info1 db 'please input fisrt string',0ah,'$'
info2 db 0ah,'please input second string',0ah,'$'

string1 db 101,?,101 dup (?)
string2 db 101,?,101 dup (?)

match   db 0ah,'match',0ah,'$'
nomatch db 0ah,'no match',0ah,'$'
data ends

stack segment stack
dw 20h dup(?)
top label word
stack ends

code segment
    assume ds:data,cs:code,ss:stack
    p proc far 

    mov ax,data
    mov ds,ax

    mov ax,stack
    mov ss,ax
    lea sp,top

    ;;get input
    lea dx,info1
    mov ah,09h
    int 21h
    lea dx,string1
    mov ah,0ah
    int 21h

    lea dx,info2
    mov ah,09h
    int 21h
    lea dx,string2
    mov ah,0ah
    int 21h

getlength:
    mov al,string1+1    
    mov bl,string2+1

compare:
    cmp al,bl
    jne no  
    mov cl,al   
    lea si,string1
    lea di,string2      
l1: 
    mov ax,[si]
    mov bx,[di]
    cmp ax,bx
    jne no
    ;je
    cmp cl,0
    je yes
    ;jne
    inc si
    inc di
    loop l1

yes:
    lea dx,match
    mov ah,09h
    int 21h
    jmp exit    
no:
    lea dx,nomatch
    mov ah,09h
    int 21h
    jmp exit            

exit:
    mov ah,4ch
    int 21h

    p endp
code ends 
    end p
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值