TITLE Рубежный контроль - вариант 17 - выделение первых букв слов - 6 ошибок
.model small, stdcall
.stack 128        


.data
Input BYTE " Ticking away the moments that make up a dull day",0Ah, 0Dh,"You fritter and waste the hours in an off-hand way",0Ah, 0Dh,"Kicking around on a piece of ground in your home town",0Ah, 0Dh,"Waiting for someone or something to show you the way",0Ah, 0Dh,"$",0
Output BYTE (LENGTHOF Input) DUP(?)
.code

main PROC
mov ax, @data
mov ds, ax
cld	 

mov si, OFFSET Input 
mov cx, -1

cycle:			; Подсчёт длины строки
inc cx			;
lodsb 			;
jnz cycle		;


mov si, OFFSET Input
mov di, OFFSET Output

mov dl, 00h		; dl=0 означает что мы не внутри слова
copy:			; Копируем первый символ каждого слова
	lodsb		;
	cmp al, 20h	; Если пробел, то выход из слова
	je accept	;
	test al, 0Dh	; Аналогично если новая строка
	je accept	; 
	test dl, 01h	; Мы внутри слова ?
	jnz next	;
	stosb		;
	or dl, 01h	;
jmp next		;
	
accept:			; Мы не внутри слова
and dl, 00h
next:

loop copy		;

call newline

mov ah, 02h		; Вывод строки
mov dx, OFFSET Input
int 21h

call newline
mov dx, OFFSET Output	; 

call newline

int 21h

main ENDP

newline PROC USES ax dx
mov ah, 02h
mov dl, 0Ah
int 21h
mov dl, 0Dh
int 21h

ret
newline ENDP

END main