⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 yanzy3.asm

📁 汇编程序实现从键盘输入的字符串比较
💻 ASM
字号:
data segment
    buff1  db 10
	     db 0
		 db 10 dup(0)
    buff2  db 10
	     db 0
		 db 10 dup(0)
    l db 2
   buff3 db 'notfound',0dh,0ah,'$'
    

data ends
sst segment 
    top dw 50 dup(?)
sst ends
code segment
     assume cs:code,ds:data,ss:sst
start:mov ax,data
	  mov ds,ax
	  mov ax,sst
	  mov ss,ax
	 
	  lea dx,buff1
	  mov ah,0ah
	  int 21h;输入第一个数,必须带符号两位数。


	  lea dx,buff2
	  mov ah,0ah
	  int 21h;输入第二个数,必须带符号两位数。
          
	lea si,buff1(2)
	lea di,buff2(1)

	


           
         mov bl,buff2(1)
          
           cmp buff1(1),bl
          ja kkk;若buff2无字符则没找到
          add bl,1

 firstcmp1:inc di
          dec bl
          cmp bl,0
        jna notfound
;================================
 ;    ;   pushf
;	mov dl,'<'
;	mov ah,2
;	int 21h          
;	mov dl,bl
;	add dl,30h
;	mov ah,2
;	int 21h
 ;      mov dl,'>'
;	mov ah,2
;	int 21h         
;        popf ;调试用	    
;================================	
firstcmp :mov dh,[di]
	  cmp [si],dh
;=========================== 
;               pushf
;	mov dl,'['
;	mov ah,2
;	int 21h          
;	mov dl,dh
;	mov ah,2
;	int 21h
 ;      mov dl,']'
;	mov ah,2
;	int 21h         
 ;       popf ;调试用
 ;==============================         
        je chazhao;比较第一个字符相同则跳到chazhao
      jmp firstcmp1
kkk:jmp notfound
     
chazhao :cmp buff1(1),bl
          ja notfound;剩余字符数比第一字节数少notfound
         push di
         mov ch,0
          mov cl,buff1(1)
          dec cx
    
 chazhao1: inc si
          inc di
        mov dh,[di]  
	cmp [si],dh
  ;=========================== 
 ;              pushf
;	mov dl,'{'
;	mov ah,2
;	int 21h          
;	mov dl,dh
;	add dl,30h
;	mov ah,2
;	int 21h
 ;      mov dl,'}'
;	mov ah,2
;	int 21h         
 ;       popf ;调试用
 ;==============================  
 	jne inner
         loop chazhao1
        jmp found

inner:pop di
          lea si,buff1(2)
         inc di
	dec bl
	jmp firstcmp
       
found:		   mov dl,0dh
	   mov ah,2
	   int 21h
	   mov dl,0ah
	   mov ah,2
	   int 21h;回车换行

	mov ch,buff2(1)  
	sub ch,bl
	mov dl,ch
        add dl,31h  
      	mov ah,2
          int 21h
          jmp over
notfound:  lea dx,buff3
          mov ah,9
          int 21h	  
	  
	  
	  
	  
	  
	
over:	   mov ax,4c00h
       int 21h	   
	   
	   
	   

code ends
     end start

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -