- •По курсу: ”организация эвм и систем”
- •Печатается по решению редакционно-издательского совета
- •Введение
- •1Введение в архитектуру реального режима ibm pc
- •Память и процессор
- •Распределение адресного пространства
- •Система прерываний
- •Система ввода-вывода
- •Архитектурные особенности процессоров ia-32
- •Дополнительные режимы адресации
- •Использование средств 32-разрядных процессоров в программировании
- •2Общие указания по выполнению лабораторных работ
- •Лабораторная работа № 1 Изучение структуры программы и способов адресации мп 8086
- •Домашняя подготовка
- •Лабораторное задание
- •Варианты задания
- •Контрольные вопросы
- •Теоретическая часть
- •Способы адресации и оптимизация программ
- •Строковые команды
- •Сканирование строки.
- •Загрузка регистра из строки.
- •Сегментная структура программ (структура и образ памяти программы .Exe).
- •Двоично-десятичные числа
- •Лабораторная работа № 2. Организация доступа к дискам в режиме ms dos и анализ системных ошибок.
- •Домашняя подготовка
- •Лабораторное задание
- •Варианты заданий
- •Контрольные вопросы
- •Теоретическая часть
- •Лабораторная работа № 3. Организация прерываний и резидентные программы.
- •Домашняя подготовка
- •Лабораторное задание
- •Контрольные вопросы
- •Варианты задания
- •Теоретическая часть (См. Также разделы 1.3 и 2.4)
- •3Организация прерываний и резидентные программы.
- •Резидентные программы
- •Механизм прерываний
- •Структура и образ памяти программы .Сом
- •Примеры резидентных программ
- •Лабораторная работа № 4. Системное время в компьютерах ibm pc
- •Варианты задания
- •Домашняя подготовка
- •Контрольные вопросы
- •Теоретическая часть
- •4 Системное время в компьютерах ibm pc
- •Измерение частоты при помощи rdtsc
- •Назначение каналов таймера в ibm pc
- •Библиографический список
- •Приложение Функции ms dos для выполнения лабораторных работ
- •Установка вектора прерывания
- •Чтение вектора прерывания
- •Завершение программы
- •Создание файла
- •Закрытие файла
- •Чтение из файла
- •Очистка экрана
- •Дополнительные средства ассемблера
Лабораторная работа № 4. Системное время в компьютерах ibm pc
Цель работы состоит в изучении принципов функционирования подсистемы таймеров современного компьютера и возможностей их использования для формирования временных интервалов.
Современные компьютеры оснащаются двумя подсистемами таймеров, параллельно отсчитывающими текущее время. Один таймер расположен в микросхеме с низким потреблением энергии (КМОП-микросхеме), которая при выключении питания компьютера продолжает работать, получая энергию от встроенного в компьютер аккумулятора. Этот таймер обычно называют часами реального времени. Другой таймер (его часто называют системным) работает, как и все остальные узлы компьютера, только когда компьютер включён.
Все современные микропроцессоры (с первых моделей Pentium) содержат в своём составе точное средство измерения времени – 64-разрядный счётчик тактов TSC (Time Stamp Counter). Счётчик тактов входит в состав блока мониторинга производительности процессора. Минимальный и максимальный измеряемые временные интервалы зависят от внутренней тактовой частоты процессора. Максимальный измеряемый период времени тактов. Даже при частоте ядра 1 ГГц это будет соответствовать периоду приблизительно в 585 лет. Минимальное значение равно 1 такту частоты ядра процессора.
Чтобы воспользоваться этим счётчиком для измерения времени необходимо провести его калибровку по системным часам или часам CMOS, т.к. длительность такта зависит от частоты процессора (системное время не зависит от частоты процессора). Счётчик тактов обнуляется в момент сброса процессора, после чего начинает подсчёт тактов, прошедших с момента сброса. Прочитать его содержимое можно с помощью команды RDTSC (машинный код этой команды – 0Fh, 31h). После её выполнения в регистре EDX будет размещена старшая часть, в регистре EAX – мл. часть значения числа тактов на момент выполнения команды. При выполнении задания по данной лаб. работе необходимо изучить оба таймера, разработать алгоритм и программу калибровки счётчика тактов, написать программу для формирования заданного временного интервала с использованием TSC (см. пример программы «тестирование скорости» в теоретической части этого раздела, рекомендации в [2] и раздел 2.4). Варианты задания на лабораторную работу приведены в таблице 1.
Варианты задания
Разработать алгоритм и написать программу на ассемблере для формирования 3-х временных интервалов (см. табл. 1). По истечении каждого интервала вывести соответствующее сообщение (например, «первые 10 секунд истекли»).
Таблица 1
№ |
Интервал (сек) |
Сообщение |
||
T1 |
T2 |
T3 |
||
1 |
10 |
15 |
20 |
Время i- ого интервала истекло |
2 |
5 |
10 |
13 |
Третий интервал завершился |
3 |
20 |
8 |
7 |
Лабораторная работа №4 завершилась |
4 |
26 |
15 |
5 |
Резидентная программа активизирована |
5 |
7 |
14 |
25 |
Заданное время истекло |
6 |
16 |
12 |
5 |
Ждем 16 / 12 / 5 секунд |
7 |
21 |
14 |
7 |
Второй интервал равен 14 сек |
8 |
12 |
22 |
26 |
Общая задержка равна 1 минуте |
9 |
30 |
10 |
3 |
Изучаем резидентные программы |
10 |
4 |
12 |
24 |
Формирование заданного временного интервала |
11 |
15 |
10 |
5 |
Первые 15 сек истекли и т.д |
12 |
11 |
22 |
33 |
Третий интервал завершился |
13 |
13 |
26 |
39 |
Первый интервал равен 13 сек |
14 |
25 |
5 |
7 |
Я сделал лабораторную работу |
15 |
40 |
15 |
5 |
Ждем 40 / 15 / 5 секунд |
16 |
33 |
13 |
7 |
Второй интервал равен 13 сек |
17 |
17 |
20 |
13 |
Все! Временные интервалы сформированы |
18 |
18 |
9 |
12 |
Первые 18 сек истекли и т.д |
19 |
19 |
4 |
8 |
Программа работает |
20 |
20 |
10 |
5 |
Общая задержка равна 35 секунд |
21 |
21 |
7 |
14 |
(На усмотрение автора) |
22 |
22 |
11 |
5 |
Изучили резидентные программы успешно |
23 |
23 |
30 |
15 |
Программа решает поставленную задачу |
24 |
24 |
12 |
6 |
(На усмотрение автора) |
25 |
25 |
18 |
9 |
(На усмотрение автора) |
26 |
26 |
13 |
7 |
Изучаем резидентные программы |
27 |
27 |
7 |
3 |
Третий интервал равен 3 сек |
28 |
28 |
14 |
7 |
Ура! Я сделал лабораторную работу |