Шаг 44 - Функция 3fh чтение из файла

Итак, открывать файл мы умеем, пора научиться из него читать.

AH 	3fH
BX 	дескриптор файла
CX 	число байтов для считывания
DS:DX 	адрес буфера  для  получения данных
Возврат
AX 	Код ошибки если CF установлен к CY
	Если ошибок не было то в AX будет количество прочитанных байт

Все пора пробовать, развиваем прошлый шаг.

MODEL SMALL
STACK 256
DATASEG
	FileName DB 'C:/TASM50/44/data.dat',0h
	OkStr	 DB 'OK','$'
	ErrorStr DB 'Error','$'
	Buffer   DB 14h	DUP(0)	; буфер на 20 символов
CODESEG
Start:
	
	mov ax,@data 		; установка в ds адреса
	mov ds,ax 		; сегмента данных
	mov dx, OFFSET FileName	; имя файла
	CALL OpenFileRead 	
	jc Error			; проверить флаг на ошибку
	mov bx,ax			; дескриптор файла в ВХ
	mov ah,3fh		; функция чтения файла
	mov cx,14h		; сколько читать
	mov dx,OFFSET Buffer   	; буфер
	int 21h			; выполнить
	jc Error			; проверить флаг на ошибку
	Call CloseFile
	mov dx,OFFSET OkStr	
	jmp Write
Error:
	mov dx,OFFSET ErrorStr 
Write:
	
	Call WriteStr   
	         
Exit:
	CALL ExitProgramm 

INCLUDE  function.asm 

End Start

Особенного я нечего не сделал кроме разве того, что дал абсолютный путь, это для отладчика, да выход из программы вынес в отдельную функцию. А вот теперь нам в отладчик что бы посмотреть что считывание произошло.

44_1.gif (4335 b)

Все нормально, кстати, Вы можете подняться вверх в этом окне и посмотреть данные которые были в программе.

44_2.gif (2788 b)

Это важно, что данные все вместе, при изучении чужой программы очень может помочь.


Загрузить проект | Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 05.01.2002