Программное Обеспечение Микро-Эвм

Автор: Пользователь скрыл имя, 21 Ноября 2011 в 17:38, реферат

Краткое описание

В последней статье этого цикла ми вновь вернемся к вопросам программирования микро-ЭВМ. Из описания работы микро-ЭВМ следует, что практически все функции, которые она выполняет, полностью определяются программами, записанными в ее память. При этом могут быть использованы как готовые программы, разработанные кем-то ранее, так и программы, разработанные самостоятельно.

Файлы: 1 файл

Программное обеспечение Микро.docx

— 43.87 Кб (Скачать)

 
Программное обеспечение Микро-ЭВМ.

В последней  статье этого цикла ми вновь вернемся к вопросам программирования микро-ЭВМ. Из описания работы микро-ЭВМ следует, что практически все функции, которые она выполняет, полностью  определяются программами, записанными  в ее память. При этом могут быть использованы как готовые программы, разработанные кем-то ранее, так  и программы, разработанные самостоятельно.

Набор различных  программ, предназначенный для микро-ЭВМ (впрочем. как и для всех других) определенного типа, принято называть программным обеспечением. Программы, разработанные и используемые для специальных целей, например программы, реализующие функции каких-либо устройств, называют целевыми или прикладными программами. Разработка таких программ требует наличия в микро-ЭВМ специальных вспомогательных программ - системного программного обеспечения. Системное программное обеспечение необходимо также и в микро-ЭВМ универсального назначения, т. с. таких, которые предназначены дня выполнения самого разнообразного класса программ (программ для вычислений, обработки и редактирования текстов, игровых программ и т. д,), вводимых в ее память с внешнего накопителя. в нашем случае с магнитной лепты.

Простейшие функции  системного программного обеспечения  присущи управляющей программе  МОНИТОР, предназначенной для описываемой  микро-ЭВМ. В нее включены подпрограммы управлением дисплеем и модулем сопряжения с кассетным магнитофоном. С помощью мониторА вы сможете вводить ввод программы с клавиатуры дисплея или ленты магнитофона в память микро-ЭВМ, запускать их в работу, при необходимости видоизменять и вновь записывать на магнитную ленту. Однако в основном МОНИТОР предназначен для отладки программ в машинных кодах. Как при отладке какого-либо устройства, так и при отладке программ необходима проверка соответствия их работы поставленной задаче. Опыт показывает, что даже профессиональные программисты при написании программ неминуемо делают ошибки, которые, к сожалению. обнаруживаются и могут быть исправлены только лишь при отладке. Причин появления ошибок в программах множество - от непонимания действия отдельных команд и неправильной настройки стека (такие ошибки характерны в основном для начинающих) до неверно составленного алгоритма. Пример отладки программы мы разберем после подробного описания возможностей МОНИТОРа.

МОНИТОР нашей микро-ЭВМ занимает в ПЗУ объем 2 Кбайт (с адреса F800H по FFFFH). Для работы МОНИТОРА необходимо также небольшое количество ячеек ОЗУ: для стека и хранения промежуточных результатов и данных. Адреса этой области памяти (рабочей области МОНИТОРа) - с F000Н по F7FFH. В табл.1 приведены коды МОНИТОРа, а здесь текст на ассемблере. Исходный текст на ассемблере и в формате Intel Hex, для моей модификации компьютера.

При запуске  МОНИТОРа с начального адреса F800H происходит настройка указателя стека, занесение начальных значений в рабочую область ОЗУ и настройка ППА, обслуживающего клавиатуру. После этого МОНИТОР производит "очистку" содержимого ОЗУ страницы и ОЗУ курсора дисплейного модуля, так как там при включении питания устанавливается произвольная информация. Далее на экран выводится следующее сообщение: *МИКРО/80* MONITOR.

Появление на экране угловой скобки говорит оператору  о том, что он может набрать  на клавиатуре какую-либо директиву (команду) из перечисленных в табл.2.

Все директивы  МОНИТОРа задают одной заглавной латинской буквой, но могут содержать дополнительно до трех параметров. Параметры записывают в виде шестнадцатиричных чисел или названия внутреннего регистра микропроцессора. Их набирают непосредственно после директивы и отделяют друг от друга запятыми. Символ "Н" после шестнадцатиричных чисел опускают, можно также опускать и незначащие нули, в левых разрядах чисел. При наборе директив с параметрами нельзя вставлять символ "пробел" ни между директивой и параметрами, ни между отдельными параметрами. Символом окончания ввода директивы или директивы с параметрами является символ "ВК".

