logo search
несколько программ / bsp33

Функции прерыванияInt 1Ah

Для работы с часами реального времени вы можете обращаться непосредственно к перечисленным выше ячейкам памяти CMOS, используя порты 70h и 71h. Однако лучше всего воспользоваться функциями 2 - 7 прерывания INT 1Ah, описанными ниже.

Прочитать показания часов реального времени

Регистры на входе:

AH= 02h

Регистры на выходе:

CH = часы в BCD-формате (например, 13h означает 13 часов);

CL = минуты в BCD-формате;

DH = секунды в BCD-формате;

CF = CY = 1, если часы реального времени не установлены

Установить часы реального времени

Регистры на входе:

AH= 03h

CH = часы в BCD-формате (например, 13h означает 13 часов);

CL = минуты в BCD-формате;

DH = секунды в BCD-формате;

DL = 1, если необходимо использовать летнее время

Регистры на выходе:

Регистры не используются

Прочитать дату из часов реального времени

Регистры на входе:

AH= 04h

Регистры на выходе:

CH = столетие в BCD-формате;

CL = год в BCD-формате (например, CX=1997h означает 1997 год);

DH = месяц в BCD-формате;

DL = число в BCD-формате;

CF = CY = 1, если часы реального времени не установлены

Установить дату в часах реального времени

Регистры на входе:

AH= 05h

CH = столетие в BCD-формате;

CL = год в BCD-формате (например, CX=1997h означает 1997 год);

DH = месяц в BCD-формате;

DL = число в BCD-формате;

Регистры на выходе:

Регистры не используются

Установить будильник

Регистры на входе:

AH= 06h

CH = часы в BCD-формате;

CL = минуты в BCD-формате;

DH = секунды в BCD-формате

Регистры на выходе:

CF = CY = 1, если часы реального времени не установлены

Эта функция позволяет установить будильник на заданное время. Когда будильник “зазвенит”, будет вызвано прерывание INT 4Ah (его вызывает BIOS после прихода аппаратного прерывания от часов реального времени IRQ8, то есть прерывания с номером 70h). Программа, использующая функцию будильника, должна подготовить обработчик прерывания INT 4Ah, завершающий свою работу выполнением команды IRET.

Заметим, что можно установить только один будильник.