Разработка программы диагностики и тестирования аппаратных средств ПК
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: спортивные рефераты, бесплатные рефераты
| Добавил(а) на сайт: Samojlov.
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата
2.2. Описание структуры программы
Программа была реализована с помощью нескольких пользовательских процедур и макросов (см. таблицу 2).
Довольно часто в программах, особенно больших, приходится несколько раз решать одну и ту же подзадачу и поэтому приходится выписывать одинаковую группу команд, решающих эту подзадачу. Чтобы избежать повторного выписывания такой группы команд, ее обычно выписывают один раз и оформляют соответствующим образом, а затем в нужных местах программы просто передают управление на эти команды, которые, проработав, возвращают управление обратно. Такая группа команд, которая решает некоторую подзадачу и которая организована таким образом, называется процедурой.
Нередко бывает полезным предварительное(до начала трансляции) преобразование текста программы. Например, может потребоваться, чтобы какой- то фрагмент программы был продублирован несколько раз или чтобы в зависимости от некоторых условий в тексте программы были сохранены одни фрагменты и удалены другие. Подобную возможность предоставляют так называемые макросредства. Расширение языка ассемблера за счет этих средств обычно называют макроязыком.
Программа, написанная на макроязыке, транслируется в два этапа.
Сначала она переводится на, так сказать, чистый язык ассемблера, т.е.
преобразуется к виду, где нет никаких макросредств. Этот этап называется
макрогенерация, его осуществляет специальный транслятор – макрогенератор.
На втором этапе полученная программа переводится на машинный язык. Это этап
ассемблирования, его осуществляет ассемблер.
Таблица 2
Таблица процедур и макросов
|Название |Тип |Назначение |
|Movcur |Макрос |Премещает курсор |
|Clrscr |Макрос |Очищает экран |
|Print |Макрос |Выводит на экран строку |
|Press |Макрос |Реализует задержку |
|ShowQuestion |Процедура |Выводит на экран меню |
|SborSved |Процедура |Осуществляет сбор сведений |
|TestMem |Процедура |Осуществляет тест памяти |
При выполнении программы на экран выводится аннотация, пользователь, ознакомившись с программой, нажимает на любую клавишу, и на экран выводится меню (с помощью процедуры ShowQuestion), в котором пользователь может выбрать интересующий его пункт меню:
- сбор сведений о ПК;
- тест памяти;
- выход.
Если выбран первый пункт, выполняется процедура ShowSved. Внутри данной процедуры реализована очистка экрана, с помощью макроса ClrScr, а также диагностика оборудования и задержка, реализованные с помощью макроса press. После выполнения данной процедуры программа переходит в начало, т.е. в меню.
В случае выбора второго пункта, выполняется процедура TestMem, тестирующая оперативную память ПК. Также внутри данной процедуры реализованы очистка экрана и задержка перед выходом в меню.
Если выбран третий пункт, программа, не очищая экран, передает управление операционной системе DOS .
2.3. Описание алгоритма решения задачи
Если в оперативной памяти ПК имеется 2 в 20 степени ячеек, то для ссылок на эти ячейки нужны 20-разрядные адреса; их принято называть физическими адресами. Ясно, что при большом объеме памяти большим будет и размер физических адресов, а это ведет к увеличению длины команд и к увеличению размера программ в целом. Это плохо. Чтобы сократить размеры команд, поступают следующим образом.
Память условно делят на участки, которые принято называть сегментами.
Начальные адреса сегментов могут быть любыми, но на длину сегментов
накладывается ограничение: размер любого сегмента не должен превышать 64Кб.
В этих условиях физический адрес А любой ячейки памяти можно представить в виде суммы A=B+ofs, где В – адрес сегмента, а ofs – смещение относительно адреса В.
Таким образом ,если в команде надо указать физический адрес А, то адрес сегмента B – “прячем” в так называемый сегментный регистр, а в команде указываем лишь этот регистр и слагаемое ofs. Это даёт экономию размера команд.
В связи с этим максимальный объем сегмента равен 64Кб, а минимальный равен 16 байтам.
Процедура теста памяти реализована с помощью вложенного цикла. Первый цикл увличивает на еденицу модификационный регистр BP до тех пор, пока BP меньше 0A000h (это последний сегмент 640 Кб). Внутри этого цикла реализован еще один цикл - он увеличивает на единицу модификационный регистр SI до тех пор, пока он меньше 16. Внутри вложенного цикла осуществляется непосредственно проверка памяти на неисправные биты: сначала происходит проверка на «постоянные единицы» - в сегмент по адресу BP со смещением SI записываеться ноль (что в двоичной системе счисления означает восемь нулей), затем осуществляется проверка этого значения, т.е. нуля. Если это значение равно нулю, значит память исправна, в противном случае - не исправна. Затем происходит проверка на «постоянные нули»: по тому же адресу записывается число FFh (что в двоичной системе счисления означает восемь едениц), затем осущесвляется проверка этого значения. Если значение равно FFh, значит память исправна, в противном случае - неисправна.
2.4. Отладка и тестирование
Тестирование производилось с помощью отладчика Turbo Debugger
корпорации Borland. Была выполнена трассировка всей программы. Трассировка
– это процесс пошагового выполнения команд с листингом состояний всех
регистров, флагов, сегмента данных на момент выполнения каждой команды.
В ходе трассировки были обнаружены следующие ошибки: неправильное определение состояния математического сопроцессора - неправильно указанная маска очистки, так называемого слова «equpment list», получаемого с помощью прерывания 11h;
“зависание” при вызове процедуры TestMem - ошибка в реализации алгоритма теста памяти – неправильно указанная метка перехода во вложенном цикле.
Рекомендуем скачать другие рефераты по теме: культура доклад, реферат на социальную тему.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 | Следующая страница реферата