Учебная работа. Реферат: Разработка программы диагностики и тестирования аппаратных средств ПК
СОДЕРЖАНИЕ
ВВЕДЕНИЕ…………………………………………………………………..4
ОБЩИЙ РАЗДЕЛ……………………………………………………………5
Технико-математическое описание задачки……….…………………5
Требования к многофункциональным чертам………………….7
Требования к техническим и программным средствам………….…8
Обоснования выбора языка программирования…………………….9
СПЕЦИАЛЬНЫЙ РАЗДЕЛ………………………………………………..11
2.1. Постановка задачки……………………………………………………..11
2.2. Описание структуры программки…………………………………..…12
2.3. Оисание метода решения задачки………………………………….14
2.4. Отладка и тестирование……………………………………………….16
2.5. {Инструкция} к юзеру…………………………………………..17
2.6. Заключение о результатах проектируемой задачки…………………..18
приложение 1…………………………………………………………..19
ПРИЛОЖЕНИЕ 2…………………………………………………………..21
СПИСОК ЛИТЕРАТУРЫ………………………………………………….30
ВВЕДЕНИЕ
В связи с возникновением индивидуальных компов одномоментно вырос Рынок аппаратных средств, как грибы росло число производителей, предлагающих свою продукцию. При всем этом, покупая то либо другое аппаратное средство, производитель не может (а время от времени и не желает) отдать 100% гарантию, что оно исправно.
В связи с сиим также быстро развивался и Рынок пограммных тестирующих средств. На рынке существует большущее количество хороших исследовательских программ, написанных большенными корпорациями: таковыми как Symantec inc., APS (Advanced Personal Systems), Microsoft и т.д., но все сущестующие диагностирующие программки написаны на язках высочайшего уровня, а означает не довольно резвы и надёжны.
Создатель проекта не берётся соперничать с большущими гигантами по количеству выполняемых этими программками тестов в силу того, что это глупо. Была предпринята попытка написать наиболее надежную, резвую диагностическую программку с внедрением машино-ориентированного языка программирования – Ассемблер.
ОБЩИЙ РАЗДЕЛ
1.1. Технико-математическое описание задачки
Программка делится на две части:
1-ая часть программки — Сбор сведений — это часть программки, собирающая справки о оборудовании, установленном на ПК , на котором программка производится. Справки наводятся о последующих устройствах:
математическом сопроцессоре;
СОМ портах;
LPT портах;
дисководах;
CD-ROM приводах;
расширенном управлении электропитанием;
манипуляторе «мышь».
Математический сопроцессор – это микрочип, устанавливаемый на материнскую плату, который работает вместе с главным микропроцессором, производит обработку чисел с плавающей точкой, тем разгружая главный машина — комплекс технических средств, предназначенных для автоматической обработки информации в процессе решения вычислительных и информационных задач) (либо вычислительной системы) которое делает арифметические и логические операции данные программкой преобразования инфы управляет вычислительным действием и коор. Может устанавливаться опционально по желанию юзера или самим юзером, т.е. может или находиться, или отсутствовать.
СОМ порты – это порты с поочередным типом передачи данных, созданные для подключения коммуникационных, манипуляторных и остальных устройств, где требуется сравнимо не- большая скорость передачи данных. количество установленных поочередных портов может варьироваться от 1-го до четырёх. На неких материнских платах существует ограничение на подключение поочередных портов, к примеру: если это работать будут все равно два.
LPT порты – это порты с параллельным типом передачи данных, созданные для подключения принтеров и остальных устройств, где требуется относительно большая скорость передачи данных, также могут употребляться для соединения 2-ух компов меж собой для обмена данными. количество установленных LPT портов может варьироваться от 1-го до четырёх.
дисковод – устройство, созданное для чтения/записи накопителей на магнитном диске (гибкий диск). Существует четыре типа дисководов:
360 Кб.;
720 Кб.;
1.2 Мб.;
1.44 Мб.
Они различаются по формату обслуживаемых дискет и очень вероятному размеру данных, записываемых на дискету соотвестсвующего типа.
CD-ROM привод – устройство, предназначенное лишь для чтения накопителей на лазерных дисках. Различаются по скорости доступа к данным и скоростью вращения лазерного диска. Обычно устанавливают не наиболее 1-го привода.
РУЭ (расширенное управление электропитанием) – эталон, служащий для экономии электроэнергии. Представляет собой последующий набор функций:
автоматическое отключение электропитания;
«спящий» режим;
автоматическое отключение питания монитора;
автоматическое отключение питания твердых дисков.
Может находиться в 2-ух состояниях: включено либо выключено.
2-ая часть программки — диагностика памяти — инспектирует на работоспособность память ПК , на котором производится программка.
1.2. Требования к многофункциональным чертам
При запуске программки на экран обязана выводиться инструкция, потом, опосля нажатия на всякую кнопку, должен очищаться экран и появляться меню из 3-х пт:
1 – сбор сведений о системе;
2 – тест памяти;
3 – выход.
Для выбора интересующего пт нужно надавить на клавиатуре числа, надлежащие номерам пт.
В случае выбора пт «Сбор сведений о системе» производится поочередный вывод инфы о ПК в виде перечня устройств с текущим состоянием. Ниже приведена таблица со перечнем устройств и их вероятными состояниями.
Таблица 1
Таблица вероятных состояний устройств
Устройство
Вероятные состояния
Математический сопроцессор
Находится, отсутствует
Наибольшее количество подключаемых СОМ-портов
От 0 до 4
количество CОМ-портов
От 0 до 4
Количество LPT-портов
От 0 до 4
1-ый дисковод
Отсутствует, 360Kb, 720Kb, 1.2Mb, 1.44Mb.
2-ой дисковод
Отсутствует, 360Kb, 720Kb, 1.2Mb, 1.44Mb.
количество установленных CD-ROM приводов
От 0 до 4
Расширенное управление электропитанием(APM)
Отсутсвует, находится, включено/выключено
Манипулятор «мышь»
Отсутствует, находится
Опосля вывода перечня устройств, в программке нужно воплотить задержку, потом возврат в меню.
В случае выбора пт «тест памяти» программка обязана делать тестирование не наименее 640Кб. памяти. В случае если память исправна, на экран выводиться сообщение «тест пройден», в неприятном случае «тест не пройден». Также нужно воплотить задержку и возврат в меню.
В случае выбора пт «выход», нужно воплотить окончание работы программки и передачу управления операционной системе DOS.
1.3. Требования техническим и программным средствам
программка выполнена на языке ассемблера 8086 микропроцессора,
соответственено ей нужен IBM PC – совместимый комп с микропроцессором не ниже 8086, также программка может производиться на компах с микропроцессорами старшего поколения (к примеру: 80286 либо 80386), т.к. индивидуальностью архитектуры 80х86 является преемственность на уровне машинных установок: программки, написанные для младших моделей микропроцессоров, без всяких конфигураций могут быть выполнены на наиболее старших моделях.
Компилированный код программки занимает всего 2 Кб – это соединено с отсутствием лишнего кода, которого весьма много при использовании языков высочайшего уровня. В связи с сиим программка может просто поместиться на дискету 360 Кб.
программка работает в текстовом режиме и не употребляет цветовой палитры, потому ей довольно монитора CGA. Не считая того она может без всяких конфигураций работать на мониторах старшего поколения таковых, как EGA, VGA и SVGA.
Потому что программка тестирует 640 Кб оперативки, этот размер являеться минимумом.
1.3.1. Обоснования выбора языка программирования
Для написания данной программки был избран язык ассемблера. В связи с тем, что он более подступает для реализации такового рода задач, т.е. где требуеться досуп к портам, выполнение особых прерываний, доступ к области памяти BIOS и т.д.
Язык ассемблера, представляет собой практически символьную форму записи машинного языка: в нем заместо цифровых кодов операций вчеркивают обычные знаки операций либо их словестные наименования, заместо адресов – имена, а константы записывают в десятичное системе счисления. Программку, записанную в таком виде, вводят в ЭВМ и подают на вход специальному транслятору, именуемому ассемблером, который переводит её на машинный язык, и дальше полученную машинную программку делают.
Для хоть какой ЭВМ можно придумать различные языки ассемблера, хотя бы поэтому, что можно по-разному обозначать машинные операции. В частости, и для ПК создано несколько таковых языков(ASM-86, MASM, TASM). Для реализации данной задачки был избран язык, который сотворен компанией Borland и полное заглавие которого – турбоассемблер, сокращенно TASM. нужно отметить, что этот язык более нередко употребляется на ПК .
СПЕЦИАЛЬНЫЙ РАЗДЕЛ
2.1. Постановка задачки
Создать программку тестирования оперативки и сбора сведений о ПК .
Воплотить меню, в каком юзеру предлагается выбор из трёх пт:
1 – сбор сведений о системе;
2 – тест памяти;
3 – выход.
Сбор сведений должен осуществляться в виде перечня устройств с текущим состоянием. состояние от наименования устройства обязано отделяться двоеточием. Перечень устройств и вероятных их состояний см. в таблице 1.
Пункт «тест памяти» должен производить проверку ячеек памяти на работоспособность. Существует два типа дефектов ячеек памяти:
«неизменные нули»;
«неизменные единицы».
Вид неисправности «неизменные нули» заключается в последующем: представим, что бит №4 в б, изображенном на рис. 1 – неисправный. В данный момент в б записано число ноль (восемь нулей в двоичной системе cчисления), если считать содержимое этого б, то на выходе получиться ноль – как бы он исправен.
7 6 5 4 3 2 1 0
0
0
0
0
0
0
0
0
рис. 1
Но это только лишь видимость, если в этот б записать число FFh (восемь единиц в шестнадцатиричной системе счисления), что в двоичной системе счисления эквивалентно восьми единицам, то получится картина, представленная на рис. 2. В этом случае, если считать содержимое этого б, на выходе получиться EFh, другими словами, записывая в бит №4 единицу, мы при считывании все равно получаем ноль. Как следует бит № 4, а означает и б, неисправен.
7 6 5 4 3 2 1 0
1
1
1
0
1
1
1
1
рис. 2
Вид неисправности «неизменные единицы» идентичен с видом «неизменные нули». Разница состоит только в том, что в виде «неизменные нули» неисправные биты находятся постоянно в нулевом состоянии, а в виде «неизменные единицы» в единичном.
В связи с сиим нужно воплотить проверку ячеек памяти на два вида дефектов: «неизменные нули» и «неизменные единицы».
2.2. Описание структуры программки
программка была реализована при помощи нескольких пользовательских процедур и макросов (см. таблицу 2).
Достаточно нередко в программках, в особенности огромных, приходится несколько раз решать одну и ту же подзадачу и потому приходится выписывать схожую группу установок, решающих эту подзадачу. Чтоб избежать повторного выписывания таковой группы установок, ее обычно выписывают один раз и оформляют подходящим образом, а потом в подходящих местах программки просто передают управление на эти команды, которые, проработав, возвращают управление назад. Таковая группа установок, которая решает некую подзадачу и которая организована таковым образом, именуется процедурой.
Часто бывает полезным предварительное(до начала трансляции) преобразование текста программки. К примеру, может потребоваться, чтоб некий фрагмент программки был продублирован несколько раз либо чтоб зависимо от неких критерий в тексте программки были сохранены одни фрагменты и удалены остальные. Схожую возможность предоставляют так именуемые макросредства. расширение языка ассемблера за счет этих средств обычно именуют макроязыком.
программка, написанная на макроязыке, транслируется в два шага. Поначалу она переводится на, так сказать, незапятнанный язык ассемблера, т.е. преобразуется к виду, где нет никаких макросредств. Этот шаг именуется макрогенерация, его производит особый транслятор – макрогенератор. На втором шаге приобретенная программка переводится на машинный язык. Это шаг ассемблирования, его производит ассемблер.
Таблица 2
Таблица процедур и макросов
Заглавие
Тип
Предназначение
Movcur
Макрос
Премещает курсор
Clrscr
Макрос
Очищает экран
Макрос
Выводит на экран строчку
Press
Макрос
Реализует задержку
ShowQuestion
Процедура
Выводит на экран меню
SborSved
Процедура
Производит сбор сведений
TestMem
Процедура
Производит тест памяти
При выполнении программки на экран выводится инструкция, юзер, ознакомившись с программкой, надавливает на всякую кнопку, и на экран выводится меню (при помощи процедуры ShowQuestion), в каком юзер может избрать интересующий его пункт меню:
сбор сведений о ПК ;
тест памяти;
выход.
Если избран 1-ый пункт, производится процедура ShowSved. Снутри данной процедуры реализована чистка экрана, при помощи макроса ClrScr, также другими словами заключения о сути заболевания и состоянии пациента»>диагностика оборудования и задержка, реализованные при помощи макроса press. Опосля выполнения данной процедуры программка перебегает в начало, т.е. в меню.
В случае выбора второго пт, производится процедура TestMem, тестирующая оперативную память ПК . Также снутри данной процедуры реализованы чистка экрана и задержка до выхода в меню.
Если избран 3-ий пункт, программка, не очищая экран, передает управление операционной системе DOS .
2.3. Описание метода решения задачки
Если в оперативки ПК имеется 2 в 20 степени ячеек, то для ссылок на эти ячейки необходимы 20-разрядные адреса; их принято именовать физическими адресами. ясно, что при большенном объеме памяти огромным будет и размер физических адресов, а это ведет к повышению длины установок и к повышению размера программ в целом. Это плохо. Чтоб уменьшить размеры установок, поступают последующим образом.
память условно делят на участки, которые принято именовать секторами. Исходные адреса частей могут быть хоть какими, но на длину частей накладывается ограничение: размер хоть какого сектора не должен превосходить 64Кб.
В этих критериях физический адресок А хоть какой ячейки памяти можно представить в виде суммы A=B+ofs, где В – адресок сектора, а ofs – смещение относительно адреса В.
Таковым образом ,если в команде нужно указать физический адресок А, то адресок сектора B – “прячем” в так именуемый сегментный регистр, а в команде указываем только этот регистр и слагаемое ofs. Это даёт экономию размера установок.
В связи с сиим наибольший размер сектора равен 64Кб, а малый равен 16 б.
Процедура теста памяти реализована при помощи вложенного цикла. 1-ый цикл увличивает на еденицу модификационный регистр BP до того времени, пока BP меньше 0A000h (это крайний сектор 640 Кб). Снутри этого цикла реализован еще один цикл — он наращивает на единицу модификационный регистр SI до того времени, пока он меньше 16. Снутри вложенного цикла осуществляется конкретно проверка памяти на неисправные биты: поначалу происходит проверка на «неизменные единицы» — в сектор по адресу BP со смещением SI записываеться ноль (что в двоичной системе счисления значит восемь нулей), потом осуществляется проверка этого значения, т.е. нуля. Если это значение равно нулю, означает память исправна, в неприятном случае — не исправна. Потом происходит проверка на «неизменные нули»: по тому же адресу записывается число FFh (что в двоичной системе счисления значит восемь едениц), потом осущесвляется проверка этого значения. Если значение равно FFh, означает память исправна, в неприятном случае — неисправна.
2.4. Отладка и тестирование
Тестирование выполнялось при помощи отладчика Turbo Debugger компании Borland. Была выполнена трассировка всей программки. Трассировка – это процесс пошагового выполнения установок с листингом состояний всех регистров, флагов, сектора данных на момент выполнения каждой команды.
В процессе трассировки были обнаружены последующие ошибки:
неверное определение состояния математического сопроцессора — некорректно обозначенная маска чистки, так именуемого слова «equpment list», получаемого при помощи прерывания 11h;
“зависание” при вызове процедуры TestMem — ошибка в реализации метода теста памяти – некорректно обозначенная метка перехода во вложенном цикле.
Не считая того, было найдено огромное количество ошибок в синтаксисе установок.
Потому что программка писалась на одном компе, проверить её на корректность определения конфигурации ПК не представлялось вероятным, потому, опосля окончания программки, она производилась на различных ПК с различными конфигурациями: в процессе этого теста ошибок обнаруженно не было – все аппаратные средства определялись верно.
Также нереально было проверить программку на корректность теста памяти на практике, поэтому что она производилась на всех ПК с исправной памятью, а пробы отыскать ПК с заранее неисправной оперативной памятью не увенчались фуррором. Тем не наименее на теоретическом уровне тест должен работать верно.
2.5. {Инструкция} к юзеру
Для пуска программки сделайте файл с именованием «kurs.com». Вашему вниманию предоставиться инструкция – пристально прочитайте её, а потом нажмите всякую кнопку на клавиатуре (к примеру, enter). Потом на дисплее высветится меню, изображенное на рис. 3.
1 – Сведения о системе
2 — тест памяти
3 – Выход
Ваш выбоp ? :
рис. 3
Для того, чтоб получить короткие сведения о вашем ПК — нажмите кнопку «1», потом «Enter» на вашей клавиатуре, и на экран высветится перечень устройств с текущем состоянием. Для возврата в меню нажмите всякую кнопку.
Для того, чтоб протестировать оперативную память вашего ПК – нажмите кнопку, «2» потом «Enter» на вашей клавиатуре, и на дисплее высветится сообщение о состоянии памяти вашего ПК . Для возврата в меню нажмите всякую кнопку.
Для того, чтоб выйти из программки — нажмите кнопку «3», потом «Enter» на вашей клавиатуре.
2.6. Заключение о результатах проектируемой задачки
В процессе выполнения поставленной в курсовом проекте задачки были приобретены способности реализации сложных ассемблерных программ с внедрением макросов и процедур. Не считая того, был получен большой опыт и умение работы с CMOS (область памяти, где хранятся сведения о конфигурации ПК ) на низком уровне, т.е. с внедрением прерывания ==BIOS 11h и 70h порта, также опыт использования доп сегментных регистров и регистров модификаторов.
Реализованная программка быть может полезна при диагностике оборудования на относително старенькых моделях ПК , так как в программке употребляется система установок 8086 микропроцессора, который был выпущен в 1979 г. компанией Intel, и на данный момент эта модель микропроцессора является устаревшей.
СПИСОК ЛИТЕРАТУРЫ
1. В.Н. Пильщиков. Программирование на языке ассемблера IBM PC. – М.:Диалог-МИФИ. 1997
]]>