匹配.asm

来自「大学时学汇编做的一些小实验」· 汇编 代码 · 共 75 行

ASM
75
字号
DATA SEGMENT
   KEYWORD DB 10,?,10 DUP(?)
   SENTENCE DB 30,?, 30 DUP(?)
    MESS1 DB 13,10,'ENTER KEYWORD:','$'
    MESS2 DB 13,10,'ENTER SENTENCE: $'
    MESS3 DB 13,10,'no match !$'
    MESS4 DB 13,10,'match! $'
    COUNT DB ?
    
DATA ENDS

 

CODE SEGMENT
    ASSUME CS:CODE,DS:DATA,ES:DATA
START:
    MOV AX,DATA
    MOV DS,AX
    MOV ES,AX
    MOV DX,OFFSET MESS2
    MOV AH,9
    INT 21H
    
    MOV DX,OFFSET SENTENCE
    MOV AH,10
    INT 21H
    
    AGAIN:
    MOV DX,OFFSET MESS1
    MOV AH,9
    INT 21H
    
    MOV DX,OFFSET KEYWORD
    MOV AH,10
    INT 21H
    
    MOV DI,OFFSET SENTENCE+2
    MOV BX,DI
    MOV AL,SENTENCE+1
    SUB AL, KEYWORD+1
    INC AL
    MOV COUNT ,AL
    
    NEXT:
    MOV SI, OFFSET KEYWORD+2
    MOV CL ,  KEYWORD+1
    MOV CH,0
    CMP COUNT ,0
    JL NOMATCH
    REP CMPSB
    JE MATCH
    
    INC BX
    MOV DI,BX
    DEC COUNT
    JE NOMATCH
    JMP NEXT
    NOMATCH:
    MOV DX,OFFSET MESS3
    MOV AH,9
    INT 21H
    JMP OVER
    MATCH:
    MOV DX , OFFSET MESS4
    MOV AH,9
    INT 21H
    JMP AGAIN
   OVER:
   MOV AH,4CH
   INT 21H
    
    
CODE ENDS
   
    END START

⌨️ 快捷键说明

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