|
|
|
|
Тактовая частота MS-DOS
Во время написания этой книги MS-DOS доступна для шести процессоров семейства 8086: 8088, 8086, 80188, 80286 и 80386. Самый медленный из них 8088,
а самый быстрый - 80386 (и самый мощный). Процессорам семейства 8086 доступна различная тактовая частота, как показано в таблице 5-2. Тактовая частота
4.77 МГц означает, что генерируется 4.77 миллиона тактов в секунду. Тактовая частота определяет быстродействие процессора: чем она выше,
тем быстрее процессор. Заметим однако, что процессор 80286 быстрее, чем 8086, имеющий такую же тактовую частоту.
В связи с тем, что процессор 8088 самый медленный из семейства 8086, все временные характеристики в этой главе даются для
процессора 8088, имеющего тактовую частоту 4.77 МГц. Если Ваш
компьютер имеет большее быстродействие, Вы сможете получить ответ
быстрее. Так как семейство процессоров 8086 имеет возможность
предварительной выборки команд из очередей, действительное время
выполнения некоторой последовательности команд может отличаться
от времени выполнения, суммированного из отдельных команд.
Таблица 5-2
Тактовая частота для MS-DOS компьютеров
ДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДДДДДДДДДДДДВДДДДДДДДДДДДДДДДД
і і
Процессоры 8086 і Наименование компьютера іТактовая частота
ДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДЕДДДДДДДДДДДДДДДДД
і і
8088 і IBM PC і 4.77,8 МГц
8086 і IBM PC Compatible і 8,12 МГц
80188/186 і IBM PC Compatible і 8,10 МГц
80286 і IBM PC AT (режим 8086) і 8,10 МГц
80386 і IBM PC AT (386) (режим 8086) 16,20,25 МГц
ДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДБДДДДДДДДДДДДДДДДДД
|
MS-DOS поддерживает часы в реальном масштабе времени. Они
обеспечивают дату и время и доступны любой программе. Время поддерживается с точностью до 10 миллисекунд. Таким образом, если
для приложения необходима разрешающая способность меньше 10 миллисекунд, оно не может использовать эти часы.
Следующая программа считывает дату из MS-DOS. Для считывания
даты программное обеспечение использует прерывание 21h. В действительности, прерывание 21h используется при запросе любого обслуживания MS-DOS,
при этом регистр AH должен содержать код выполняемой функции. Позднее мы обсудим несколько примеров программ,
использующих программные прерывания для вызова MS-DOS или POM-BIOS.
mov ah,2ah ; считывание даты
int 21h ; вызов DOS
mov year,cx ; год в CX (от 1980 до 2099)
mov month,dh ; месяц в DH (от 1 до 12)
mov day,dl ; день в DL (от 1 до 31)
|
В приведенной программе день недели возвращается в AL. Как
видно из программы, для вызова MS-DOS или POM-BIOS выполняются
следующие шаги:
- Занесение в регистры соответствующих кодов команд и параметров.
- Осуществление прерывания, соответствующего вызываемой
функции.
- Возврат, считывание возвращаемых параметров и статуса информации из регистров.
Для считывания времени из MS-DOS используется прерывание int
21h с кодом команды AH=2ch, как показано в следующей программе:
mov ah,2ch ; cчитывание времени
int 21h ; вызов DOS
mov hours,ch ; часы в CH (от 0 до 23)
mov mins,cl ; минуты в CL (от 0 до 59)
mov secs,dh ; секунды в DH (от 0 до 59)
mov msec,dl ; 10 мсек в DL (от 0 до 99)
|
Программа считывает системное время и запоминает его в указанных переменных. Время и дату можно получить, используя функцию
вызова MS-DOS.
|
|