Amiga. Вычислительная техника
Меню сайта
Главная
Amiga
Amiga Corporation
Модельный ряд
История развития
Аппаратная платформа
Операционные системы
Эмуляция
AMIGA # 1
Программирование на Ассемблере
Организация процессоров
Методы защиты информации
Компьютерные новеллы
Боятся ли компьютеры адского пламени?
Виртуальная реальность
Корпоративные сети
Телекоммуникационные сети
Архитектура ЭВМ
ЕС ЭВМ
Рождение ЭВМ
Компьютер
Гарвардская архитектура
Современные высокопроизводительные компьютеры
Дорога в будущее
Vista
Инфоpматика
ЭВМ
Операционные системы
Linux
Windows
Освой компьютер
Макинтош
Набор текста
Поколения
Компьютерная грамотность
Устройство компьютера
Железо
Графика
Звук
Ремонт
Сети
Программирование
Информационные технологии
Криптография
Микроэлектроника
Истории
 
 

Программирование на Ассемблере


Длина этого файла будет совпадать с длиной записанного
в него текста.
Теперь считаем данные из файла и убедимся, что он действительно содержит
нужный текст. Для этого, как нетрудно догадаться, можно воспользоваться
функцией Read, которая имеет такие же параметры, что и Write. Однако здесь
есть одна особенность: если в D3 указать число, большее чем длина файла, то
в буфер загрузится весь файл целиком, а в D0 возвратится количество реально
прочитанных байт.
Начнем с резервирования памяти для буфера ввода:
field: blk.b 100 ;резервируем 100 байт
Для нашего примера 100 байт - это более чем достаточно. Однако для работы с
\"настоящими\" файлами Вам может понадобится буфер существенно большего
размера.
Напишем теперь подпрограмму для чтения данных из файла. Будем использовать
регистр D2 для передачи ей указателя на буфер ввода:
Read = -42 ;(6.5.2C)

...
readdata: ;* чтение из файла

move.l dosbase(PC),A6 ;база dos.library - в A6

move.l filehd(PC),D1 ;идентификатор файла - в D1

move.l #100,D3 ;читаем не больше 100 байт

;(в нашем случае прочтется

;весь файл)

jsr Read(A6)

rts ;возврат
Использовать эту подпрограмму можно, например, так:
move.l #mode_old,D2 ;\"старый\" режим

bsr openfile ;открываем файл

beq error ;ошибка!

move.l #field(PC),D2 ;адрес буфера ввода - в D2

bsr readdata ;вызов подпрограммы чтения

;данных из файла

move.l D0,D6 ;сохраняем число прочитанных

;байт в D6

bsr closefile ;закрываем файл

...

 

 

© 2010 Amigo. All Rights Reserved
Создание сайтов ЕкатеринбургШаблоны сайтовПоиск товаров - справочник цен, каталог магазинов, прайс-листыБесплатные шаблоны дизайна компьютерных сайтов
Hosted by uCoz