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

📄 serhex.asm

📁 输入一句子以及一子字符串(字符数分别小于50)
💻 ASM
字号:
data segment
	s1 db 'Please Input the String:$'
	s2 db 0ah, 0dh, 'Input the substring:$'
	r1 db 0ah, 0dh, 'No match!', 0ah, 0dh,'$'
	r2 db 0ah, 0dh, 'Match at $'
	string db 50, 0, 50 dup(?)
	subs db 50 ,0, 50 dup(?)
data ends	
code segment
	assume cs:code, ds:data
start:
	mov ax, data
	mov ds, ax
	
getString:
	mov ah, 09h		
	lea dx, s1
	int 21h		;显示输入提示

	mov ah,0ah
	lea dx, string	
	int 21h		;输入string

	mov ah, 09h
	lea dx, s2
	int 21h		;显示输入提示	

	mov ah,0ah
	lea dx, subs
	int 21h		;输入substring

	lea si, subs+2
	lea di, string+2

	mov cl, [si-1]
	mov dl, [di-1]
	mov bx, 01h
						
begin:	
	inc bx		
	mov al, [si]
	cmp al, [di]
	jz trust
	jnz false

trust:
	inc si
	inc di
	dec cl
	dec bx
	cmp cl, 00h	
	jnz begin			
	jz match	 
false:					
	inc di	
	dec dl
	cmp dl, 00h	
	jnz begin
	jz nomatch	 
		
match:
	lea dx, r2
	mov ah, 09h			
	int 21h
				;转成十六进制
	mov ax, bx
	mov cl, 10h
	div cl
	mov cl, al		;商存于cl
	mov ch, ah		;余数存于ch
h:
	cmp cl, 9
	js h1
	jns h2
h1:	
	add cl, 30h
	mov ah, 02h
	mov dl, cl
	int 21h
	jmp l
h2:
	add cl, 37h
	mov ah, 02h
	mov dl, cl
	int 21h
	jmp l
l:
	cmp ch, 9
	js l1
	jns l2
l1:
	add ch, 30h
	mov ah, 02h	
	mov dl, ch
	int 21h
	jmp exit
l2:
	add ch, 37h
	mov ah, 02h
	mov dl, ch
	int 21h
	jmp exit

nomatch:
	lea dx, r1
	mov ah, 09h			
	int 21h	
	jmp exit

exit:
	mov ah, 4CH
	int 21h

code ends
end start

⌨️ 快捷键说明

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