?? search.asm
字號:
datasg segment 'data'
string1 db 'Enter keyword:','$'
string2 db 'Enter Sentence:','$'
string3 db 'Match at location:','$'
string4 db ' H of the sentence.','$'
mess1 db 'Match.',13,10,'$'
mess2 db 'No match!',13,10,'$'
enter db 13,10,'$'
keyin label byte
max1 db 5
act1 db ?
key db 5 dup(?)
strin label byte
max2 db 30
act2 db ?
str db 30 dup(?)
datasg ends
codesg segment 'code'
assume cs:codesg,ds:datasg,es:datasg
main proc far
push ds
sub ax,ax
push ax
mov ax,datasg
mov ds,ax
mov es,ax
start:
lea dx,string1
mov ah,09
int 21h
lea dx,keyin
mov ah,0ah
int 21h
lea dx,enter
mov ah,09
int 21h
loog1:
lea dx,string2
mov ah,09
int 21h
lea dx,strin
mov ah,0ah
int 21h
lea dx,enter
mov ah,09
int 21h
lea di,str
lea si,key
mov al,act2
mov ah,0
mov bl,act1
mov bh,0
cmp ax,bx
jb disp
sub ax,bx
add ax,1
mov bx,0
loog:
mov cl,act1
mov ch,0
cld
repz cmpsb
jz match
inc bx
lea di,str
add di,bx
lea si,key
dec ax
cmp ax,0
jne loog
jmp short disp
match:
add bx,1
lea dx,string3
mov ah,09
int 21h
call binihex
lea dx,string4
mov ah,09
int 21h
lea dx,enter
mov ah,09
int 21h
jmp loog1
disp:
lea dx,mess2
mov ah,09
int 21h
jmp loog1
exit:
mov ah,4ch
int 21h
ret
binihex proc near
mov ch,4
rotate:
mov cl,4
rol bx,cl
mov al,bl
and al,0fh
add al,30h
cmp al,3ah
jl printit
add al,7h
printit:
mov dl,al
mov ah,2
int 21h
dec ch
jnz rotate
ret
binihex endp
main endp
codesg ends
end main
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -