Смекни!
smekni.com

Разработка программы на Ассемблере (стр. 4 из 11)

"+" - обозначает, чтокоманда влияет на флаг, "-" - не влияет, "1" - флагустанавливается в 1, "0" - флаг устанавливается в 0 (сбрасывается),"#" - инверсия флага, "?" - не определенное значение флага,>1 - одиночный сдвиг, >n - многоразрядный сдвиг.

ПРИМЕЧАНИЯ

 

    1. R1,R2 - одно- или двухбайтные регистры.

    2. RP - двухбайтные регистры.

    3. SRC,DST -источник,приемник (регистр или ячейка  па-

       мяти)

    4. M,M1,M2 -ячейки памяти с символическими адресами M,

       M1 и M2.

    5. CNT - счетчик,регистр CL или CX.

    6. SUBR,NAME  -  символический  адрес  (метка  начала

       подпрограммы или блока операторов).

    7. Во всех  командах  условных  переходов  метка  NAME

       должна отстоять от команды перехода не более,чем на  -128

       или +127 байтов.

    8. INUM - номер прерывания.

ОБЩИЙ РАЗДЕЛ

1.1. Технико-математическое описание задачи

Программаделится на две части:

Первая частьпрограммы - Сбор сведений - это часть программы, собирающая справки обоборудовании, установленном на ПК, на котором программа выполняется. Справкинаводятся о следующих устройствах:

-    математическомсопроцессоре;

-    СОМпортах;

-    LPT портах;

-    дисководах;

-    CD-ROM приводах;

-    расширенномуправлении электропитанием;

-    манипуляторе«мышь».

Математическийсопроцессор – это микрочип, устанавливаемый на материнскую плату, которыйработает совместно с основным процессором, осуществляет обработку чисел сплавающей точкой, тем самым разгружая основной процессор. Может устанавливатьсяопционально по желанию пользователя либо самим пользователем, т.е. можетлибо присутствовать, либо отсутствовать.

          СОМ порты – этопорты с последовательным типом передачи данных, предназначенные для подключениякоммуникационных, манипуляторных и других устройств, где требуется сравнительноне- большая скорость передачи данных. Количество установленныхпоследовательных портов может варьироваться от одного до четырёх. Нанекоторых материнских платах существует ограничение на подключениепоследовательных портов, например: если это значение будет два, и если выподключите четыре порта, то работать будут все равно два.

LPT порты – это порты спараллельным типом передачи данных, предназначенные для подключения принтеров идругих устройств, где требуется относительно большая скорость передачи данных,а также могут использоваться для соединения двух компьютеров между собой дляобмена данными. Количество установленных LPT портов можетварьироваться от одного до четырёх.

Дисковод – устройство,предназначенное для чтения/записи накопителей на магнитном диске (гибкий диск).Существует четыре типа дисководов:

-    360Кб.;

-    720Кб.;

-    1.2Мб.;

-    1.44Мб.

Они различаются по формату обслуживаемых дискет имаксимально возможному объему данных, записываемых на дискету соотвестсвующеготипа.

CD-ROM привод – устройство,предназначенное только для чтения накопителей на лазерных дисках. Различаютсяпо скорости доступа к данным и скоростью вращения лазерного диска. Обычноустанавливают не более одного привода.

РУЭ (расширенноеуправление электропитанием) – стандарт, служащий для экономии электроэнергии.Представляет собой следующий набор функций:

-    автоматическоеотключение электропитания;

-    «спящий»режим;

-    автоматическоеотключение питания монитора;

-    автоматическоеотключение питания жестких дисков.

Может находиться в двух состояниях: включено иливыключено.

Вторая часть программы - диагностика памяти - проверяет на работоспособность память ПК, накотором выполняется программа.

1.2. Требования к функциональнымхарактеристикам

При запуске программы наэкран должна выводиться аннотация, затем, после нажатия на любую клавишу,должен очищаться экран и  появляться меню из трех пунктов:

1 – сбор сведений осистеме;

2 – тест памяти;

3 – выход.

Для выбора интересующего пункта необходимо нажатьна клавиатуре цифры, соответствующие номерам пунктов.

В случае  выбора пункта«Сбор сведений о системе» выполняется последовательный вывод информации о ПК ввиде списка устройств с текущим состоянием. Ниже приведена таблица со спискомустройств и их возможными состояниями.

                                                                                                Таблица1

Таблица возможныхсостояний устройств

Устройство Возможные состояния
Математический сопроцессор Присутствует, отсутствует
Максимальное количество подключаемых Сом портов От 0 до 4
Количество CОМ-портов От 0 до 4
Количество LPT-портов От 0 до 4
Первый дисковод Отсутствует, 360Kb, 720Kb, 1.2Mb, 1.44Mb.
Второй дисковод Отсутствует, 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счисления), если считать содержимое этого байта,то на выходе получиться ноль – вроде бы он исправен.