Таблица2.

Директива Параметры Символ окончания  ввода НАЗНАЧЕНИЕ
РАБОТА  С ПАМЯТЬЮ
D ADR1, ADR2 ВК Просмотр содержимого  области памяти в шестнадцатиричном виде
L ADR1, ADR2 ВК Просмотр содержимого  области памяти в символьном виде
Q ADR1, ADR2 ВК Тестирование  области памяти
F ADR1, ADR2, D8 ВК Запись байта D8 во все ячейки области памяти
C ADR1, ADR2, ADR1’ ВК Сравнение содержимого  двух областей памяти
T ADR1, ADR2, ADR1’ ВК Пересылка содержимого  одной области в другую
S ADR1, ADR2, D8 ВК Поиск байта D8 в  области памяти
M ADR ВК Просмотр или  изменение содержимого ячейки (ячеек) памяти
РАБОТА  С МАГНИТОФОНОМ
O ADR1, ADR2 ВК Вывод содержимого  области памяти на магнитную ленту
V   ВК Сравнение информации на магнитной ленте с содержимым области памяти
I   ВК Ввод информации с магнитной ленты
ЗАПУСК  И ОТЛАДКА ПРОГРАММ
J ADR BK Запуск программы  с заданного адреса
X   BK Просмотр содержимого  внутренних регистров
X R Пробел Изменение содержимого  внутренних регистров
B ADR BK Задание адреса останова при отладке
G ADR BK Запуск программы  в отладочном режиме
P ADR1, ADR2, D8 BK Подготовка  к запуску циклически работающей программы
START* ADR BK Задание адреса начала работы циклической программы
DIR.-* Директива(необязательно) BK Запуск программы  работающей в циклическом режиме
СПРАВОЧНЫЕ  ДИРЕКТИВЫ
H D16, D16 BK Вывод на экран  суммы и разности заданных шестнадцатиричных чисел
A Символ BK Вывод кола символа  на экран
K   BK Вывод символа  с клавиатуры на экран (окончание  режима УС-А)

      * - сообщения  монитора в ответ на директиву  Р. В директиве Р параметры ADR1, ADR2, D8 соответственно определяет первый адрес останова, второй адрес останова, и числа проходов через второй адрес останова.

– обозначение одного из внутренних регистров микропроцессора : A,B,C,D,E,F,H,L,S.

ОБОЗНАЧЕНИЯ

    D16 - четырехразрядное шестнадцатиричное число  
    D8 - двухразрядное шестнадцатиричное число  
    ADR1 - четырехразрядный шестнадцатиричный адрес начала области памяти 
    ADR2 - четырехразрядный шестнадцатиричный адрес конца области памяти 
    ADR1’ - четырехразрядный шестнадцатиричный адрес начала второй области памяти 
    ADR - четырехразрядный шестнадцатиричный адрес ячейки памяти.

Если директива  введена верно, т. е. соблюдены все  оговоренные выше условия. задано нужное количество параметров, и сами они заданы правильно. то МОНИТОР выполняет ее, если нет - на экране дисплея высвечивается знак "?" и вновь угловая скобка, "приглашающая" оператора повторить набор директивы. При наборе директивы оператор имеет возможность исправить один или несколько неверно набранных символов: для этого нужно сдвинуть курсор назад по строке (клавиша "¬") и повторить набор символов.

Теперь рассмотрим подробно назначение директив МОНИТОРа.

Директивы работы с памятью.

Директива "D" позволяет просмотреть на экране дисплея содержимое области памяти, выдаваемое в виде двухразрядных шестнадцатиричных чисел. представленных в форме таблицы (такой, например, как табл.1). После заполнения последней строки вся предыдущая информация с экрана стирается, и дальнейший ее вывод продолжается вновь с первой строки. Приостановить вывод информации на экран можно в любой момент, нажав произвольную клавишу на клавиатуре дисплея. После того, как клавиша будет отпущена, вывод информации продолжится. Старшие и младшие адреса области памяти задают двумя параметрами ADR1 и ADR2 соответственно,

