compare1.asm
来自「查找匹配字符串 程序接收用户键入的一个关键字以及一个句子.如果句子中不包含关键」· 汇编 代码 · 共 112 行
ASM
112 行
data segment
buf db 255,253 dup(?)
data1 db 255,253 dup(?)
not_pat db 'not patch$'
pat db 'patch$'
data ends
code segment
assume ds:data,cs:code
start:
mov ax,data
mov ds,ax
mov ah,0Ah
lea dx,buf
int 21h
call ctrl
mov ah,0Ah
lea dx,data1
int 21h
mov bx,0
mov cl,data1[1]
sub cl,buf[1]
inc cl
mov ch,0
xor si,si
xor di,di
L3:
push cx
mov cl,buf[1]
mov ch,0
L4:
mov dl, buf[2+di]
mov dh, data1[2+bx+si]
cmp dl,dh
jne L5
inc si
inc di
Loop L4
jmp L1
L5:
inc bx
pop cx
Loop L3
call ctrl
mov ah,9
lea dx,not_pat
int 21h
jmp L2
L1:
call ctrl
mov ah,9
lea dx,pat
int 21h
mov cl,4
rol bl,cl
mov al,bl
mov dl,al
and dl,0Fh
cmp dl,0Ah
jae L11
add dl,30h
jmp L12
L11:
add dl,37h
L12:
cmp dl,30h
je L15
jmp L16
L15: mov dl,20h
L16: mov ah,2
int 21h
mov cl,4
rol bl,cl
mov dl,bl
and dl,0Fh
cmp dl,0Ah
jae L13
add dl,30h
jmp L14
L13:
add dl,37h
L14:
mov ah,02h
int 21h
L2:
call ctrl
jmp start
mov ah,4ch
int 21h
ctrl proc
mov dl,0ah
mov ah,02h
int 21h
mov dl,0dh
mov ah,02h
int 21h
ret
ctrl endp
code ends
end start
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?