Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SSTACK SEGMENT STACK 'STACK'
- DW 50H DUP (?)
- SSTACK ENDS
- SDATA SEGMENT
- ARR1 DB 10 DUP (?)
- ARR2 DB 10 DUP (?)
- ARR2_LENGTH DB 0H
- COUNT DB 30H,'$' ; 30 Is The ASCII Code For 0
- MES1 DB 'ENTER FIRST STRING:$'
- MES2 DB 'ENTER SEARCH STRING:$'
- MES3 DB 'STRING2 ON STRING1 COUNT:$'
- SDATA ENDS
- SCODE SEGMENT
- ASSUME CS:SCODE, DS:SDATA, SS:SSTACK
- START:
- MOV AX,SDATA
- MOV DS,AX
- ; Print MES1 From Memory
- MOV AH, 9
- LEA DX, MES1
- INT 21H
- XOR SI,SI
- ; Get Chars From Keyboard
- GETS_1:
- MOV AH, 1
- INT 21H
- MOV ARR1[SI],AL
- INC SI
- CMP SI,10
- JE GETS_END_1
- CMP AL,'$'
- JNE GETS_1
- GETS_END_1:
- MOV BYTE PTR ARR1[SI],'$'
- ; Focus The Next Line (Move Cursor)
- MOV DL, 10
- MOV AH, 2
- INT 21H
- ; Focus Start Of The Line
- MOV DL, 13
- MOV AH, 2
- INT 21H
- ; Print MES2 From Memory
- MOV AH, 9
- LEA DX, MES2
- INT 21H
- XOR SI,SI
- ; Get Chars From Keyboard
- MOV CX,9
- GETS_2:
- MOV AH,1
- INT 21H
- MOV ARR2[SI],AL
- INC SI
- CMP AL,'$'
- JE GETS_END_2
- LOOP GETS_2
- GETS_END_2:
- MOV AL,'$'
- MOV ARR2[SI],AL
- ; Count Size Of String2
- XOR SI,SI
- COUNTER:
- MOV AL,ARR2[SI]
- INC SI
- INC ARR2_LENGTH
- CMP AL,'$'
- JNE COUNTER
- XOR SI,SI
- ;First Loop - String1
- FOR1:
- XOR BX,BX
- MOV AL,ARR1[SI]
- INC SI
- ; Second Loop - String2 on String1
- FOR2:
- MOV AH,ARR2[BX]
- ADD BX,1
- ; Check If Char(From String2) Is Not Exist on String1
- CMP AH, AL
- JNE END_FOR2
- MOV AL,ARR1[BX + SI-1]
- ; Check If Its The End Of The String2
- CMP AH,'$'
- JNE FOR2
- END_FOR2:
- ; Check If The Equals Counter Is Same As String2 Length
- CMP ARR2_LENGTH,BL
- JE IF_CL_EQUALS
- ; Check If Its The End Of The String1
- CMP AL,'$'
- JE END_FOR
- JNE FOR1
- IF_CL_EQUALS:
- INC COUNT
- JMP FOR1
- END_FOR:
- ; Focus The Next Line (Move Cursor)
- MOV DL, 10
- MOV AH, 2
- INT 21H
- ; Focus Start Of The Line
- MOV DL, 13
- MOV AH, 2
- INT 21H
- ; Print MES3 From Memory
- MOV AH, 9
- LEA DX, MES3
- INT 21H
- ; Print COUNT From Memory
- MOV AH, 9
- LEA DX, COUNT
- INT 21H
- ;End Program Back To Dos
- MOV AH,4CH
- INT 21H
- SCODE ENDS
- END START
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement