"Роберт Джордайн. Справочное пособие программиста - 2 (ассемблер, операционная система MS DOS)" - читать интересную книгу автора 32-байтных операций. В данном примере установлена задержка на 5
секунд, что соответствует 91 отсчету. ;---получение значения счетчика и установка задержки MOV AH,0 ;номер функции для "чтения" INT 1AH ;получаем значение счетчика ADD DX,91 ;добавляем 5 сек. к младшему слову MOV BX,DX ;запоминаем требуемое значение в BX ;---постоянная проверка значения счетчика времени суток BIOS REPEAT: INT 1AH ;получаем значение счетчика CMP DX,BX ;сравниваем с искомым JNE REPEAT ;если неравен, то повторяем снова, ;иначе задержка окончена AT имеет добавочную функцию прерывания 15H, которая позволяет осуществить задержку на указанное время. Поместите 86H в AH, а число микросекунд задержки в CX:DX. После этого выполните преры- вание. .h3 2.1.6 Операции запрограммированные во времени. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Программа определяет время для выполнения определенной опера- счетчика времени суток и затем сравнивается с последующими пока- заниями. Можно получать значения в формате часы-минуты-секунды, но слишком хлопотно вычислять разницу между такими показаниями, поскольку система счета не десятичная. Лучше прямо читать счетчик времени суток BIOS, измерять продолжительность в 1/18 секунды, а затем уже переводить ее в обычный формат чч:мм:сс. 100 GOSUB 500 'получаем значение счетчика 110 START = TOTAL 'сохраняем начальное значение в START . (далее идет процесс, длительность которого измеряется) . 300 GOSUB 500 'получаем финальное значение 310 TOTAL = TOTAL - START 'подсчитываем число импульсов 320 HOURS = FIX(TOTAL/65520) 'вычисляем число часов 330 TOTAL = TOTAL - HOURS*65520 'вычитаем часы из TOTAL 340 MINUTES = FIX(TOTAL/1092) 'вычисляем число минут 350 TOTAL = TOTAL - MINUTES*1092 'вычитаем минуты из TOTAL 360 SECONDS = FIX(TOTAL/18.2) 'вычисляем число секунд 370 PRINT HOURS,MINUTES,SECONDS 'печатаем результат 380 END . . 500 DEF SEG = 0 'подпрограмма чтения времени суток |
|
|