Читайте также:
|
|
Если блоки байтов файла фиксированной длины, то можно выполнить произвольное чтение любого блока, либо можно выбрать определенный блок для перезаписи. Для организации произвольного доступа к файлы используется системная функция 42h.
Пример 2.3. Программа чтения из файла greet.txt байта со смещение 20 от начала.
use16
org 100h
;==========================
mov ah,3dh;открыть файл
mov al,00
mov dx,myfile
int 21h
jc all
push ax
;==========================
pop bx
mov ah,42h;установить указатель
mov al,00
mov cx,00
mov dx,20;Смещение 20
int 21h
;==========================
mov ah,3Fh;читать байт
mov cx,01;для чтения
mov dx,buffer;буфер ввода
int 21h
;==========================
mov ah,02;вывести буфер
mov dl,[buffer]
int 21h
;=========================
all:;конец работы
mov ah,08h
int 21h
mov ax,4c00h
int 21h
Пример 2.4. Программа, заменяющая символ H строки на символ #.
use16
org 100h
;=============================
mov ah,3dh;открытие файла
mov al,01
mov dx,myfile
int 21h
jc all;ошибка открытия
push ax;дескриптор в стек
;=============================
pop bx;дескриптор из стека
mov ah,42h
mov al,00
mov cx,00
mov dx,20;смещение к байту
int 21h
;=============================
;Заменить байт
mov ah,40h
mov cx,01
mov dx,buffer
int 21h
;=============================
all:;конец работы
mov ah,08h
int 21h
mov ax,4c00h
int 21h
;=============================
myfile db 'greet.txt',0
buffer db '#'
Результат работы программы, показан на рисунке.
Рис.2.2. Результат работы программы
Дата добавления: 2015-07-19; просмотров: 36 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Чтение содержания файла | | | Обслуживание файловой системы |