ГОСУДАРСТВЕННЫЙ КОМИТЕТ РОССИЙСКОЙ ФЕДЕРАЦИИ ПО ВЫСШЕМУ ОБРАЗОВАНИЮ УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ...
10 downloads
167 Views
222KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
ГОСУДАРСТВЕННЫЙ КОМИТЕТ РОССИЙСКОЙ ФЕДЕРАЦИИ ПО ВЫСШЕМУ ОБРАЗОВАНИЮ УЛЬЯНОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
РАБОТА В СРЕДЕ УЧЕБНОЙ СИСТЕМЫ МОДЕЛИРОВАНИЯ МИКРОПРОЦЕССОРА Методические указания
Составители: С.В.Скворцов, В.Н.Негода
Ульяновск 1996
УДК 681.3(076) Работа в среде учебной системы моделирования микропроцессора: Метод. указ. / Сост. С.В.Скворцов, В.Н.Негода. - Ульяновск: УлГТУ, 1996. - 32 с. Настоящие методические указания написаны в соответствии с рабочей программой дисциплины "Микропроцессорные системы" для студентов специальности 2201 "ЭВМ, комплексы, системы и сети" и направления 005528 "Информатика и вычислительная техника". Рассмотрены функции и команды программ моделирования учебной системы моделирования, а также основы методики создания и отладки программ в ее среде. Приведенный материал может быть использован студентами ФИСТ и РТФ при проведении лабораторных работ по дисциплинам, связанным с изучением микропроцессорной техники, при выполнении заданий по НИРС, УИРС и при дипломном проектировании. Подготовлены на кафедре "Вычислительная техника". Ил. 2, библиогр.: 6 назв. Рецензент: Одобрено учебно-методической комиссией ФИСТ
( Ульяновский государственный технический университет, 1996.
ОГЛАВЛЕНИЕ ВВЕДЕНИЕ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
1. СТРУКТУРА, ФУНКЦИИ И КОНФИГУРИРОВАНИЕ СИСТЕМЫ МОДЕЛИРОВАНИЯ . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.1. Функции системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.2. Структура системы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.3. Запуск и конфигурирование . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2. КОМАНДЫ И ДАННЫЕ ПРОГРАММ СИСТЕМЫ . . . . . . . . . . 9 2.1. Экран и команды управления программы M580 . . . . . . . . . . . . . . . 9 2.2. Входные и выходные данные M580 . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3. Кросс-ассемблер AS80 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3. МЕТОДИКА СОЗДАНИЯ И ОТЛАДКИ ПРОГРАММ . . . . . . . . 17 3.1. Создание текста ассемблер-программы . . . . . . . . . . . . . . . . . . . . . . . 17 3.2. Ассемблирование и загрузка программы . . . . . . . . . . . . . . . . . . . . . . 20 3.3. Отладка программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4. Пример программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 СПИСОК ЛИТЕРАТУРЫ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
ВВЕДЕНИЕ Учебная система моделирования микропроцессора M580, работа с которой описана в настоящих методических указаниях, предназначена для изучения архитектуры микропроцессора(МП) К580 (отечест-венный аналог МП I8080) и основ его программирования. Несмотря на то, что со времени разработки этого микропроцессора фирмой Intel прошло 22 года, актуальность знакомства с его архитектурой не пропала. Во-первых, до сих пор эксплуатируются и производятся средства автоматизации управления технологическими процессами на базе этого МП. Вовторых, многие современные МП и микроконтроллеры унаследовали основные архитектурные решения I8080. Ограниченность времени лабораторных занятий по дисциплинам, где изучаются основы микропроцессорной техники, заставляет проводить лабораторные исследования и разработку учебно-инженерных проектов только в рамках этих базовых решений. Кроме того, по МП I8080 и его аналогам имеется богатая учебно-методическая и научно-техническая литература. Именно поэтому в рабочих программах таких дисциплин значительное место занимают вопросы изучения данного МП. В некоторых учебных заведениях для изучения архитектуры МП K580 используются профессиональные системы моделирования, предназначенные для автоматизации инженерного проектирования микропроцессорных систем и обладающие более широкими функциональными возможностями, чем учебная система M580. M580 была разработана в УлГТУ 1989 г., когда промышленные системымоделирования I8080 для вузов еще не были достаточно доступны. Опыт эксплуатации М580 и промышленных систем показал, что для учебного процесса все же более приемлимым является именно учебная система. Упрощенный русско-язычный интерфейс и доступ к учебно-методической информации из среды системы значительно сокращают затраты времени на освоение инструментария, используемого для выполнения лабораторных работ. В методических указаниях рассматривается структура системы моделирования, набор ее команд и основы технологии создания и отладки программ. Предполагается, что пользователь знаком с принципами орга-низации персональных ЭВМ(ПЭВМ), совместимых с IBM PC XT/AT, и основными командами операционной системы MS DOS. Система М580 работает под управлением ОС MS DOS версии 3.0 и выше на ПЭВМ, совместимых с IBM PC XT или AT. Возможна работа без жесткого диска. По умолчанию программа использует альтернативную кодировку символов кириллицы и псевдографики, но имеется возможность настройки на кодировку ПЭВМ "ИСКРА" и "ПРАВЕЦ".
1. СТРУКТУРА, ФУНКЦИИ И КОНФИГУРИРОВАНИЕ СИСТЕМЫ МОДЕЛИРОВАНИЯ 1.1. ФУНКЦИИ СИСТЕМЫ Система моделирования М580 реализует следующие основных функции: 1. Настройка палитры для отображения различных полей данных экрана системы в заданных цветах. 2. Назначение шрифта для отображения кириллицы в выводимых на экран текстах. 3. Назначение редактора текста для создания и редактирования исходных модулей ассемблер-программ. 4. Вызов редактора текста. 5. Запуск кросс-ассемблера и асемблирование программы. 6. Загрузка объектного модуля в модель памяти МП. 7. Модификация объектов моделируемого МП(регистров, ячеек памяти, признаков результата, триггера разрешения прерываний) путем редактирования полей данных в экранном режиме. 8. Назначение точек и условий останова. 9. Пошаговое выполнение программы и выполнение групп команд до выполнения условий останова, назначаемых пользователем; 10. Инициирование требований прерываний. 11. Эмуляция сигнала сброса RESET и выполнение очистки содержимого объектов МП. 12. Эмуляция вывода на алфавитно-цифровой дисплей, семисигментный индикатор и ввода-вывода в порты общего назначения. 13. Сохранение текущего состояния модели и восстановление его в следующем сеансе работы с системой. 14. Дизассемблирование участков машинных программ. 15. Получение справочной информации по командам программы моделирования, командам МП К580, а также рекомендаций по порядку выполнения лабораторных работ и соответствующих индивидуальных заданий. 1.2. Структура системы Структура системы моделирования и ее связи с операционной средой представлены на рис. 1. Программные компоненты системы изображены в утолщенных рамках, файлы данных - в тонких рамках. Связь по данным представлена толстыми, а связь по управлению - тонкими стрелками.
Рис. 1. Структура системы моделирования Основной программой системы является программа моделирования микропроцессора, название которой совпадает с наименованием самой системы - M580. Данная программа выполняет практически все функции, перечисленные в п.1.1., кроме редактирования ассемблер-программы и ее ассемблирования. Для редактирования ассемблер-программ используется любой редактор текста, работающий под управлением MS DOS. Сформированный текстовый файл программы ассемблируется кроссассемблером AS80. Загрузочный модуль(файл типа ".SAV") помещается в модель памяти МП и может быть выполнен программой M580 в режиме трассировки или автоматически. Состояние отлаживаемых программ может быть сохранено в файлах типа ".SAV", с тем чтобы в следующем сеансе работы отладка могла быть продолжена с текущего состояния. 1.3. Запуск и конфигурирование Запуск программы моделирования микропроцессора производится набором ее имени (М580), либо без аргумента, либо с аргументом. Если программа запущена без аргумента, то любая команда, связанная с сохранением либо восстановлением состояния модели, с ассемблированием и загрузкой машинной программы будет требовать имени файла. Если же при запуске имеется арогумент, то он рассматривается как имя текущей моделируемой программы. Если это имя имеет расширение ".AS", то происходит вызов кросс-ассемблера и последующая загрузка результата ассемблирования (файл "*.LDA") в память модели. Если аргумент команды запуска программы М580 имеет расширение ".LDA", то происходит только загрузка из соответствующего файла. Если расширение равно ".SAV", то из соответствующего файла загружается состояние модели(поддержка межсеансовых переходов). В случае, когда в качестве аргумента используется имя без расширения, в начальной фазе работы программы последовательно ищутся файлы типа ".SAV", ".LDA", ".AS" с указанным именем и первый найденный файл используется так, как если бы был набран аргумент с соответствующим расширением . Например: М580 PETROV23.SAV - запуск с загрузкой состояния модели из файла PETROV23.SAV. М580 IVANOV4.LDA - запуск с загрузкой машинной программы, являющейся результатом ассемблирования из файла IVANOV4.LDA. М580 SIDOROV13.AS - запуск с вызовом кросс-ассемблера в на-чальной фазе работы и с последующей заг рузкой результата ассемблирования в па мять модели МП. М580 CONS - запуск с поиском одного из файлов: CONS.SAV, CONS.LDA, CONS.AS. Если какой либо из этих файлов найден в текущем каталоге, то происходит выполнение действий как при команде с аргументом, имеющим соответствующее расширение. М580 - запуск без установленного имени моделируемой программы.
Сразу после старта программа М580 проверяет наличие файла конфигурации M80.CFG. Если этот файл имеется, то из него читаются назначение ретактора текстов, подключаемого к системе, назначение кодировки для вывода кириллицы и раскраски полей экрана. Назначение имени подключаемого редактора задается в файле конфигурации строкой вида: ED80= Например: ED80=ME - назначение редактора Multi Edit, вызываемого по команде MS DOS "ME". Назначение кодировки кириллицы выполняется одной из двух директив: CRT=BAS - назначение базовой кодировки(ПЭВМ "Искра") CRT=MIK - назначение кодировки ПЭВМ "Правец" Если ни одной из этих директив в CFG-файле нет, то по умолчанию используется ALT-кодировка кириллицы. Раскраска полей экрана назначается строкой следующего формата: C80=:;:; . . . Используются следующие символные обозначения полей экрана: w - выделенное окно f - выделенное поле t - текст учебной инфоpмации b - разделители окон h - заголовки c - окно модели консоли i - окно семисегментного индикатоpа p - окно SIM/RIM и поpтов n - текст невыделенного окна, допускающего pедактиpование a - окно адpесов d - окно дизассемблеpа e - сообщение об ошибке r - сообщение или запpос l - стpока подсказки m - код маpкеpа Например: C80=w:70;f:47;t:70;b:3;h:3;c:3f;i:70;p:f;n:f;a:f;d:3f;e:8f;r:6;l:70;m:3fb1; Если файл конфигурации в текущей директории не найден, то программа проверяет, не назначены ли переменные ED80, CRT, C80 в окружении DOS. Т.е. пользователь может установить назначения, используя команду SET DOS. Например: SET ED80=TE - назначение редактора текста "TE.COM". Необходимо учесть, что если команда SET запускается из какой-либо оболочки(NORTON COMMANDER, VOLCOV COMMANDER и пр.), то соответствующая оболочка создает новое окружение DOS и после возврата в оболочку назначения будут утеряны.
2. КОМАНДЫ И ДАННЫЕ ПРОГРАММ СИСТЕМЫ 2.1. Экран и команды управления программы M580 После входа в программу, пользователь видит экран программы моделирования, внешний вид которого представлен на рис. 2. A
B C
D
E H
L
PC
SP
Время
CY AC S Z
P Регистры 00 00 00 00 00 00 00 0000 303f 0000000 0 0 0 0 0 Усл. останова 00 00 00 00 00 00 00 0000 0000 0000000 Прерыван: ЗАПР Адр Память Мнемокод 0 1 2 3 4 5 6 7 8 9 a b c d e f 0000: NOP 0000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0001: NOP 0010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0002: NOP 0020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0003: NOP 0030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0004: NOP 0040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0005: NOP 0050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0006: NOP 0060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0007: NOP 0070 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0008: NOP 0080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0009: NOP 0090 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000a: NOP 00a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000b: NOP 00b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 000c: NOP IN 00H, OUT 00H 9H AH
OUT 01H,02H,03H,04H
5H
6H 7H
8H
IN 00 00 00 00 00 00 OUT 00 00 00 00 00 00 (
(
(
(
F1,F2-помощь Tab-смена окна F6-пуск Enter-шаг F9-загрузка Alt/F10выход Рис. 2. Экран программы моделирования M580 На нижней строке экрана выводится информация о 6 основных командах. Пользуясь содержимым этой строки, пользователь может получить доступ к описанию всех команд системы моделирования (F1 помощь), команд микропроцессора (F2 - справка по К580), запустить моделируемую программу в автоматическом режиме (F6 - пуск), остановить эту программу (F8 - останов), выполнить одну команду моделируемой программы (Enter - шаг) и выйти из системы моделирования(Alt/F10 - выход). Экран разбит на 9 постоянных окон, в которых визуализируются:
1. Состояние регистров МП и условий останова по содержимому регитров (окно регистров). 2. Состояние счетчиков тактов и ограничение времени выполнения программы (окно времени). Число тактов измеряется относительно паспортных данных МП. Если, например, какая-то команда по справочным данным на М580 имеет время выполнения 4 машинных такта, то при выполнении этой команды в модели счетчик тактов увеличивается на 4. 3. Состояние признаков результата и триггера разрешения прерывания (окно флагов). 4. Состояние страницы памяти размером 192 байта (окно памяти). 5. Адреса первых ячеек строк окна памяти (окно адресов). 6. Мнемокод участка из 12 команд (окно дизассемблера). 7. Выводимые на консоли данные (окно консоли). 8. Выводимые на семисегментный индикатор данные (окно индикатора). 9. Вводимые/выводимые данные портов общего назначения (окно портов). 10. Сведения о минимально необходимых командах системы моделирования (строка-подсказка). Первые четыре окна могут выделяться фоном и цветом символов. Находясь в выделенном окне пользователь может редактировать данные в его полях и перемещаться по полям, пользуясь функциональной клавиатурой. Поскольку различные объекты этих окон имеют различные ограничения на множество допустимых значений, то для каждого типа объекта выполняется определенный контроль данных. Если символ не может участвовать в модификации поля данных, то он игнорируется программой. При редактировании хотя бы одного символа в поле счетчика команд или в поле окна памяти происходит дизассемблирование, что позволяет обучаемому постоянно следить за правильностью набора машинных команд. Чтобы обеспечить достаточно быстрое выполнение моделируемой программы микропроцессора, модификация полей данных во время автоматического выполнения (до условия останова, точки останова, прерывания, сигнала "сброс", команды "стоп" моделирующей системы, достижения лимита времени, либо выполнения заданного числа команд) дизассемблирование не выполняется. Кроме постоянных в программе используются всплывающие окна, которые чаще всего используется для запроса данных, сообщения пользователю и выдачи пользователю символьной и учебно-методической информации. Команды программы M580 запускаются с помощью функциональных клавиш. Дальнейшие действия программы М580 определяются тем, какую команду набирает пользователь. Ниже приводится полный список команд. 1. Информационно-справочные команды F1 - получить эту справку; F2 - вход в меню по командам микропроцессора; Аlt/F1 - получить порядок выполнения работы; Alt/F2 - получить задание на лабораторную работу;
Ctrl/F1 - получить учебно-методическую информацию по работе. 2. Команды общего управления Alt/F7 - установить имя программы, чтобы операции загрузки программы и сохранения/восстановления состояния модели выполнялись без запроса имени файла; Ctrl/F8 - вызвать редактор текста; F9 - восстановить состояние модели из файла, в который была запись в конце предыдущего сеанса работы с моделируемой программой; Alt/F9 - проассемблировать и загрузить программу в память модели; Ctrl/F9 - загрузить ранее проассемблированную программу; Ctrl/F10 - сохранение состояния модели в файле, чтобы продолжить отладку моделируемой программы в следующем сеансе работы на ПЭВМ; Alt/F10 - выход из системы моделирования; Еsc - oтмена любой команды системы моделирования, требующей диалога; клавиша н е д е й с т в у е т, если в ответ на запрос нажата любая другая клавиша; F10 - дизассемблирование фрагмента программы, обычно находящегося в стороне от отображенного в окне мнемокодов фрагмента. 3. Команды управления выполнением программы Enter - выполнить одну команду, которая адресуется счетчиком команд PC; F6 - выполнить до останова по заданным условиям, либо до достижения PC любой заданной точки останова; Alt/F6 - выполнить заданное число команд; все условия останова игнорируются; обеспечивается самое быстрое выполнение последовательности команд; Ctrl/F6 - то же, что и F6, но состояние регистров, таймера и признаков результата модифицируется на экране после каждой команды; Alt/F5 - задать условия останова по содержимому памяти в формате: ; F5 - задать точки останова в виде последовательности адресов; F7 - прерывание; команда имитирует сигнал требования прерывания; F8 - останов программы, запущенной по командам F6, Alt/F6, Ctrl/F6; F4 - сброс счетчика команд и запрет прерываний (имитация RESET); Alt/F4 - сброс счетчика тактов. 4. Команды редактирования полей данных Alt/F8 - загрузить массив кодов цифр семисегментного индикатора для ис пользования в программах преобразования внутреннего представ ления цифр в представление на индикаторе; F3 - сброс регистров и признаков результата;
Alt/F3 - сброс памяти и регистров; стрелки - перемещение курсора в окне; Tab - переход между окнами; PgUp, PgDn - листание страниц памяти; 0..1,a..f - замена шестнадцатиричной цифры, находящейся в позиции вы деленного поля данных, на которую указывает маркер; >0) ;----------------------------------------------------------------------------------------------bdel: mvi A, BS ; REPEAT WRITE('\b \b'); B := B - 1 UNTIL B = 0 lback: out 0 ; назад mvi A, ' ' ; затеpеть пpобелом out 0 mvi A, BS ; назад out 0 dcr B jnz lback
ret ;----------------------------------------------------------------------------------------------; Подпpогpамма ввода стpоки с эхо-печатью и отpаботкой забоя ; '\f','\n' игноpиpуются; '\r' - конец ввода ; HL - указатель буфеpа ; C - длина буфеpа ;----------------------------------------------------------------------------------------------getstr: dcr C ; 1 байт для завеpшающего нуля push D ; занять D для запоминания огpаничителя mov D, C gets: in 0 cpi CR ; конец ввода? jz fings ; да, финишиpовать ; Обpаботка забоя cpi BS ; забой? jnz ign mov A, C ; есть что забивать? cmp D jp gets ; нет, мы в начале буфеpа стpоки dcx H ; откат в буфеpе, inr C ; в счетчике, mvi B, 1 ; на call bdel ; экpане jmp gets ; символы свеpх буфеpа игноpиpуются ign: mov E, A mov A, C ora A mov A, E jz gets ; Обpаботка спец-символов ; пpоигноpиpовать FF и LF cpi FF jz gets cpi LF jz gets ; Эхо-печать символа и pазмещение в буфеpе out 0 mov M, A inx H dcr C jmp gets fings: mvi M, 0 pop D ret ;-----------------------------------------------------------------------------------------------; Подпpогpамма ввода десятичной цифpы в A ; Эхо-печать только пpи пpавильном вводе ;------------------------------------------------------------------------------------------------
; REPEAT READ(A) UNTIL (A>='0') AND (A