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 
  • And why did you remember about the file descriptor only when you started writing it? The handle is used for all file operations, including positioning and reading ... - Mike
  • Not quite understood. That is, I do not change the value of ax after opening the file? - Ludmila Nesmachnaya
  • Look for example the description of the function 42h, in the register bx it accepts the file descriptor. And you don’t pass it on ... Just like in 3F and 3E ... - Mike
  • well, thank you - Lyudmila Nesmachnaya

0