Читайте также:
|
|
На низком уровне любой файл это последовательность блоков байтов. Обычно эти блоки являются фиксированного размера. В этом случае файлы являются двоичными источниками данных. Структура двоичного файла с блоками фиксированной длины показана на рисунке.
Минимальной единицей – блоком данных является 1 – байт. В случае текстового файла это код символа, либо управляющие коды.
Выполнить чтение из файла блоков байтов можно с помощью с помощью системной функции 3Fh. Для контроля за работой функции используется содержание регистра AX, в него записывается количество байтов, полученных за одну операцию ввода-вывода.
Пример 2.2. Программа посимвольного чтения содержания файла, созданного в примере.
use16
org 100h
;=============================
mov ah,3dh;открыть файл
mov dx,myfile
int 21h
jc all;файл открыт?
push ax;да, дескриптор в стек
;=============================
pop bx;извлечь дескриптор
go:;читать байты
mov ah,3Fh
mov cx,1;читать один байт
mov dx,buffer;буфер хранения байта
int 21h
cmp AX,1;прочитан один байт?
jne all;нет больше байтов
mov ah,02h;вывести байт на консоль
mov dl,[buffer];код байта из буфера
int 21h
jmp go
all:;конец работы
;=============================
mov ah,08h
int 21h
mov ax,4c00h
int 21h
;=============================
myfile db 'greet.txt',0;файл с текстом
buffer db 0;буфер хранения байта
Результат работы программы показан на рисунке.
Рис.2.1. Вывод содержания файла на экран
Дата добавления: 2015-07-19; просмотров: 37 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Получение дескриптора файла | | | Произвольный доступ к данным файла |