我是靠谱客的博主 乐观斑马,最近开发中收集的这篇文章主要介绍汇编语言(四)之比较字符串,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

输入两个字符串,比较字符串是否相同

程序运行:

 

代码:


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

 

最后

以上就是乐观斑马为你收集整理的汇编语言(四)之比较字符串的全部内容,希望文章能够帮你解决汇编语言(四)之比较字符串所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(56)

评论列表共有 0 条评论

立即
投稿
返回
顶部