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

Различия

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

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

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
asm:lesson6 [21/10/2010 15:59] arabusovasm:lesson6 [21/10/2010 21:30] (текущий) arabusov
Строка 7: Строка 7:
 байт,  а директива DW oпределяет слово. Элемент данных может байт,  а директива DW oпределяет слово. Элемент данных может
 содержать непосредственное значение или константу, определенную как символьная строка или как числовое значение. содержать непосредственное значение или константу, определенную как символьная строка или как числовое значение.
-Другим  способом определения  константы является непосред +Другим  способом определения  константы является непосредственное  значение,  т.е.  указанное  прямо  в  ассемблерной
-ственное  значение,  т.е.  указанное  прямо  в  ассемблерной+
 команде, например: команде, например:
  
Строка 81: Строка 80:
 формате ASCII. формате ASCII.
 Символьная  строка  определяется только директивой  DB, в Символьная  строка  определяется только директивой  DB, в
-котоpой указывается более двух символов в нормальной последо +котоpой указывается более двух символов в нормальной последовательности  слева  направо.   Следовательно,  директива  DB
-вательности  слева  направо.   Следовательно,  директива  DB+
 представляет единственно  возможный  формат  для определения представляет единственно  возможный  формат  для определения
 символьных данных. символьных данных.
Строка 126: Строка 124:
 помнить,  что,  например, символьная константа, определенная помнить,  что,  например, символьная константа, определенная
 как DB '12',  представляет символы ASCII и  генерирует шест. как DB '12',  представляет символы ASCII и  генерирует шест.
-3132, а числовая константа, oпределенная как DB 12, представ +3132, а числовая константа, oпределенная как DB 12, представляет двоичное число и генерирует шест. 0C.
-ляет двоичное число и генерирует шест. 0C.+
 ==== Директива опеделения байта ==== ==== Директива опеделения байта ====
 Из  различных  директив,  определяющих  элементы  данных, Из  различных  директив,  определяющих  элементы  данных,
Строка 308: Строка 305:
 где error - указатель на начало обработчика. где error - указатель на начало обработчика.
 Теперь рассмотрим некоторые функции типа дескриптора, которые нам сегодня пригодятся. Теперь рассмотрим некоторые функции типа дескриптора, которые нам сегодня пригодятся.
-=== Открытие файла ===+=== Создание файла ===
 По заданному в коде ASCIIZ пути создаёт новый файл на указанном или текущем диске или на указанном или текущем каталоге. Если указанный файл существует, то он усекается до нулевой длины. В любом случае открывается файл и возвращается дескриптор (16-разрядное число, которое нужно просто запомнить - именно с помощью этого числа в дальнейшем программа сможет обратиться к именно этому файлу). По заданному в коде ASCIIZ пути создаёт новый файл на указанном или текущем диске или на указанном или текущем каталоге. Если указанный файл существует, то он усекается до нулевой длины. В любом случае открывается файл и возвращается дескриптор (16-разрядное число, которое нужно просто запомнить - именно с помощью этого числа в дальнейшем программа сможет обратиться к именно этому файлу).
 При вызове: При вызове:
Строка 320: Строка 317:
   * AX = код ошибки   * AX = код ошибки
 === Открытие файла === === Открытие файла ===
-По заданному в коде ASCIIZ пути создаёт новый файл на указанном или текущем диске или на указанном или текущем каталоге. Если указанный файл существует, то он усекается до нулевой длины. В любом случае открывается файл и возвращается дескриптор (16-разрядное число, которое нужно просто запомнить - именно с помощью этого числа в дальнейшем программа сможет обратиться к именно этому файлу).+По заданному в коде ASCIIZ пути открывает файл на указанном или текущем диске или на указанном или текущем каталоге. Возвращается дескриптор.
 При вызове: При вызове:
-  * AH = 3cH+  * AH = 3dH
   * AL = режим доступа   * AL = режим доступа
    Биты      Описание    Биты      Описание
Строка 332: Строка 329:
 Успешно - флаг переноса сброшен Успешно - флаг переноса сброшен
   * 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 = код ошибки   * AX = код ошибки