Assembler для начинающих


         

Системный сервис


    Два драйвера в BIOS дают самый простой системный сервис.  Они
    предназначены для определения объема памяти ЭВМ и конфигурации
    внешних устройств.
 
      Программа определения объема памяти не имеет параметров. BIOS
    возвращает в регистре AX объем памяти системы, измеренный в
    килобайтах (1024 байт). Если система имеет память 64K байт, в
    регистре AX возвратится число 64. Любая программа, использующая всю
    память системы, должна запрашивать у BIOS объем памяти, чтобы
    определить, где находится ее конец. Программа могла бы определить
    объем памяти, записав и прочитав подряд ячейки памяти, сравнивая
    записанное и прочитанное значение. Но, как покажет пример в
    следующей главе, важно писать все прикладные программы так, чтобы
    они использовали для определения объема памяти подпрограмму,
    возвращающую этот объем. Изменяя значение верхнего предела памяти,
    можно зарезервировать участок в верхних адресах памяти. После того,
    как программа изменит значение общего объема памяти, корректно
    написанная прикладная программа не нарушит границу памяти.
 
      Программа проверки конфигурации внешних устройств не имеет
    входных параметров. Эта программа возвращает в регистре AX
    16-битовый код, показывающий, какие устройства подключены к
    конкретной системе. В прологе распечатки этой программы в
    техническом руководстве по IBM PC указывается, что означает каждый
    бит. Эта функция BIOS - простейший способ определения, существует
    ли конкретное устройство в системе, или нет.
 
      Последняя системная сервисная программа проверяет время суток.
    У этой программы есть две функции: чтение времени и установка
    времени. Время измеряется в квантах таймера, начиная с того
    момента, когда машина включается, и отсчитывается от полуночи. BIOS
    не преобразует это значение в часы, минуты и секунды. Но в листинге
    BIOS показаны нужные для преобразования константы. Чтобы определить
    время в часах, разделите 24-битовое значение таймера на 65543,



Содержание  Назад  Вперед