Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Функция 2AH. Функция 2BH. MOV DL, 13  ; 13-е число. Функция 2СH. MOV AH, 2CH. Функция 2DH. 11.8 Прерывания BIOS. Прерывание BIOS 10H




Функция 2AH

Назначение: получение текущей даты DOS. Функция возвращает следующие значения:

· в регистре CX – текущий год (от 1980 до 2099);

· в регистре DH – месяц (от 1 до 12);

· в регистре DL – день месяца (от 1 до 31)

· в регистре AL – день недели (0 – воскресенье, 1 – понедельник, 2 – вторник и т. д. )

Пример использования функции 2AH:

MOV AH, 2AH

INT 21H

DOS версии 2. X не гарантирует возвращение в регистре AL дня недели. Другие версии DOS гарантируют это. В DOS до версии 2. 1 есть проблемы с возвращением даты.

 

Функция 2BH

Назначение: установка текущей даты DOS. Значение даты заносится в регистры CX, DX и AL в соответствии с тем, как эти значения возвращает функция 2AH. Функция 2BH возвращает в регистре AL значение 0, если устанавливаемая дата корректна и 0FFH в противном случае.

Пример использования функции 2BH:

MOV CX, 2001        ; 2001 г.

MOV DH, 8     ; август

MOV DL, 13             ; 13-е число

MOV AL, 1      ; понедельник

MOV AH, 2BH

INT 21H

 

Функция 2СH

Назначение: получение текущего времени DOS. Функция возвращает следующие значения:

1. В регистре CH – часы (от 0 до 23);

2. В регистре CL – минуты (от 0 до 59);

3. В регистре DH – секунды (от 0 до 59);

4. В регистре DL – сотые доли секунды (от 0 до 99).

Пример использования функции 2CH:

MOV AH, 2CH

INT 21H

Значение времени DOS обновляется с приходом каждого прерывания от таймера примерно 18. 2 раза в секунду. Поэтому точность значения сотых долей секунд невелика.

 

Функция 2DH

Назначение: установка текущего времени DOS. Значение времени заносится в регистры CX и DX в соответствии с тем, как эти значения возвращает функция 2CH. Функция 2DH возвращает в регистре AL значение 0, если устанавливаемое время корректно и 0FFH в противном случае.

Пример использования функции 2DH:

MOV CH, 18            ; 18 часов

MOV CL, 35             ; 35 минут

MOV DH, 41            ; 41 секунда

MOV DL, 0      ; 0 сотых

MOV AH, 2BH

INT 21H

 

11. 8 Прерывания BIOS

Прерывания BIOS 10H, 13H, и 16H выполняют различные низкоуровневые функции по работе с аппаратурой (клавиатура, экран, жесткий диск). Эти функции могут вызываться из обработчиков аппаратных прерываний. Каждое прерывание BIOS, как и прерывание DOS 21H, имеет несколько функций. Номер функции также заносится в регистр AH. Далее будут рассмотрены функции различных прерываний BIOS.

Прерывание BIOS 10H

Прерывание BIOS 10H – это различные функции по работе с экраном и видеоадаптером. В состав прерывания 10H входит очень большое число функций и подфункций. Далее рассмотрены наиболее часто используемые функции.

 

Функция 00H

Назначение: установка видеорежима. Номер видеорежима заносится в регистр AL. Функция устанавливает выбранный видеорежим и очищает видеопамять. Если очищать видеопамять не требуется, старший бит регистра AL нужно установить в 1. В табл. 21 представлены стандартные текстовые видеорежимы и графические видеорежимы адаптеров CGA, EGA и VGA.

 

Таблица 21

Видеорежимы CGA, EGA и VGA

Номер видеорежима Разрешение Количество цветов Видеоадаптер Сегмент видеопамяти
0DH 0EH 0FH 10H 11H 12H 13H 40x25 40x25 80x25 80x25 320x200 320x200 640x200 320x200 640x200 640x350 640x350 640x480 640x480 320x200 CGA, EGA CGA, EGA CGA, EGA CGA, EGA CGA, EGA CGA, EGA CGA, EGA EGA, VGA EGA, VGA EGA, VGA EGA, VGA VGA VGA VGA B800 B800 B800 B800 B800 B800 B800 A000 A000 A000 A000 A000 A000 A000

 

Пример использования функции 00H:

MOV AH, 00H

MOV AL, 13H          ; режим 320x200 256 цветов

INT 10H

 

Функция 02H

Назначение: установка позиции курсора. Для выполнения функции регистр BH должен содержать номер видеостраницы (начиная с 0), регистр DH – координату Y курсора (начиная с 0) (строка) и регистр DL – координату X (начиная с 0) (столбец) курсора. Позиция (0, 0) – это верхний левый угол экрана. Позиция (79, 24) – это нижний правый угол экрана для видеорежима 80x25. При помощи функции 02H можно установить позицию курсора отдельно для каждой видеостраницы (обычно используется видеостраница 0). Для того чтобы скрыть курсор, нужно задать координату Y, выходящую за максимально возможную для текущего видеорежима, как показано в следующем примере:

MOV AH, 02H

MOV DL, 0

MOV DH, 26            ; установка курсора на 26-ю строку

INT 10H

 

Функция 03H

Назначение: получение текущей позиции курсора (строка и столбец). Текущая строка возвращается в регистре DH, а текущий столбец – в регистре DL.

Пример использования функции 03H:

MOV AH, 03H

INT 21H

 

Функция 08H

Назначение: чтение символа и его атрибута в текущей позиции курсора. Функция возвращает в регистре AL ASCII код символа, находящегося в текущей позиции курсора, а также его атрибут в регистре BH. Атрибут символа представляет собой 8-битное значение, младшие 4 бита – это цвет символа, а старшие 4 бита – цвет фона. Функция 08H для большинства применений работает слишком медленно, поэтому вместо нее рекомендуется использовать чтение напрямую из видеопамяти.

Пример использования функции 08H:

MOV AH, 08H

INT 10H

 

Функция 09H

Назначение: вывод в текущую позицию курсора нескольких символов с заданными атрибутами. ASCII код символа заносится в регистр AL, атрибут – в регистр BL. В регистр BH заносится номер видеостраницы (обычно 0) а в регистр CX – число повторений символа. Эта функция не изменяет текущей позиции курсора. Функция 09H для большинства приложений также работает слишком медленно, поэтому вместо нее рекомендуется использовать запись напрямую в видеопамять.

Пример использования функции 09H:

MOV AH, 09H

MOV AL, ‘0’

MOV BH, 0

MOV BL, 1FH; белый текст на синем фоне

MOV CX, 10   ; символ будет выведен на экран 10 раз

INT 10H

 

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...