- 01
 - 02
 - 03
 - 04
 - 05
 - 06
 - 07
 - 08
 - 09
 - 10
 - 11
 - 12
 - 13
 - 14
 - 15
 - 16
 - 17
 - 18
 - 19
 - 20
 - 21
 - 22
 - 23
 - 24
 - 25
 - 26
 - 27
 - 28
 - 29
 - 30
 - 31
 - 32
 - 33
 - 34
 - 35
 - 36
 - 37
 - 38
 - 39
 - 40
 - 41
 - 42
 - 43
 - 44
 - 45
 - 46
 - 47
 - 48
 - 49
 - 50
 - 51
 - 52
 - 53
 - 54
 - 55
 - 56
 - 57
 - 58
 - 59
 - 60
 - 61
 - 62
 - 63
 - 64
 - 65
 - 66
 - 67
 - 68
 - 69
 - 70
 - 71
 - 72
 - 73
 - 74
 - 75
 - 76
 - 77
 - 78
 - 79
 - 80
 - 81
 - 82
 - 83
 - 84
 - 85
 - 86
 - 87
 - 88
 - 89
 - 90
 - 91
 - 92
 - 93
 - 94
 - 95
 - 96
 - 97
 - 98
 - 99
 
                        ;------------------------------------------------------------------------------------
;       Задача. Подсчитать максимальную длину слова входного 
; текста. Слово - это последовательность символов, отличных от
; пробела. Длина текста и слова не более 80 символов.
;------------------------------------------------------------------------------------
;------------------------------------------------------------------------------------
;                      Макроопределения
;     	Вызов функции DOS,  вызывается функция с номером f.
;   	Внимание! Изменяется содержимое регистра ah.
_f      macro   f
        mov     ah,f
        int     21h
        endm
;--------------------------------------------------------------------------
;                   Вывод текста на экран
;   Текст  находится  в памяти  по  адресу  adr  и завершается символом "$".
_puts   macro   adr_str
        push    ax
        push    dx
        lea      dx, adr_str
        _f       9
        pop     dx
        pop     ax
        endm
;------------------------------------------------------------------------
        assume  cs:code, ds:data	; назначение регистров 
                              		; сегмента команд и сегмента данных
;------------------------------------------------------------------------
; Сегмент данных
data 	segment	para public 'data'
soob1   	db   	13,10,'Error open input file',13,10,'$'
soob2   	db  	13,10,'Error create output file',13,10,'$'
soob3   	db   	13,10,'Error read file',13,10,'$'
soob4   	db   	13,10,'Error write file',13,10,'$'
soob5  	db   	13,10,'Error close input file',13,10,'$'
soob6   	db   	13,10,'Error close output file',13,10,'$'
name_in	db	'input.txt',0
name_out	db	'output.txt',0
nom_in	dw	?
nom_out	dw	?
in_buf	db	80 dup(?)
out_buf	db	'Max dlina slova = '
maxdl		db	62 dup( ' ')
data 		ends
;-------------------------------------------------------------
; Сегмент кода
code 		segment	para public 'code'
main    	proc
        	mov	ax,data        		; инициализация pегистpа
       	mov	ds,ax          		; сегмента данных
b1:     	lea	dx,name_in         	; Открытие входного файла
         	mov	al,0             		
          	_f	3Dh              		
          	jnc	b2             		; Файл открылся
        	_puts	soob1              	; Файл не открылся
        	jmp	v            	  	
b2:     	mov	nom_in,ax         	; N вх.файла
        	lea	dx, name_out        	; Открытие выходного файла
        	mov	al,1             		
        	_f 	3Dh              	
        	jnc	b3             		; Файл открылся
        	lea	dx,name_out        	; Создание выходного файла
       	 mov	cx,0             	
        	_f 	3Ch              	
        	jnc	b3             		; Создание успешное
        	_puts	soob2              	; Файл не создался
        	jmp	v2               	
b3:     	mov	nom_out,ax        	; N вых.файла
		xor	ax,ax
		push 	ax			; выходной параметр - к-во введ-х байтов в стек
        	call	vvod               	; Ввод записи
        	jnc	b4             		; Ввод успешный
        	_puts	soob3              	; Файл не читается
        	jmp	v1              	
b4:     	;pop	ax			; результат - к-во введ-х байтов в ах
		;push	ax			; входной параметр - к-во введ-х байтов
		lea	dx,maxdl		; входной параметр – адрес результата
		push	dx
call	obrab              	; Обработка данных
        	call	vivod              	; Вывод записи
        	jnc	v1           		; Вывод успешный
        	_puts	soob4              	; Файл не записывается
v1:   	mov	bx,nom_out       	; Закрытие выходного файла
        	_f	3Eh              	
        	jnc	v2           		; Закрытие успешное
        	_puts	soob6             	; Файл не закрылся
v2:   	mov	bx,nom_in           	; Закрытие входного файла
        	_f	3Eh              	
        	jnc	v
        	_puts	soob5              	; Файл не закрылся
v:
        	_f 	4Ch              	; Выход в DOS
main    	endp
vvod    	proc                		; Ввод записи
		push 	bp
		mov	bp,sp
		push	ax
                                 
        
Facepalm.jpg
Вам надо -- вы и переделывайте.