It is necessary by pressing the key (in particular, V) to remove one word from the file. Instead of the word, exactly 60 characters are deleted. And one more problem: by pressing C, we overwrite the file, but in any case, even if I did not press V, the first 2 characters are deleted. Help me please
.model tiny .code org 100h Entry: ;----------------открываем файл----------------------- mov ax,3d00h ; открываем для чтения mov dx, offset file_name int 21h ; в ax деcкриптор файла mov descr, ax ; описатель файла mov bx, ax mov ax, 4200h ;установим указатель на начало файла xor cx, cx xor dx, dx int 21h mov ah, 3Fh ;ф-я чтения mov cx, 1 ; 1 байт lea dx, offset buffer mov bx, descr int 21h mov cx, ax ;реальная длина прочитанного фрагмента mov ah, 3Eh ;файл закрываем mov bx, descr int 21h ;----------------файл закрыли-------------------------- ;----------------ожидание нажатия клавиши-------------- waiting: mov ah,1 ;если нет нажатия, то переходим далее int 16h mov ah,0 ;иначе - считываем нажатую клавишу int 16h cmp ah, 2eh ;если нажали C, то выходим на запись je recording cmp ah, 2fh ;если нажали V, то ищем пробел je searching jne waiting ;иначе переходим снова в ожидание ;----------------поиск пробела-------------------------- searching: mov di, dx ;адрес начала буфера dec di search: inc di mov al, [di] ;читаем его cmp al, 39h ;пробел? je Prob_found jne Clear_symb Clear_symb: dec cx jmp search Prob_found: ;найден пробел dec cx ;уменьшим длину буфера jmp waiting ;и переходим в ожидание recording: mov ah,3Dh ; открытие файла mov al,2 lea dx,file_name int 21h mov descr,ax mov ah,40h ; запись в файл mov bx,descr lea dx,buffer int 21h mov ah,3Eh ; закрытие файла mov bx,descr int 21h ret ;--------------данные----------------------------------- .data file_name db "myfile.txt",0 ;имя файла descr dw ? buffer db 512 dup (?) ;буфер для чтения "хвоста" файла END Entry