TITLE Рубежный контроль - вариант 19 - дополнение каждой строки - 6 ошибок
; К каждой строчке мы допишем несколько слов.

.model small, stdcall
.stack 128        


.data
Input BYTE "I am the bullet in the gun",0Ah,0Dh,"I am the truth from which you run",0Ah,0Dh,"I am the silencing machine",0Ah,0Dh,"I am the end of all your dreams",0Ah,0Dh,"$",0
Adds BYTE " and I control you"
Output BYTE 2*(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


copy:				; Проход по исходной строке
				;
	lodsb			;
	test al, 0Ah		;
	jne skip		;
				;
				;
	push ax			;Сохраняем необходимые регистры
	push cx			;
	push si			;
				;
	mov cx, LENGTHOF Adds	;Добавка
	mov si, OFFSET Adds	;
	rep movsb		;
				;
	pop si			;Восстанавливаем регистры
	pop ax			;
	pop cx			;
 skip:				;
	stosb			;
loop copy			;





call newline

mov ah, 02h		; Вывод строки
mov dx, OFFSET Input
int 21h

call newline
mov dx, OFFSET Output	; Вывод результата

call newline

mov ax, 4c00h
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