Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Безруков Н.Н. Весь текст 1232.53 Kb

Компьютерная вирусология ч. 1

Предыдущая страница Следующая страница
1 ... 96 97 98 99 100 101 102  103 104 105 106
соответствующими атрибутами, можно пометить создаваемый файл как
скрытый.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=17 ±±±±±±±
                   Переименовать файл, используя FCB

       При входе DS:DX указывает на блок управления файлом (FCB),
содержащий второе имя непосредственно после первого, т.е. по адресу
DS:DX + 11H (обычно эта часть FCB зарезервирована). Все имена,
соответствующие имени-образцу, изменеются в соответствии со вторым
именем. При этом литеры имени файла в тех позициях, где в имени-образце
стоит "?" не изменяются. При переименовании проверяется, чтобы в
каталоге не появилось два одинаковых имени. Если операция завершается
успешно, AL содержит 00, иначе (если имя не найдено или переименование
привело бы к дублированию имени) в AL возвращается 00.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=19 ±±±±±±±
                             Текущий диск

       В регистре AL возвращается код устройства, являющегося текущим
диском (0=A, 1=B и т.д.).

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=1A ±±±±±±±
                           Задать адрес DTA

       Область памяти, на которую указывает DS:DX, становится текущим
буфером DTA. При операциях обмена DOS не допускает перехода через
границу сегмента.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=21 ±±±±±±±
                Чтение с прямым доступом, используя FCB

       При входе DS:DX указывает на открытый блок FCB. Значения полей
номера блока и номера записи устанавливаются в соответствии со значением
поля номера записи для прямого доступа; соответствующая запись
пересылается в буфер DTA. Если обнаружен конец файла, в регистре AL
возвращается 01 или 03. Код 01 указывает, что в буфер не переслано
данных, код 03 соответствует ситуации, когда в файле остались данные, но
меньше, чем длина записи; в последнем случае запись в буфере DTA
дополняется нулевыми байтами. Код 02 означает, что системный буфер
слишком мал для обработки записи и запись переслана не полностью. Код 00
свидетельствует о нормальном завершении операции.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=22 ±±±±±±±
                Запись с прямым доступом, используя FCB

       При входе DS:DX указывает на открытый блок FCB. Значения полей
номера блока и номера записи устанавливаются в соответствии со значением
поля номера записи для прямого доступа. Запись из буфера DTA длиной,
указанной в поле длины записи, записывается в файл в соответствующию
этим полям позицию. (при длине записи, меньшей длины сектора, происходит
буферизация). Номер записи увеличивается на 1. В регистре AL
возвращается код завершения: 01 диск полон; 02 - системный буфер слишком
мал для обработки записи и запись переслана не полностью. Код 00
свидетельствует о нормальном завершении операции.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=23 ±±±±±±±
                 Определить длину файла, используя FCB

       При входе DS:DX указывает на неоткрытый блок FCB. Указанное в нем
имя ищется в каталоге; если оно не найдено, то в AL возвращается FF.
Если же файл найден, то в AL возвращается 00, а в FCB в поле номера
записи для прямого доступа заносится число записей в файле. Перед
обращением к этой операции, в FCB следует занести необходимую длину
записи; иначе будет получен неверный результат.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=24 ±±±±±±±
     Задать поле номера записи для прямого доступа, используя FCB

       При входе DS:DX указывает на открытый блок FCB. Эта операция
заносит в поле номера записи для прямого доступа значение,
соответстующее номеру текущего блока и номеру текущей записи.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=25 ±±±±±±±
                     Установить вектор прерываний

       В таблицу векторов прерываний для прерывания с номером, указанным
в AL, заносится 4-х байтный адрес, содержащийся в DS:DX. Содержимое
вектора прерываний может быть получено операцией 35.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=26 ±±±±±±±
                      Создать программный сегмент

       При входе DX содержит сегментый адрес, где создается новый
программный сегмент. При этом текущий PSP (100H байт, начиная с нулевого
байта текущего программного сегмента), копируется в новый программный
сегмент.  В новом PSP изменяется поле размера памяти, доступной данному
программному сегменту.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=27 ±±±±±±±
                     Чтение блока (прямой доступ)

       При входе DS:DX указывает на открытый блок FCB; в CX указано
число записей, обязательно отличное от нуля. Указанное число записей
(длина записи определяется из поля длины записи) считывается из файла в
соответствии с полем номера записи для прямого доступа в буфер DTA. Если
обнаружен конец файла, в регистре AL возвращается 01 или 03. Код 01
указывает, что последняя считанная запись передана целиком, код 03
означает, что конец файла обнаружен посредине записи. При достижении
границы сегмента (FFFF) во время пересылки в буфер обмен завершается и в
AL возвращается 02. Код 00 свидетельствует о нормальном завершении
операции (все записи прочитаны полностью). В любом случае в регистре CX
возвращается число фактически считанных записей и поля номера записи для
прямого доступа, номера блока и номера записи увеличиваются
соответствующим образом; после завершения операции они указывают на
первую не прочитанную запись.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=28 ±±±±±±±
                     Запись блока (прямой доступ)

       Аналогично операции 27, но производится не чтение, а запись и,
