10.04.2008, 15:10
общий
это ответ
Здравствуйте, Alena De Lon!
Программа работает так.
подменяет обработчик прерывания 24h
выводит на экран строку "нажмите клавишу"
ждет нажания клавиши, если ESC, то завершается
если нет
то открывает файл
сохраняет его дескриптор
выдает строку что файл создан, хотя здесь ошибка создания не проверяется!
записывает в него строку, анализурует была ли ошибка
если да, то выдать строку что произошла ошибка и повторть запись в файл.
если нет, то выводит строку "нажмите клавишу", ожидает нажатие клавиши
Закрывает файл, если ошибка, то опять пытаемся закрыть.
если нет ошибки, то завершение.
непонятно зачем тут обработчик 24h, если будет ошибка, то программу просто зациклит, потому что AL=1: возвращенное - это повторить операцию, без всяких сообщений на экране, если хотите сообщения, то AL=3 поставить надо -
а перехватывать int 24h имеет смысл чтобы не выдавалось сообщений типа
"Abort, Retry, Ignore? _"
и не пугало пользователей, а обработать ситуацию надо вам самим
Хочется эксперемента тогда так можно поступить:
1. Создать программу с обработчиком:
NEW_24h PROC
MOV AL, 1
IRET
NEW_24H ENDP
скопировать на дискету, там не должно быть каталога ‘A:\TEST\MN1_FIL.001‘
программа повиснет
2. Заменить обработчик на
NEW_24h PROC
MOV AL, 3
IRET
NEW_24H ENDP
посмотреть результат
3. Закомментировать строки
MOV ES:[24h*4],AX
MOV ES:[24h*4+2],CS
посмотреть результат