Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


«Инструментальные» программные средства, заменяющие аппаратные тестеры (ликбез).

«Инструментальные» программные средства, заменяющие аппаратные тестеры (ликбез).

С помощью специальных программ обычную системную плату можно превратить в универсальный стенд для диагностирования и ремонта большинства узлов и устройств компьютера. Умение программировать дает возможность создавать «инструментальные» программные средства, заменяющие аппаратные тестеры, используемые для контроля и диагностики устройств. Стоимость аппаратных тестеров достаточно высока, а их номенклатура невелика. Модификация и их приспособление к конкретному устройству - это сложное и дорогостоящее удовольствие. Разработанные «инструментальные» программные средства, в отличие от аппаратных тестеров, легко модифицируются и приспосабливаются для работы с любым устройством. Программным путем можно задать в устройстве любой необходимый для контроля режим работы, удобно и эффективно осуществлять контроль процессов осциллографом, получать информацию об ошибках из регистров ошибок, регистров состояния контроллеров устройств. Программы BIOS, при выполнении своей функции управления устройством, еще осуществляют и контрольные функции — при обнаружении ошибки устанавливают флажок CF (в регистре флагов процессора) в 1 и записывают код ошибки в регистр AH процессора (получить дополнительную уточняющую информация об ошибке можно из регистра ошибок, регистра состояния контроллера этого устройства).

Написание специальных программ обычно осуществляют на ассемблере. Для упрощения процесса создания программ, в составе этих программ используют стандартные программы-функции BIOS. Программы BIOS являются низшим (физическим) уровнем стандартного ввода/вывода операционной системы. Программы «прошиты» в постоянном запоминающем устройстве ПЗУ BIOS (или флэш-памяти) и реализуют при своем выполнении функции управления внешними устройствами на физическом уровне. Ввод-вывод на физическом уровне осуществляется на уровне команд контроллеров внешних устройств, их программно-доступных регистров (с реализацией всех необходимых задержек и особенностей управления устройством). Программы BIOS подробно описаны (как говорят, хорошо документированы). По ним изданы справочники в печатном и электронном виде. Набор программы, ее отладку и запуск программы на выполнение, удобно осуществлять с помощью специальных программ типа профотладчиков Debug, AFD и др.. Программы-профотладчики предназначены для использования в работе специалистами по ремонту и диагностированию персональных компьютеров. С точки зрения программистов, они обладают скромными функциональными возможностями, но для написания и выполнения небольших специальных программ их возможностей вполне достаточно. Для написания специальных программ тестирования и активизации сигналов для исследований осциллографом нужно, как минимум, знать следующее:

- знать примерно 10-20 простых команд ассемблера из базового набора команд семейства микропроцессоров и наиболее простые виды адресации, используемые для указания операндов в командах;

- уметь пользоваться справочником по функциям BIOS;

-знать назначение основных программно-доступных регистров процессора, используемых при программировании;

- уметь пользоваться профотладчиком AFD (уметь использовать основные команды и функциональные клавиши );

- знать общую архитектуру IBM PC подобных компьютеров.

Пример использования дополнительной функции BIOS INT 13, функция 42h (рис. 1).

В окне ассемблирования программы AFD набрана программа позволяющая читать в память (в буфер с адреса 240h) секторы с дисков. Зная структуры MBR и GPT дисков и структуры файловых систем в разделах можно с помощью этой программы спастифайл с диска с которого не загружается операционная система и он недоступен для программ-утилит и т. п.

Первые три команды программы запускают программу BIOS INT 13 функция 00 (сброс диска 80h). Следующие четыре команды запускают программу дополнительной функции BIOS INT 13, функция 42h (расширенное чтение). Функция осуществляет передачу секторов с заданной области диска в буфер памяти.

Перед вызовом прерывания требуется записать в регистры следующие значения:

в АН — значение 42h;

в DL — номер дисковода (80h);

в DS: SI — адрес пакета дискового адреса (200h).

После завершения операции функция возвращает в регистре АН состояние дисковой системы (табл. 1).

В случае аварийного завершения выполнения функции поле счетчика блоков в пакете дискового адреса содержит число блоков, которые были успешно прочитаны (прочитаны до того, как произошла ошибка).

В окне 2 (меню программы AFD) с адреса 200h расположен «пакет дискового адреса» (занимает 20h байтов см. рис. 1) в котором указаны все параметры обмена (мы хотим прочитать 1 сектор — LBA 3Fh т. е. BOOT – сектор первого раздела диска 80h).

Нажимая F2 выполним программу (по командно):

- c адреса 240h расположен буфер в который принято содержимое LBA с адресом 3Fh (Boot-сектор: EB 3C 90 46 … ).

Изменяя параметы обмена можно обращаться в любую область дисков MBR и GPT, а затем с помощью AFD сохранять считанную информацию в виде файла на другой носитель.

Рис. 1.

Используя аналогично, например, программу BIOS Int 13h, функция 44h (верификация секторов)

можно осуществить проверку секторов на диске по их контрольным суммам (без передачи информации между диском и оперативной памятью).

Аналогично потребуется записать параметры в пакет дискового адреса и в регистры процессора следующие значения:

в АН — значение 44h;

в DL — номер дисковода;

в DS: SI – адрес пакета дискового адреса.

После завершения операции функция возвращает в регистре АН состояние дисковой системы. В случае аварийного завершения выполнения функции поле счетчика блоков в пакете дискового адреса содержит число блоков, которые были успешно верифицированы (проверены до того, как произошла ошибка).

 Таблица 1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


Лицензия