Программирование на Ассемблере
Для каждого открытого в Вашей программе файла
рано или поздно должна быть вызвана функция Close.
6.5.2. Чтение и запись данных. Предположим, что нам нужно создать новый файл и записать в него некоторый
текст. Для начала мы должны написать: move.l #mode_new,D2 ;режим mode_new
bsr openfile ;создаем файл
beq error ;реакция на ошибку Пусть по адресу filename записана строка \"Testfile\". Тогда после вызова
подпрограммы openfile в приведенном фрагменте на диске появится новый файл
с именем \"Testfile\" (если файл с таким именем уже существует, то он
предварительно удалится). Текст для записи в файл определим так: text: dc.b \"This is a text for the Testfile\",0
textend: Метка textend введена для упрощения вычисления количества байт в тексте. Запись данных в файл осуществляется с помощью уже известной Вам функции
Write, которая, напомним, вызывается с тремя параметрами: в D1 идентификатор канала (файла), полученный при открытии
в D2 указатель на записываемые данные
в D3 количество байт для записи В нашем случае фрагмент программы для вызова Write будет выглядеть так: Write = -48 ;(6.5.2B)
...
writedata: ;запись данных в файл
move.l dosbase(PC),A6 ;базовый адрес dos.library
move.l filehd(PC),D1 ;идентификатор файла - в D1
jsr Write(A6) ;записываем данные
rts ;возврат А в главной программе можно написать: move.l #text,D2 ;указатель на данные
move.l #textend-text,D3 ;количество байт для записи
bsr writedata ;вызов подпрограммы записи После этого файл \"Testfile\" нам больше не нужен и мы используем функцию
Close для освобождения ресурсов системы: bsr closefile ;закрываем файл!
bra end ;конец программы После запуска получившейся программы Вы увидите в текущем каталоге новый
файл - \"Testfile\".
|