мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
Последняя версияСледующая версия справа и слева
asm:lesson6 [21/10/2010 15:56] arabusovasm:lesson6 [21/10/2010 16:07] arabusov
Строка 312: Строка 312:
 При вызове: При вызове:
   * AH = 3cH   * AH = 3cH
 +  * CX = атрибут (в нашем случае всегда 0)
 +  * DS:DX - адрес строки, содержащей имя файла
 +При возврате:
 +Успешно - флаг переноса сброшен
 +  * AX = дескриптор
 +Неудачно - флаг переноса установлен
 +  * AX = код ошибки
 +=== Открытие файла ===
 +По заданному в коде ASCIIZ пути открывает файл на указанном или текущем диске или на указанном или текущем каталоге. Возвращается дескриптор.
 +При вызове:
 +  * AH = 3dH
   * AL = режим доступа   * AL = режим доступа
    Биты      Описание    Биты      Описание
Строка 317: Строка 328:
              001=запись              001=запись
              010=чтение/запись              010=чтение/запись
-  * DS:DX - +  * DS:DX - адрес строки, содержащей имя файла
 При возврате: При возврате:
 Успешно - флаг переноса сброшен Успешно - флаг переноса сброшен
   * AX = дескриптор   * AX = дескриптор
 Неудачно - флаг переноса установлен Неудачно - флаг переноса установлен
 +  * AX = код ошибки 
 +=== Закрытие файла === 
 +При вызове: 
 +   * AH = 3Eh 
 +   * BX =  дескриптор 
 +При возврате: 
 +Успешно - флаг переноса сброшен 
 +Неудачно - флаг переноса установлен 
 +  * AX = код ошибки 
 +=== Чтение файла === 
 +При вызове: 
 +  * AH = 3Fh 
 +  * BX = дескриптор 
 +  * CX = число байт для чтения 
 +  * DS:DX = адрес буфера 
 +При возврате: 
 +Успешно - флаг переноса сброшен 
 +  * AX = число переданных байтов (может быть меньше CX!) 
 +Неудачно - флаг переноса установлен 
 +  * AX = код ошибки 
 +=== Запись в файл === 
 +При вызове: 
 +  * AH = 40h 
 +  * BX = дескриптор 
 +  * CX = число байт для вывода записи 
 +  * DS:DX = адрес буфера 
 +При возврате: 
 +Успешно - флаг переноса сброшен 
 +  * AX = число переданных байтов (может быть меньше CX!) 
 +Неудачно - флаг переноса установлен 
 +  * AX = код ошибки