возможно, контрольное считывание.  Если на диске недостаточно места для
помещения заданного числа записей, то запись не производится и
в регистре AL возвращается 01. Если при входе CX=0, то запись не
производится, но длина файла устанавливается равной длине,
соответствующей номеру записи для прямого доступа, которая может быть
больше или меньше текущей длины файла. (При этом происходит выделение
или освобождение кластеров, принадлежащих файлу).


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=2A ±±±±±±±
                              Выдать дату

       Возвращает текущую дату в CX:DX. CX содержит год после 1980 (0 -
1980, 1 - 1981 и т.д.); DH - номер месяца (1 - январь и т.д), DL - день.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=2B ±±±±±±±
                            Установить дату

       При входе CX:DX содержат дату в том же формате, что и в
операции 2A. Если дата задана правильно, она устанавливается как
текущая дата и в AL возвращается 00, иначе дата не изменяется и в AL
возвращается FF.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=2C ±±±±±±±
                             Выдать время

       Возвращает текущее астрономическое время в CX:DX. CH содержит час
(0-23), CL - минуту (0-59), DH - секунду (0-59), DL - сотые доли секунды
(0-99).

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=30: ±±±±±±
                        Выдать номер версии DOS

       Выдает номер версии в регистрах AL (старшая часть - до точки), и
AH (младшая часть - после точки). Для версий до 2.00, AL =0.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=31 ±±±±±±±
                Закончить и остаться резидентом (KEEP)

       При входе в AL - код возврата, в DX - размер памяти в параграфах.
Эта операция завершает выполнение обратившегося к ней процесса и
пытается установить длину основного блока памяти этого процесса равным
указанному в в DX. Никакие другие блоки памяти, принадлежащие данному
процессу, не освобождаются.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=35 ±±±±±±±
        Выдать значения вектора прерывания для заданной функции

       При входе AL содержит номер прерывания. В регистрах ES:BX
возвращается адрес входа в программу обработки этого прерывания. Вектор
прерывания может быть изменен операцией 25.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=3D ±±±±±±±
                             Открыть файл

       При входе DS:DX указывает на строку ASCIIZ, содержащую имя
устройства, составное имя каталога (path) и имя файла; AL содержит код
доступа: 0 - открыть для чтения 1 - открыть для записи 2 - открыть для
записи и чтения (модификации) Номер открытого файла возвращается в AX.
     Текущая позиция устанавливается на первый байт файла (она может
быть изменена операцией 42). Полученный номер файла должен
использоваться при последующих обращениях к файлу. Время и дату
создания/модификации файла можно получить операцией 57, а атрибуты -
операцией 43. Эта операция открывает как обычные, так и скрытые файлы.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=3E ±±±±±±±
                             Закрыть файл

       При входе BX содержит номер файла. Системные буфера, связанные с
файлом, сбрасываются, и файл закрывается.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=3F ±±±±±±±
                    Чтение из файла или устройства

       При входе BX содержит номер файла, CX - число байт для чтения,
DS:DX - адрес буфера. В AX возвра- щается число фактически прочитанных
байт; нулевое значение указывает на попытку читать после конца файла.
Операция пересылает указанное число байт (CX) по указанному адресу
(DS:DX) из файла начиная с текущей позиции и сдвигает текущую позицию
на число прочитанных байт.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=40 ±±±±±±±
                     Запись в файл или устройство

       При входе BX содержит номер файла, CX - число записываемых байт,
DS:DX - адрес буфера. Операция пересылает указанное число байт (CX) из
памяти по указанному адресу (DS:DX) в файл начиная с текущей позиции и
сдвигает текущую позицию на число пересланных байт. В AX возвращается
число фактически записанных байт; его отличие от заданого в BX
свидетельствует, об ошибке (обычно переполнение диска). При этом не
выдается кода ошибки, программа сама должна проверять совпадение
заданной и фактической длин.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=42 ±±±±±±±
                   Изменить текущую позицию (Lseek)

       Текущая позиция определяет номер байта в файле, на которым будет
выполняться следующая операция обмена. При входе BX содержит номер
файла, AL - код операции, CX:DX - необходимую позицию (старшая часть - в
CX). При выходе DX:AX содержит новую текущую позицию (старшая часть - в
DX). Операция перемещает текущую позицию в зависимости от занчения AL:

         AL =0    Позиция устанавливается относительно
                  начала файла.
         AL =1    Позиция устанавливается относительно
                  текущей позиции.
         AL =2    Позиция устанавливается относительно
                  конца файла.


±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=43 ±±±±±±±
                        Изменить атрибуты файла

       При входе AL содержит код операции, DS:DX указывает на строку
ASCIIZ, содержащую имя устройства, составное имя каталога (path) и имя
файла. Если AL =01, файлу приписываются атрибуты, заданные в CX. Если
AL =00, атрибуты файла возвращаются в CX. структура поля атрибутов
описана в Проложении 2.

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=48 ±±±±±±±
                            Выделить память

       При входе в BX - длина необходимиого блока памяти в параграфах (в
параграфе 16 байт). После выполнения операции AX:0 указывает на
выделенный блок памяти. Если выделить блок указанной длины невозможно,
то в BX возвращается размер максимального свободного блока (в
параграфах).

±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± AH=49 ±±±±±±±
Предыдущая страница Следующая страница
1 ... 96 97 98 99 100 101 102  103 104 105 106
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (3)

Реклама