📄 findstringlast.asm
字号:
DATAS SEGMENT
STRING1 DB 80 dup(?)
FLAG1 DB ?
flag db '0'
y db 'please input the word you wanna find: $'
z db 'please input the sentence:$'
X db 'the word you wanna find has appeared $'
DATAS ENDS
extra segment
STRING2 DB 80 dup(?)
extra ends
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,ES:EXTRA
START:
push ds
sub ax,ax
push ax
push es
sub ax,ax
push ax
mov ax,datas
mov ds,ax
mov ax,extra
mov es,ax
lea bx,string1
lea di,string2
mov flag1,0
lea dx,Y
mov ah,09
int 21h
cld
next1: mov ah,01h
int 21h
cmp al,20h
je print1
follow1:inc flag1
mov [bx],al
inc bx
jmp next1
print1: mov dl,0dH
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
lea dx,z
mov ah,09
int 21h
next2: mov ah,01h
int 21h
cmp al,0dh
jz compare
follow2:
mov es:[di],al
inc di
jmp next2
COMPArE:
MOV CH,0
MOV CL,flag1
LEA SI,STRING1
LEA DI,ES:STRING2
REPE CMPSB
CMP CX,0
JNZ Incs
INC FLAG
JMP INCS
INCS:
MOV AL,20H
REPNZ SCASB
CMP ES:[DI],'$'
JZ PRINT
MOV CH,0
MOV CL,flag1
LEA SI,STRING1
REPE CMPSB
CMP CX,0
JNZ INCS
INC FLAG
JMP INCS
PRINT:
mov dl,0dH
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
lea dx,X
mov ah,09
int 21h
MOV DL,FLAG
MOV AH,02H
INT 21H
MOV AH,4CH
INT 21H
CODES ENDS
END START
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -