ГОСУДАРСТВЕННЫЙ КОМИТЕТ РФ ПО НАУКЕ И ВЫСШЕМУ ОБРАЗОВАНИЮ МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ ИНСТИТУТ ЭЛЕКТРОНИКИ И МАТЕМАТИКИ (ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ) Кафедра "Вычислительная техника" МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ N 1 "ОЗНАКОМЛЕНИЕ С ТИПОВОЙ МПС И ОТЛАДКА ПРОСТЕЙШИХ ПРОГРАММ" МОСКВА 1995 - 2 - Цель работы: ознакомление со структурой микропроцессор- ной системы органами управления и режимами работы. Исследова- ние выполнения отдельных команд и простых программ с исполь- зованием различных методов адресации; запись программ в па- мять. 1. Краткие сведения из теории. Универсальная микропроцессорная система предназначена для знакомства с особенностями построения микро-ЭВМ на мик- ропроцессоре КР580ВМ80А с фиксированным набором команд и ис- пользцется для исследования методов программирования и работы БИС, входящих в микропроцессорный комплект, а также как уп- равляющая ЭВМ при создании и исследовании работы систем уп- равления с различными объектами. 1.1. Структурная схема микропроцессорной системы. МПС состоит из следующих основных устройств: -блок питания; -блок управления, осуществляющий управление МПС; - устройство отображения информации (УОИ); - клавиатура; - пульт портов (ПП); - комплект проблемных сред. Структурная схема МПС представлена на рис. 1 ┌─────────────┐ ┌────────────┐ │ ├────┬─────────┐ блок │ │ блок питания│ │ ┌─────┐ управления │ └──┬──────────┘ │ │ └──┬─┬─────┬─┘ │ ┌─────────┼───┘ │ │ │ │ │ │ ┌───────┴─┴──┐ ┌┴──────────┐ ┌──┴─────┴────┐ │ │клавиатура │ │устройство │ │пульт │ │ └─────┬──────┘ │отображения│ │портов │ │ ├────────┤информации │ └──┬────┬─────┘ │ │ └───────────┘ │ │ ├──────────┘ │ │ │ ┌──┴────┴─────┐ │ │ объект │ │ │ управления ├────┘ └─────────────┘ Рис. 1 Блок управления, осуществляющий управление работой МПС, занимает конструктивно 7 ТЭЗ: -интерфейс среды -системный контроллер -ПЗУ -ОЗУ -устройство управления памятью -процессор 1.2. Запись программ в ОЗУ. - 3 - Текст программы записывается в последовательных ячейках памяти. Рассмотрим простейшшую программу (1.1), которая изв- лекает число из ячейки по адресу 4В00, инвертирует его и за- писывает результат в адрес памяти 4В01. Программа 1.1 Мнемокод Комментарий LDA 4В00 Получить число из адреса 4В00 CMA Инвертировать чиcло STA 4В01 Записать его по адресу 4В01 При записи программы все числа представляются в 16-рич- ной системе счисления. Для записи программы в память МПС мо- гут быть одно-, двух- лии трехбайтные и занимают соответст- венно один, два или три байта. Программа 1.1 Размещение по адресам памяти. Адрес Число Комментарий 4800 3А Код команды LDA 4801 00 Младший байт адреса 4802 4В Старший байт адреса 4803 2F Код команды CMA 4804 32 Код команды STA 4805 01 Младший байт адреса 4806 4B Старший байт адреса 4807 CF Код команды RST1 В данной пргграмме используется прямой способ адресации. Рассмотрим программу, аналогичную программе 1.1, с использо- ванием косвенного способа адресации Программа (1.2). Адрес Машинный код Мнемокод Комментарий 4800 21 00 4В LXI H,4B00 Занесение в пару рег HL адреса 4В00 4803 7E MOV A,M Пересылка числа из памяти по адресу, указанному в HL, в накопитель 4804 2F CMA Инвертирование 4805 23 INX H Увеличение на 1 содержимого HL 4806 77 MOV M,A Пересылка числа из накопителя в память по адресу, указанному в HL 4807 CF RST1 Прервать выполнение 2. Задания для домашней подготовки. 2.1. Ознакомиться с языком программирования и структу- рой команд МП КР580ВМ80А. 2.2. Изучите методы программирования на языке Ассемблера и в машинных кодах для МПКР580ВМ80А. - 4 - 2.3. Рассмотрите правила выполнения команд INR A(3C), CMP A(BF), DAA(27). 2.4. Рассмотрите результат выполнения программы 1.1 при записи по адресу 4В03 команд, приведенных в п.2.3.. заджания. Результаты выполнения программы при различных командах, запи- санных в программе 1.1. по адресу 4803 занести в таблицу 1.1. ──────────────────────┬────────────────┬──────────┐ Число, записанное │ Команда, зап. │ Признаки │ по адресу 4В00 │ 4В01 │ по адресу 4803 │ S Z A P C│ ───────────────┴──────┴────────────────┴──────────┘ 2.5. Видоизмените и запишите программу 1.2 так, чтобы при ее выполнении исследуемое число первоначально записыва- лось по адресу 4В00. 2.6. Разработать программы: 1) Увеличения на 5 числа, записанного по адресу 4В00, и записи результата по адресу 4В01 (программа 1.3) 2) Сложение числе, записанных по адресам 4В00 и 4ВФ0 и записи результата по адресу 4В04 (программа 1.4) 3) Сравнения чисел по адресам 4В00 и 4В01 и записи боль- шего из них в регистр В (программа 1.5). 3. Методика работы в среде интегрированного отладчика 3.1. Введение. В процессе проектирования микропроцессорных средств очень часто возникает ситуация, когда разработчик вынужден проектировать программное обеспечение к проектируемой систе- ме, не имея еще аппаратуры, на которой оно будет функцитниро- вать. Одним из возможных выходов из этого затруднительного положения является использование кросс-систем [1]. Колсс-сис- тема - комплекс инструментальных средств, позволяющих отлажи- вать и исполнять пргграммы, написанные в одной системе косанд на машинах с другой системой команд. Далее описывается интег- рированный отладчик программ на языке Ассемблера для микроп- роцессоров серии К580(Intel 8080, 8085), реализованный на ПЭВМ IBM PC. 3.2. Состав и функции интегрированного отлажчика (ИО). Интегрированный отладчик объединяет следующие программ- ные средства: - ассемблер; - загрузчик; - эмулятор команд; - дизассемблер; - сервисное ПО. Ассемблер - системная программа, осуществляющая перевод программ, записанных на языке Ассемблера в форму, пригодную для исполнения. Загрузчик - системная программа, которая обеспечивает правильную настройку взаимодействующих программ и загрузку полученной программы в память для ее исполнения. Эмулятор - программа, моделирующая исполнение команд микропроцессора К580 в систем команд IBM PC. Дизассемблер - прjuрамма, выполняющая функции олратные Ассемблеру, то есть осуществляющая перевод машинных кодов в символическую форму. - 5 - Сервисные процедуры обеспечивают интеграцию пакета ука- занных выше программ, а также визуализацию результатов выпол- нения программы пользователя. 3.3. Подготовка к работе. Подготовка к работе осуществляется стандартным в MS DOS способом [2]. Для этого необходимо выполнить следующие дейст- вия: -войти в рабочую библиотеку; - создать фацл для хранения программы, если он еще не существует; - запустить на выполнение программу ER.EXE. Состав рабочей библиотеки приведен в ПРИЛОЖЕНИИ 1. 4. Работа в интегрированном отладчике. 4.2. Поле экрана ИО. После того, как на выполнение запущена программа ER.EXE, поле экрана выглядит следующим образом: ┌────────────────────────────────────────────────┐ │ ┌──────┐ │ │Файл подготовка выполнение окно │объект│ │ │ └──────┘ │ │ │ │ ┌───────────────────────────────────────────┐ │ │ │ о к н о р е г и с т р о в │ │ │ └───────────────────────────────────────────┘ │ │ │ │ ┌────────────────┐ │ │ │ о к н о │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ к о м а н д │ │ │ │ │ │ │ │ │ │ │ └────────────────┘ │ │ │ │ ┌─────┬─────────────────┬───────────────────┐ │ │ │п а │ о к н о │ о к н о │ │ │ │о д │ п а м я т и │ п а м я т и │ │ │ │л р │ Н Е Х │ C H A R │ │ │ │е е │ │ │ │ │ │ с │ │ │ │ │ │ а │ │ │ │ │ └─────┴─────────────────┴───────────────────┘ │ │ │ └────────────────────────────────────────────────┘ Верхний ряд надписей: файл, подготоука, выполнение, окно является основным меню (меню 1-го уровня) программы. Оно обеспечивает выполнение основных функций ИО. Окно регистров обеспечивает наблюдение за содержимым ре- гистра МП в ходе выполнения программы и его оперативное изме- нение. Окно команд предназначено для наблюденич за ходом выпол- нения программы пользователч и просмотра текста программы в символическом виде. - 6 - Окна памяти CHAR и HEX служат для наблюдения за содерди- мым памяти в символической и щестнадцатиричной формах соот- ветственно, а также для его изменения. 4.2. Система меню ИО. Во время работы ИО одна из функций меню 1-го уровня вы- делена либо инверсией (в черно-белой графике), либо цветом. Для выбора одной из функций необходимо выделить эту функцию при помощи клавиш управления курсором "влево", "вправо" и последующего нажатия клавиши ввода (ENTER). После этого под основным меню появляется окно, в котором приводится перечень функций меню 2-го уровня. Выбор функций меню 2-го уровня осу- ществляется клавишами управления курсором "вверх", "вниз" и ввод (ENTER). Функция меню 1-го уровня 'файл' имеет следубщие дополни- тельные функции: - редактировать; - ассемблировать; - загрузить; - листинг. Эти функции реализуют операции над файлами (см. ниже). Ходом выполнения программы можно управлять из меню 1-го уровня "Выполнить". Функции меню 2-го уровня здесь: "1 ко- манда", "Несколько команд", "Все". Наконец, функции меню 1-го уровня "окно" предназначена для перевода к просмотру или коррекции содержимого окон ре- гистров, команд, памяти. 4.3. Работа с файлами. При выборе одной из функций основного меню "файл" в центре экрана появляется файловое окно, в котором в алфавит- ном порядке перечисляются файлы, находящиеся в рабочей библи- отеке и удовлетворяющие определенным требованиям. Выбор файла осуществляется так же, как и выбор функций меню 2-го уровня. Всего в окне умещается 10 имен файлов. Если необходимо выб- рать файл, имя которого не попало в окно, необходимо подвести указатель к последнему (сверху) имени файла. При этом все ра- нее выведенные в окно имена файлов передвинутся вверх на одно место, а на освободившемся появится новое имя. Аналогичным образом можно вернуться назад. Функция "Редактировать" обрабатывает файлы типа *.asm. (Вместо симовла * подставляется уникальное имя файла). После того, как нужеый файл выбран, вызывается редактор "Norton editor". Дальнейшая работа с файлом осуществляется средствами этого редактора. После выхода на редактора изображение восс- танавливается, и можно продолжать работу в ИО. Функция "ассемблировать" предназначена для ассемблирова- ния текста в файлах типа *.asm. Выбранный файл обрабатывается ассемблером и загрузчиком. Результатом рабjты ассемблера и занрузчика являются 3 файла с тем же именеи и с суффиксами .obj, .exe, .lst - объектный выполняемый и листинга соот- ветственно. Если при ассемблировании были обнаружены ошибки, объектный и выполняемый файлы не создаются. ПРИМЕЧАНИЕ. В ИО не предусмотрено связывание нескольких файлов раздельно оттранслированных программ. Если требуется просмотреть результаты трансляции, можно воспользоваться функцией "Листинг" ИО. После выбора соот- ветствующего фfйла типа .LST осуществляется передача управле- ния редактору "Norton editor". Следует помнить, что любые из- - 7 - менения в файле листинга не отражаются на исходном тексте программы. Если в тексте программы ошибок не содержится, после ас- семблирования ее можно загрузить, воспользовавшись функцией ИО "Загрузить". Эта же функция может быть вызвана из основно- го меню "Подготовка". 4.4. Выполнение программы. Ходом выполнения программы можно управлять двумя способа ми: из меню 1-го уровня "выполнение" как описано выше и функ- циональными клавишами F7,F8,F9, соответствующим функциям меню 2-го уровня функции "выполнение". При выборе любой из функций меню 2-го уровня функции "выполнеyие" или при нажатии клавиш F7, F8, F9 программа выполняется, начиная с команды, выделен- ноц в окне программ. После окончания выполнения заданного количества команд в окнах регистров, памяти, команд фиксируются изменения, прои- шедшие в результате выполнения. Выполнение прерывается в следующих случаях: - при достижении команды останова HLT; - если в группе выполняемых команд встречена команда ввода/вывода (IN ,OUT). После этого в центре экрана появляется информационное окно, где пояснятется причина прекращения выполнения програм- мы. Например: ┌───────────────────────┐ │ вывод из порта # 14 │ │ │ │ Выведено: OA │ │ │ │ Нажмите ENTER │ └───────────────────────┘ Для продолжения работы необходимо нажать клавишу ENTER. В случае команды IN следует перед этим ввести данные в шест- надцатиричном виде. Если этого не сделать, то после ввода со- держимое аккумулятора не изменится. Если выполнение прервано на команде OUT, в информационном окне появится надпись : "Вы- ведено: <число, выврлимое из порта>" Функциональными клавишами F7, F8, F9 можно пользоваться в любом режиме работы ИО, кроме тех случаев, когда выполняют- ся фугкции меню 2-го уровня (реально это ограничивает возмож- ность выполнения программы в режимах просмотра содердимого одного из окон). 4.5. Коррекция содержимого регистров. Для изменения содердимого регистров необходимо восполь- зоваться функцией меню 1-го уровня "окно" и выбрать затем подменю "регистры". После этого курсор в виде квадрата, поя- вившийся в окне регистров при помощи клавиш управления курсо- ром подводится к нужному регистру. Необходимые изменения осу- ществляются обычным образом в окне курсора. Выход из окна - оп нажатию клавиши ESC 4.6. Просмотр содержимого окна команд. (Функция "окно", подменю "команды"). Просмотр осуществляется при помощи клавиш управления курсором "вверх", "вниз", а также PgUp, PgDn. Выход из окна - по нажатию клавищи ESC. Перед выходом у - 8 - поллзователя запрашивается, желает ли он вернуться к старому состоянию окна команд. При согласии в окне команд восстанав- ливается старое состояние (а в коне регистров также старое состояние регистра РС). В противном случае изменения в окне фиксируются, и выполнение программы можно продолжить с нового места, т.е. с той команды, на которой стоит указатель окна команд. 4.7. Коррекция содержимого памяти. (Функция "окно", подменю "память HEX" или "память CHAR"). Для изменения содердимого памяти необходимо в поле адре- са установить адрес нужного участка памяти или передвинуться к нему при помощи клавиш управления курсором "вверх", "вниз" и PgUp, PgDn, подвести курсор к нужной ячейке и исправить его содержимое. ЗАМЕЧАНИЕ. При исправлении содержимого памяти, котрое является еомандами, для корректной работы ИО необходимо, что- бы адрес ячейки, содержимое которой меняется, не входил в ди- апазон адресов окна команл. Выход из режима - нажатие клавиши ESC. 4.8. Функция меню "объект" предназначена для загрузки моделей простых объектов для управления или из программ, на- писанных пользователем. ПРИЛОЖЕНИЕ 1. Состав рабочей библиотеки: - ассемблер X8085.EXE; - загрузчик LINK.EXE; - ER.EXE; - редактор NE.COM; - графический драйвер, соответствующий модели ПЭВМ (HERC.RGI, EGAVGA.BGI и т.д.). 5. Задания к лабораторной работе. Задание 1. Исследовать программу 1.1 Ввести программу 1.1 в память МПС. Записать по адресу 4В00Н исследуемое число. Осуществить пуск программы с адреса 4В00Н в режиме отладка. Исследовать процесс выполнения прог- раммы по командам. После выполнения каждой команды анализиро- вать содержимое всех программно-доступных регистров МП. Заме- няя в программе команду CMP на INR A, ADD A, ANA A, ORA A, CMP A,DAA, исследовать результат выполнения указанных команд по числу, записанному по адресу 4В01Н. Проверить табоицу 1.1, заполненную при выполнении домашнего задания. Задание 2. Исследовать программу 1.2 ввести программу 1.2 в память МПС. Записать по адресу 4В00Н исследуемое число. Осуществить пуск программы с адреса 4000Н в режиме исполне- ние. Проверить результат выполнения программы 1.2, позволяю- щей первоначально записывать исследуемое число по адресу 4В00Н. Задание 3. Исследовать программу 1.3. Ввести программу 1.3, разработанную при домашней подготовке в память МПС. Осу- ществить пуск программы в режиме исполнение и проверить ре- зультат ее выполнения по числу, записанному по адресу 4В01Н при числах 05, FE, записанных по адресу 4В00Н. Задание 4. Исследовать программу 1.4. Ввести программу 1.4, разработанную при домашней подготовке в память МПС. Про- верить результат выполнения программы по числу, записанному по адресам 4В00Н и 4В01, последовательно записывая по адре- - 9 - сам 4В00Н и 4В01 соответственно числа 0ВР, В0Н, FEH, B5H и осуществляя пуск программы. Задание 5. Исследовать программу 1.5. Ввести программу 1.5, разработанную при домашней подготовке в память МПС. За- писать по адресам 4В00Н, 4В01Н исследуемые числа. Осуществить пуск программы, проверить результат ее выполнения по числу записанному в регистре В. Отчет должен содержать: - структурную схему МПС; - структурную схему МП КР580ВМ80А; - заполненную таблтцу 1.1 для случаев выполнения прог- раммы 1.1 при исполнении команд представленных в п.2.3 зада- ния для домашней подготовки; - видоизмененную программу 1.2 записанную в машинных кодах; - разработанные в процессе домашней подготовки программы 1.3, 1.4, 1.5. 6. Вопросы для самопроверки 1. За сколько машинных тактов выполняется каждая команда в программах 1.1, 1.2 ? 2. Укажите различия в способах адресации МП КР580ВМ80А. 3. Укажите все возможные способы адресации. 4. При выполнении каких команд, приведенных в п.2.3 для длмашней подготовки, задействуются разряды регистра признаков ? 5. Сформулируйте правила выполнения команд, приведенные в п.2.3. 6. Структура МПС. 7. Структура МП КР580ВМ80А. 7. Библиографический список 1. А.Г.Алексеенко, А.А. Галицын, А.Д.Иванников. Проектирование радиоэлектронной аппаратуры на микроп- роцессорах. М.,Радио и связь.-1984 г. 2. А.Б. Брябрин. Программное обеспечение персональных ЭВМ.М.Наука.-1988 г. Составители методических указаний к лабораторной работе N 1 - доцент,к.т.н. Аксенов Е.И. - доцент,к.т.н. Ерохин В.В.