По директиве "L" на экран дисплея выводится таблица, похожая на ту, что формируется по директиве "D". Отличие состоит в том, что вместо шестнадцатиричных чисел на экран выводятся алфавитно-цифровые символы, коды которых соответствуют содержимому ячеек памяти. Если в ячейке хранится код, не соответствующий ни одному из символов (таблица кодов символов приведена в статье "Радио" № 8, 1983 г.), то в данной позиции таблицы будет отображаться символ (.) - "точка".

Директива "М" позволяет просматривать и при необходимости изменять содержимое одной или нескольких ячеек памяти. После набора директивы и нажатия на клавишу "ВК" на экран дисплея будет выведено двухразрядное , шестнадцатиричное число - содержимое ячейки памяти по адресу ADR, а курсор устанавливается справа от него. Оператор может набрать новое значение, которое после нажатия на клавишу "пробел" будет занесено в ячейку, а на экран дисплея будут выведены адрес следующей ячейки памяти и ее содержимое. Оператор может изменить содержимое и этой ячейки или же оставить его без изменения и перейти к очередной ячейке, еще раз нажав на клавишу "пробел". Если оператору больше не нужны "услуги" этой директивы, он должен нажать на клавишу "ВК", после чего на экране появится сообщение МОНИТОРа о готовности к приему новых директив.

Директива "F" позволяет во все ячейки заданной области памяти записать одинаковые коды, значение которых равно D8.

С помощью директивы "Т" можно переслать (скопировать) содержимое из одной области памяти в другую, начальный адрес которой задают параметром ADR1'.

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

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

Для тестирования оперативной памяти предусмотрена  специальная директива "Q", параметры которой определяют начальный и конечный адреса проверяемой области памяти. По окончании работы теста содержимое ячеек проверяемой области памяти не изменяется. В случае обнаружения ошибки на экране дисплея высветятся адрес неисправной ячейки, ее содержимое и эталонный байт. который должен был находиться в этой ячейке, если бы она была исправна. Этот тест предназначен только лишь дня быстрой предварительной проверки работоспособности ОЗУ и не позволяет обнаруживать все виды ошибок.

ДИРЕКТИВЫ ВВОДА-ВЫВОДА ИНФОРМАЦИИ.

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

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

      00Н 
      00Н 256 байт 00Н (начальный пропуск),  
      .....  
      00Н 
      Е6Н - байт синхронизации,  
      ADR1(Mл) - младший байт начального адреса. 
      ADR1(Cт) - старший байт начального адреса, 
      АDR2(Мл) - младший байт конечного адреса, 
      ADR2(Cт) - старший байт конечного адреса области памяти и далее информационные байты, число которых зависит от размера заданной области памяти.

После набора директивы  включают магнитофон в режим записи и пускают лентопротяжный механизм. После нажатия на клавишу "ВК" дисплея начнется запись информации на магнитную ленту.

Для того чтобы  используемая нами скорость записи (1500бит/с) могла быть установлена независимо от тактовой частоты микропроцессора, предусмотрена возможность подстройки длительности временной задержки в  подпрограмме обслуживания магнитофона  заданием значения константы, помещаемой в ОЗУ. Для неё отведена ячейка памяти с адресом F75DH. Таким образом, перед началом операции записи информации на магнитофон в эту ячейку с помощью директивы "М" МОНИТОРА необходимо занести соответствующую константу, десятичное значение которой рассчитывают по формуле:

      Константа=40*Fтакт/2  
      где Fтакт - в МГц,  
      40 - десятичное число.

Перед записью  в память это значение необходимо перевести в шестнадцатеричную  форму.

Директива ввода "I" инициирует ввод данных с магнитной ленты в ОЗУ микро-ЭВМ. Данные на ленте должны быть записаны и указанном выше формате. Директива не содержит параметров, так как значения адресов зоны памяти, в которые будет произведена запись, считываются с лепты. Если вся запись считана верно, то по окончании ввода на экране высвечиваются в шестнадцатиричном виде значения начального и конечного адресов области памяти, в которую были записаны информация, считанная с ленты, и сообщение о готовности монитора. Признаком того, что при считывании были обнаружены ошибки, может служить то обстоятельство, что при окончании записи на ленте (о чем можно судить на слух) на экране дисплея не появилось сообщение о готовности монитора к выполнению следующей директивы. Константа для временной задержки при считывании также вынесена в ОЗУ. Перед началом операции чтения в ячейку F75CH необходимо поместить константу, значение которой рассчитывается так же, как к для записи. Эта константа должна быть в полтора раза больше константы записи.

Информация о работе Программное Обеспечение Микро-Эвм