java字符串是否相等_汇编:判断两个字符串是否相等(匹配)

;编程从键盘输入两个字符串到内存缓冲区,并比较两个字符串是否相同;

;如相同,输出‘match’;如不同,输出‘no match’。

;经修改的代码能够循环使用

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:           ;输入第一个字符串

MOV ah,01h   ;输入字符放在AL中

INT 21H     ;以回车作为结束符

cmp al,0dh

je  tip2

MOV data1[si],AL;保存在内存中

INC si

JMP first

tip2:

LEA dx,string

MOV AH,09H

INT 21H

MOV temp,si ; 保存si使得下一个字符串和它做比较

MOV si,0         ;输出抬头2

LEA dx,tital2

MOV ah,09h

INT 21H

second:       ;输入第二个字符串

MOV AH,01H  ;输入字符放在AL中

INT 21H    ;同样以回车作为结束符

CMP AL,0DH

je output

mov data2[si],al   ;保存到内存

inc si

jmp second

output:

LEA dx,string

MOV AH,09H

INT 21H

CMP temp,si      ;判断长度是否相等

JNE nomatch

MOV si,0

pipei:MOV AL,DATA1[si];判断是否每个字符都相等

MOV AH,DATA2[si]

INC si

CMP AL,AH

JNE nomatch

CMP si,temp

JE MATCH

JMP pipei

MATCH: LEA DX,result1   ;不匹配就输出结论1

MOV AH,09H

INT 21H

JMP EXIT

nomatch:LEA DX,result2   ;匹配就输出结论2

MOV AH,09H

INT 21H

EXIT:                     ;询问是否要继续进行

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:                ;结束

MOV AH,4CH

INT 21H

CODES ENDS

END START

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值