汇编实现字符串比较

data segment
    szBuf db 'What$'
    Buffer db 'What$'
    OutBuf db 'Yes$'
data ends
code segment
    assume cs:code,ds:data
start:
main Proc
    mov ax,data
    mov ds,ax
    lea di,Buffer            ;传给strcmp函数,比较是否相等
    lea si,szbuf            
    call StrCmp            ;寄存器传参给strcmp
    
    cmp ah,1h            ;检验是否为1
    jne next        
    lea bx,outbuf
    mov dx,bx
    mov ah,09h
    int 21h
next:    mov ah,4ch
        int 21h
main endp

Strcmp Proc
    push dx
    push si
    push di
L2:    mov dl,ds:[di]        ;存放的字符串
    mov dh,[si]            ;存放的输入的
    inc di
    inc si
    cmp dl,dh
    je L1
    mov ah,0h
    jmp over1
L1:    cmp dl,'$'
    jne L2
    mov ah,1h
    
over1:    
    pop di
    pop si
    pop dx
    ret
Strcmp endp
code ends

end start



注释: 

Strcmp函数:

         以bi,si作为参数,以ah的值返回值判断,若为1则,相等,为0,则不等


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值