概述
输入两个字符串,比较字符串是否相同
程序运行:
代码:
datas segment
string1MaxLength db 0ffh,0
string1 db 100h dup(?)
string1Number dw 0
string2MaxLength db 0ffh,0
string2 db 100h dup(?)
string2Number dw 0
input1Prompt db 'input string1:$'
input2Prompt db 0dh,0ah,'input string2:$'
outputMatch db 0dh,0ah,'MATCH$'
outputNoMatch db 0dh,0ah,'NO MATCH$'
datas ends
stacks segment
db 100h dup(?)
stacks ends
codes segment
assume cs:codes,ds:datas,ss:stacks
main proc far
start:
push ds
mov ax,0h
push ax
mov ax,datas ;初始化ds
mov ds,ax
;输出输入string1提示
lea dx,input1Prompt
mov ah,9
int 21h
;输入string1
lea dx,string1MaxLength
mov ah,10
int 21h
;保存string1的长度和设置结束字符
mov bl,string1MaxLength+1
mov bh,0
mov string1Number,bx
mov string1[bx],'$'
;输出输入string2提示
lea dx,input2Prompt
mov ah,9
int 21h
;输入string2
lea dx,string2MaxLength
mov ah,10
int 21h
;保存string1的长度和设置结束字符
mov bl,string2MaxLength+1
mov bh,0
mov string2Number,bx
mov string2[bx],'$'
;比较string1和string2的字符串长度
cmp bx,string1Number
jne s3 ;不相等,直接跳转s3
;相等时,判断字符是否相同
mov si,0
mov di,0
mov cx,string1Number
compare:
mov al,string1[si]
cmp al,string2[di]
jne s3
inc si
inc di
loop compare
;字符完全相同,输出MATCH
lea dx,outputMatch
mov ah,9
int 21h
jmp exit ;跳转至退出程序
;不相等,输出NO MATCH
s3:
lea dx,outputNoMatch
mov ah,9
int 21h
exit:
ret
main endp
codes ends
end main
最后
以上就是乐观斑马为你收集整理的汇编语言(四)之比较字符串的全部内容,希望文章能够帮你解决汇编语言(四)之比较字符串所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复