比较字符串是否相等-汇编语言

 比较两个字符串 BUF1 和 BUF 所含的字符是否相同,相同则 AL 返回 0,不同 AL 返回 1

最后的结果为:

第一行为BUF1的输入,第二行为BUF1的输出,第三行为BUF2的输入,第四行为BUF2的输出,第五行为判断的结果。

DATAS SEGMENT
BUF1 DB 20,?,20 DUP('$')
LEN1 EQU $-BUF1 ;获取字符串长度
BUF2 DB 20,?,20 DUP('$')
LEN2 EQU $-BUF2
DATAS ENDS
STACKS SEGMENT
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV ES,AX  
	LEA DX,BUF1  

	MOV AH,10		;输入
    INT 21H   
 
    mov dl,0ah  ;换行
    mov ah,2  
    int 21h  
    mov dl,0dh  
    mov ah,2  
    int 21h 
    
    lea dx,BUF1[2] ;输出
    mov ah,9          
    int 21h  
    
    mov dl,0ah  ;换行
    mov ah,2  
    int 21h  
    mov dl,0dh  
    mov ah,2  
    int 21h

	LEA DX,BUF2  ;输入
	MOV AH,10
    INT 21H 
	
	mov dl,0ah  ;换行
    mov ah,2  
    int 21h  
    mov dl,0dh  
    mov ah,2  
    int 21h 
    
    lea dx,BUF2[2] ;输出
    mov ah,9           
    int 21h  
    
    mov dl,0ah  ;换行
    mov ah,2  
    int 21h  
    mov dl,0dh  
    mov ah,2  
    int 21h

MOV CX,LEN1 ;将长度存入CX 中
CMP CX,LEN2 ;比较字符串长度
JNZ NO
MOV SI,OFFSET BUF1
MOV DI, OFFSET BUF2
  
REPE CMPSB ;逐个比较
JZ YES ;CX为零时跳出循环,说明两字符串相等

NO: MOV AL,1 ;CX不为零时跳出循环
JMP L
YES:MOV AL,0

L: ADD AL,30H ;将AL中的0与1转换成可显示结果
MOV DL,AL ;显示比较结果
MOV AH,02
INT 21H

MOV AH,4CH
INT 21H
CODES ENDS
END START

 

结果图:

  • 6
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值