"Роберт Джордайн. Справочное пособие программиста - 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 импульсов/сек. MOV AL,AH ;готовим для посылки старший байт OUT CHANNEL_0,AL ;посылка старшего байта .h3 2.1.2 Установка/чтение времени. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ При старте MS DOS запрашивает у пользователя текущее время. Введенное значение помещается в 4 байта, хранящие счетчик времени суток (начиная с 0040:006C, младший байт хранится первым). Но сначала оно преобразуется в форму, в которой подсчитывается время суток, т.е. время преобразуется в число восемнадцатых долей се- кунды, прошедших с полночи. Это число постоянно обновляется 18.2 раз в секунду прерыванием таймера. Когда появляется очередной запрос на время, то текущее значение счетчика времени суток преобразуется обратно в привычный формат часы-минуты-секунды. Если при старте не было введено значения, то счетчик устанавли- вается в ноль, как будто сейчас полночь. Компьютеры снабженные микросхемой календаря-часов могут автоматически устанавливать счетчик времени суток. Высокий уровень. TIME$ устанавливает или получает время в виде строки чч:мм:сс, где часы меняются от 0 до 23, начиная с полуночи. Для 5:10 дня: |
|
|