.MODEL LARGE
.STACK 64
.DATA
UZUNLUK EQU 100 ; en fazla 100 karakter
CUMLE DB UZUNLUK DUP(?)
KELIME DB UZUNLUK DUP(?)
RASTGELE DB UZUNLUK DUP(?)
.CODE
MAIN	PROC FAR	;BAŞLANGIÇ AYARLARI
	MOV AX,@DATA
	MOV DS,AX

	MOV DI,OFFSET CUMLE;POINTER CUMLENIN İLK HARFİNDE
	MOV CX,03h	;3 DEFA DÖNECEK
	PUSH CS
	MOV BX,0	;BL SIFIRLANDI

OKU:	MOV AH,01H	;
	INT 21H		;KARAKTER OKUNDU
	MOV [DI],AL
	INC DI
	CMP AL,13	;BASILAN TUŞ ENTER MI?
	JNE OKU
	MOV DI,OFFSET CUMLE;POINTER CUMLENIN İLK HARFİNDE
	MOV SI,OFFSET KELIME;POINTER KELIMENIN İLK HARFİNDE
	MOV [SI],DI
	INC SI
	INC DI

KEL_AL:	MOV AL,[DI]
	INC DI
	CMP AL,13	;BASILAN TUŞ ENTER MI?
	JE ENTIR
	CMP AL,' '	;BOŞLUK MU
	JNE KEL_AL
	INC BL
	MOV BH,BL
	MOV DX,DI
	MOV [SI],DX
	INC SI
	JMP KEL_AL

ENTIR:	INC BH
	MOV AL,13	;ENTER İŞLEMİ
	MOV [SI],AL
	MOV DI,OFFSET RASTGELE

RAST:	MOV AH,2CH	;
	INT 21H		;SISTEM ZAMANI
			;CH = SAAT
			;CL = DAKİKA
			;DH = SANİYE
			;DL = 1/100 SANİYE
	MOV SI,OFFSET KELIME
	ADD SI,DX
	MOV AL,[SI]
	MOV [DI],AL
	INC DI

SON:	MOV AX,0
	INC SI
	MOV AL,[SI]
	DEC SI
	MOV [SI],AL	;YER DEĞİŞTİRME OLDU
	INC SI
	CMP AL,13	;BASILAN TUŞ ENTER MI?
	JNE SON
	DEC BL
	DEC BH
	CMP BH,0h
	JNE RAST
	MOV DH,13
	MOV [DI],DH
	MOV DI,OFFSET KELIME

OTEKI:	MOV SI,OFFSET CUMLE
	MOV AX,0
	MOV AL,[DI]
	ADD SI,AX
	MOV DH,13
	CMP [DI],DH
	JE TEKRAR
	INC DI

YAZ:	MOV DX,0
	MOV DL,[SI]
	INC SI
	CMP DL,13	;BASILAN TUŞ ENTER MI?
	JE BOSLUK;
	MOV AH,02h	;
	INT 21h		;EKRANA YAZDIRMA İŞLEMİ(AL'NİN İÇERİĞİ)
	CMP AL,' '	;BOŞLUK MU?
	JE OTEKI
	JMP YAZ

BASA:	JMP KEL_AL

BOSLUK:	MOV DL,' '
	MOV AH,02h	;
	INT 21h		;EKRANA YAZDIRMA İŞLEMİ(AL'NİN İÇERİĞİ)
	JMP OTEKI

TEKRAR:	POP CX
	DEC CX
	PUSH CX
	MOV DI,OFFSET CUMLE
	MOV SI,OFFSET KELIME
	MOV [SI],DI
	INC SI
	INC DI
	MOV BX,0
	CMP CX,0
	JNE BASA
	
	MOV AH,4CH
	INT 21H		;PROGRAM SONU
MAIN ENDP
END MAIN