TITLE Рубежный контроль - вариант 16 - замена табуляции пробелами - 6 ошибок
; код символа табуляции 9h
.model small, stdcall
.stack 128

SPACES_IN_TAB 	EQU	7
        


.data
Input BYTE "If it keeps on raining,	levee's going to break",0Ah, 0Dh,"When the levee breaks,	I'll have no place to stay.",0Ah, 0Dh,"Mean old levee 	taught me to weep and	moan$",0
Output BYTE 2*(LENGTHOF Input) DUP(?)
.code

main PROC
mov ax, @data
mov ds, ax
mov es, ax
cld	 

mov si, OFFSET Input 
mov cx, -1

cycle:			; Подсчёт длины строки
inc cx			;
lodsb 			;
jnz cycle		;


mov si, OFFSET Input
mov di, OFFSET Output

copy:			; Копируем c заменой табуляции на три пробела
	lodsb		;
	test al, 9h	;al=9h? 
	jne next	;
	mov al, 20h	;
	push cx		;
	mov cx, SPACES_IN_TAB
	rep stosb	;
	pop cx		;
	next:		;
loop copy		;

finish:
mov al, '$'		; Завершим строку


call newline

mov ah, 02h		; Вывод строки
mov dx, OFFSET Input
int 21h

call newline
mov dx, OFFSET Output	; Вывод результата
int 21h			

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