Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОТВЕТЫ ЗЫКОВ.doc
Скачиваний:
12
Добавлен:
01.07.2025
Размер:
678 Кб
Скачать
☆

2.Установка/чтение времени и даты. Установка/чтение часов реального времени. Задержка программных операций.

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

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

запрос на время, то текущее значение счетчика времени суток преобразуется обратно в привычный формат часы-минуты-секунды. Если при старте не было введено значения, то счетчик устанавливается в ноль, как будто сейчас полночь. Компьютеры снабженные микросхемой календаря-часов могут автоматически устанавливать счетчик времени суток.

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

TIME$ устанавливает или получает время в виде строки чч:мм:сс,

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

100 TIME$ = "17:10:00" 'установка времени

110 PRINT TIME$ 'вывод времени

Поскольку TIME$ возвращает строку, то для выделения отдельных

частей показания часов можно использовать строковые функции MID$,

LEFT$ и RIGHT$. Например, чтобы преобразовать время 17:10:00 в

5:10 Вы должны вырезать строку символов, соответствующую часам,

преобразовать ее в числовой вид (используя функцию VAL), вычесть

12, А затем представить результат опять в виде строки:

100 T$ = TIME$ 'получаем строку времени

110 HOUR$ = LEFT$(T$,2) 'выделяем значение часов

120 MINUTES$ = MID$(T$,4,2) 'выделяем значение минут

130 NEWHOUR = VAL(HOUR$) 'преобразуем часы в число

140 IF NEWHOUR > 12 THEN NEWHOUR = NEWHOUR - 12

150 NEWHOUR$ = STR$(NEWHOUR) 'новое значение в строку

160 NEWTIME$ = NEWHOUR$ + ":" + MINUTES$ 'делаем новую строку

Средний уровень.

MS DOS предоставляет прерывания для чтения и установки времени, производя необходимые преобразования между значением счетчика времени суток и часами-минутами-секундами. Время выдается с точностью до 1/100 секунды, но поскольку счетчик времени суток обновляется с частотой в пять раз меньшей, то показания сотых секунд очень приближенные. Функция 2CH прерывания 21H выдает время,

а функция 2DH - устанавливает его. В обоих случаях CH содержит часы (от 0 до 23, где 0 соответствует полночи), CL - минуты (от 0 до 59), DH - секунды (от 0 до 59) и DL - сотые доли секунд (от 0 до 99).

Кроме того при получении времени функцией 2CH, AL содержит номер дня недели (0 = воскресенье). Значение дня будет верным только если была установлена дата. DOS вычисляет номер дня недели по дате. Отметим также, что при установке времени функцией 2DH, AL отмечает правильность введенного значения времени (0 = правильно, FF = неправильно).

;---установка времени

MOV CH,HOURS ;вводим значения времени

MOV CL,MINUTES ;

MOV DH,SECONDS ;

MOV DL,HUNDREDTHS ;

MOV AH,2DH ;номер функции установки времени