📄 text.asm
字号:
data segment
str1 db 80,?,80 dup(?)
str2 db 80,?,80 dup(?)
hlo1 db 13,10,'enter ketword:$'
hlo2 db 13,10,'enter sentence:$'
mes1 db 13,10,'match at location:$'
mes2 db 13,10,'no match!$'
mes3 db 'h of the sentence,$'
tab db '0123456789abcdef'
data ends
prog segment
main proc far
assume cs:prog,ds:data,es:data
start:push ds
mov ax,0
push ax
mov ax,data
mov ds,ax
mov es,ax
next:
lea dx,hlo1
mov ah,9
int 21h
lea dx,str1
mov ah,10
int 21h
lea dx,hlo2
mov ah,9
int 21h
lea dx,str2
mov ah,10
int 21h
mov al,str2+1
sub al,str1+1
inc al
mov bl,al
mov bh,1
lea si,str2+2
mov dx,si
cld
mov ah,1
find:
mov si,dx
lea di,str1+2
mov cl,str1+1
repz cmpsb
jz math
inc dx
inc bh
dec bl
jnz find
nmth:
lea dx,mes2
mov ah,9
int 21h
jmp next
ret
math:
lea dx,mes1
mov ah,9
int 21h
mov al,bh
and al,0f0h
mov cl,4
shr al,cl
mov ah,0
mov si,ax
mov dl,tab[si]
mov ah,2
int 21h
mov al,bh
and al,0fh
mov ah,0
mov si,ax
mov dl,tab[si]
mov ah,2
int 21h
lea dx,mes3
mov ah,9
int 21h
jmp next
ret
main endp
prog ends
end start
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -