"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора

Низкий уровень.

В данном примере канал 0 программируется на другое значение,
чем установлено BIOS при старте. Причина изменения установки
состоит в том, чтобы изменить интервал изменения счетчика времени
суток на большую величину, чем 18.2 раза в секунду. Частота об-
новления счетчика изменяется, скажем, на 1000 раз в секунду, с
целью проведения точных лабораторных измерений. Значение задвижки
должно быть 1193 (1193180 тактов в секунду / 10000). Как читать
текущее значение регистра счетчика см. в примере [2.1.8]. Перед
дисковыми операциями оригинальное значение задвижки должно быть
восстановлено, поскольку канал 0 используется для синхронизации
дисковых операций. Максимально возможное значение - 65535 тактов
часов между импульсами от канала - может быть достигнуто засылкой
0 в регистр задвижки (0 немедленно превращается в 65535 при
уменьшении на единицу.

;---установка регистров ввода/вывода
COMMAND_REG EQU 43H ;адрес командного регистра
CHANNEL_0 EQU 40H ;адрес канала 0
MOV AL,00110110B ;установка битов для канала 2
OUT COMMAND_REG,AL ;засылка в командный регистр

;---посылка счетчика в задвижку
MOV AX,1193 ;счетчик для 100 импульсов/сек.
OUT CHANNEL_0,AL ;посылка младшего байта
MOV AL,AH ;готовим для посылки старший байт
OUT CHANNEL_0,AL ;посылка старшего байта

.h3 2.1.2 Установка/чтение времени.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

При старте MS DOS запрашивает у пользователя текущее время.
Введенное значение помещается в 4 байта, хранящие счетчик времени
суток (начиная с 0040:006C, младший байт хранится первым). Но
сначала оно преобразуется в форму, в которой подсчитывается время
суток, т.е. время преобразуется в число восемнадцатых долей се-
кунды, прошедших с полночи. Это число постоянно обновляется 18.2
раз в секунду прерыванием таймера. Когда появляется очередной
запрос на время, то текущее значение счетчика времени суток
преобразуется обратно в привычный формат часы-минуты-секунды.
Если при старте не было введено значения, то счетчик устанавли-
вается в ноль, как будто сейчас полночь. Компьютеры снабженные
микросхемой календаря-часов могут автоматически устанавливать
счетчик времени суток.

Высокий уровень.

TIME$ устанавливает или получает время в виде строки чч:мм:сс,
где часы меняются от 0 до 23, начиная с полуночи. Для 5:10 дня: