Answer the question
In order to leave comments, you need to log in
Why is 60 characters removed instead of a word?
It is necessary to delete one word from the file by pressing a key (in particular V). Exactly 60 characters are removed instead of a word. 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
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question