Министерство высшего и среднего специального образования Р С Ф С Р Ульяновский политехнический институт КРОСС-СРЕДСТВА М...
19 downloads
262 Views
274KB 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
Министерство высшего и среднего специального образования Р С Ф С Р Ульяновский политехнический институт КРОСС-СРЕДСТВА МИКРОПРОЦЕССОРНЫХ СИСТЕМ Методические указания для студентов специальности 0608(2201) по выполнению лабораторных работ Составители: С.В.Скворцов, И.А.Никищенков
Ульяновск 1990 УДК 681.3(076) Кросс-средства микропроцессорных систем: Методические указания для студентов специальности 0608 (2201) / Сост. С.В.Скворцов, И.А.Никищенков. -Ульяновск: УлПИ, 1990.-20 с. Настоящие методические указания написаны в соответствии с рабочей программой дисциплины "Микропроцессоры и микропроцессорные системы", установленной Советом УПИ для специальности 0608. Рассмотрены кросс-средства микропроцессорных систем:моделирующая программа и программа диз-ассемблера, а также приведены основные сведения по системе команд микропроцессора КР580. Приведенный материал может быть использован студентами РТФ при проведении лабораторных работ и заданий по НИРС, УИРС, при выполнении дипломного проектирования, а также может быть полезен слушателям ФПК. Подготовлены на кафедре "Вычислительная техника". Ил.2,табл. 1, библиогр.: 6 назв. Рецензент ст.науч.сотр. НИИ АП УЦМ
М.Ю.Кузьмин
Одобрено секцией методических пособий научно-методического совета института
С
Ульяновский политехнический институт, 1990
1. Лабораторная работа N 1.................................................................................................................... 4 1.1. Система команд МП КР580......................................................................................................... 4 1.2. Порядок выполнения работы ...................................................................................................... 6 1.3. Содержание отчета....................................................................................................................... 6 Контрольные вопросы. ....................................................................................................................... 6 2. Лабораторная работа N 2.................................................................................................................... 7 2.1. Принципы диз-ассемблирования и анализа объектных программ.......................................... 7 2.2. Порядок выполнения работы ...................................................................................................... 9 2.3. Содержание отчета....................................................................................................................... 9 Контрольные вопросы. ....................................................................................................................... 9 3. Лабораторная работа N 3.................................................................................................................. 10 3.1. Программная модель МП КР580 .............................................................................................. 10 3.2. Отладка программ в кросс-режиме. ......................................................................................... 12 3.3. Порядок выполнения работы .................................................................................................... 13 3.4. Содержание отчета..................................................................................................................... 13 Контрольные вопросы. ..................................................................................................................... 13 Список литературы ............................................................................................................................... 14
В данных методических указаниях содержится описание трех лабораторных работ, в ходе выполнения которых изучается система команд микропроцессора (МП) КР580, принципы организации кросспрограмм микропроцессорных систем, приобретаются навыки программирования на языке ассемблера МП КР580 и отладки программ в кросс-режиме. Для самоконтроля при подготовке к выполнению лабораторных работ в конце каждого раздела методических указаний приведены контрольные вопросы. Целью лабораторных работ является закрепление основных разделов дисциплины "Микропроцессоры и микропроцессорные системы". В процессе выполнения лабораторных работ студенты изучают систему команд МП КР580 и особенности использования различных классов команд, изучают принципы построения кросс-программного обеспечения микропроцессорных систем(МПС) на примере моделирующей программы и программы дизассемблера для МП КР580, получают навыки проектирования, анализа и отладки программ для МП КР580. МП КР580 является наиболее популярным из 8-разрядных МП и в настоящее время фактически признан стандартом этого класса МП. Простота структуры и системы команд, достаточно гибкая архитектура проектируемых на его основе МПС, широкий набор дополнительных МП БИС этого комплекта обеспечили ему широкий рынок сбыта. При проектировании МПС на основе указанного МП основную долю стоимости составляет разработка программного обеспечения (ПО). При этом важным фактором являются средства автоматизации разработки ПО. К числу таких программ относятся программы ассемблера, моделирования и дизассемблера. Если первые две из перечисленных являются стандартными компонентами любой системы программирования МПС, то программа дизассемблера получила свое распространение недавно. Процесс дизассемблирования представляет собой формирование программы на языке ассемблера по исходной объектной программе. Это может понадобиться для контроля текста при отладке программы, когда в процессе отладки сразу же вносятся изменения в исходную программу или если необходимо восстановить алгоритм по объектной программе без документации.
1. Лабораторная работа N 1 "Система команд микропроцессора КР580 и программирование на языке ассемблера" Цель работы: изучение системы команд МП КР580 и приобретение навыков программирования на языке ассемблера.
1.1. Система команд МП КР580 Команды МП КР580 имеют длину 1, 2 и 3 байта. В первом байте любой команды содержится код операции (КОП), который определяет выполняемые командой действия. По функциональному назначению можно выделить 5 основных групп команд: пересылки данных, арифметической и логической обработки информации, передачи управления, дополнительные. Для программиста доступны аккумулятор, внутренние регистры 16разрядные указатель стэка и счетчик команд. Все указанные программно-доступные регистры имеют мнемонические обозначения, используемые при записи команд на языке ассемблера: А - акккумулятор; B,C,D,E,H,L - регистры общего назначения(РОН); SP - указатель стэка; PC - счетчик команд. Регистры общего назначения могут использоваться парами для организации адресации в соответствующих командах при обращении к памяти. В этом случае регистровая пара BC, DE, HL записывается на языке ассемблера в поле операндов по первой букве - B, D, H. Команды арифметической и логической обработки информации устанавливают признаки результата(флаги условий) выполнения операции по содержимому аккумулятора. Все остальные (за исключением нескольких) не изменяют содержимого триггеров(флагов) условий. Имеются 5 флагов условий: CY - признак наличия переноса из старшего разряда аккумулятора, т.е. перенос из старшей тетрады А (соответственно CY=1 и CY=0); AC - признак наличия переноса из старшего разряда младшей тетрады А (полуперенос) - соответственно АС=1 и АС=0; Z - аккумулятор равен 0 (Z=1) или аккумулятор не равен 0 (Z=0); P - четность(Р=1) или нечетность(Р=0) числа в аккумуляторе; S значение старшего разряда аккумулятора. Этот признак используется, если программист работает с числами со знаком и в этом случае S=0 означает положительное число, а S=1 означает отрицательное число. Указанные значения флагов условий используются для организации передачи управления(ветвлений). На языке ассемблера мнемоника команд
условных переходов формируется добавлением к букве J (от слова Jump - переход) буквы или двух букв, определяющих условие: Z - переход, если А=0, т.е. Z=1; NZ - переход, если А#0, т.е. Z=0; C - переход, если CY=1, т.е. есть перенос; NC - переход, если CY=0, т.е. нет переноса; PE - переход, если P=1, т.е. четность в А; PO - переход, если P=0, т.е. нечетность в А; M - переход, если S=1, т.е. отрицательное число в А; Р - переход, если S=0, т.е. положительное число в А. Аналогичные сочетания букв используются для формирования мнемоник команд условного вызова подпрограммы С (Call - вызов) и условного возврата из подпрограммы R (Return - возврат). Примеры записи нескольких из рассмотренных команд: JMP A1 - безусловный переход по адресу А1; JNZ A2 - переход по адресу А2, если аккумулятор не равен 0; CM A3 - вызов подпрограммы по адресу А3, если старший разряд аккумулятора равен 1, т.е. в А отрицательное число; RP - возврат из подпрограммы, если в аккумуляторе положительное число. В таблице 1 приведены мнемоники всех команд МП КР580 и их кодировка в восьмиричной системе счисления. Здесь же указано поле операндов для каждой команды(если оно имеется). Функциональные действия команд, их длина, способы адресации и число тактов выполнения приведены в многочисленной литературе, например, в [1,2,3]. Все команды разбиты на группы по 8-ричному коду операции. В левом столбце для группы указаны две первые цифры кода операции, третья цифра - над каждой группой. Фигурные скобки означают, что информация относится к каждой из команд, охватываемых скобками. Для каждой из команд цифрами в кружке указывается условие установки флагов после выполнения операции: 1 - устанавливаются все пять флагов условий; 2 - устанавливаются все, кроме флага CY; 3 - устанавливаются все, причем AC и CY в 0; 4 - устанавливается только флаг CY. Отсутствие цифр означает, что флаги не устанавливаются, т.е. сохраняют свое значение, полученное от предыдущей операции. Прочерк означает, что данный код не используется в системе команд. В поле операндов информация представляет: А - аккумулятор; B,C,D,E,H,L - регистры общего назначения (для команд групп с кодами 0Х2 и 0Х3 - B, D, H это регистровые пары); М - косвенная адресация через регистровую пару HL; D8 - 8-битовые данные, находящиеся во втором байте команды; D16 - 16-битовые данные, находящиеся во втором и третьем байтах команды, причем D16=B3B2, где B2,B3 - это второй и третий байт команды, соответственно;
А16 - 16-битовый адрес, причем А16=В3В2; PORT - 8-битовый адрес внешнего устройства, находящийся во втором байте команды; PSW - слово состояния процессора со следующей структурой: D S
D Z
0
AC
0
P
1
CY
1.2. Порядок выполнения работы 1. Изучить систему команд МП КР580 и их запись на языке ассемблера. 2. Составить схему алгоритма заданной преподавателем задачи. 3. Записать текст программы на языке ассемблера в соответствии с полученной схемой алгоритма. 3. Произвести перевод программы в машинное представление с указанного преподавателем адреса памяти. 4. Подготовить тексты для проверки выполнения команд условных переходов и выполнить вручную прокрутку программы с указанием значений флагов условий. 5. Если программа выполняется неверно, то внести изменения и повторить пункты 4, 5, 6.
1.3. Содержание отчета 1. 2. 3. 4.
Титульный лист. Условия задачи. Схема алгоритма программы. Текст программы на языке ассемблера и результат ее перевода в машинный язык. 5. Тестовые примеры и результаты ручной прокрутки (трассировки) с указанием значений флагов условий.
Контрольные вопросы. 1. Какие команды позволяют записать содержимое аккумулятора в ОЗУ? 2. Какими командами можно изменить содержимое РОН и ячеек ОЗУ, т.е. записать информацию? 3. В чем различие между арифметическим и циклическим сдвигом? 4. Какими командами можно обнулить флаги условий CY и AC? 5. Чем отличается формат команд IN и OUT от формата команд LDA и STA? 6. Как оформить программу в виде подпрограммы? 7. Почему при переходе к различным подпрограммам необходимо сохранение флагов условий и состояний РОН МП? 8. Какими командами и способами можно проверить значение отдельных разрядов аккумулятора и РОН? 9. В какой команде используются значения флага АС?
2. Лабораторная работа N 2. "Дизассемблирование и анализ машинных программ" Цель работы:
изучение принципов дизассемблирования и анализа машинных программ, получение навыков работы с программой дизассемблера.
2.1. Принципы дизассемблирования и анализа объектных программ. Разработка программного обеспечения (ПО) МПС является одним из наиболее трудоемких этапов проектирования МПС. Именно поэтому до 80% стоимости разрабатываемой МПС составляет проектирование и отладка программ. Для автоматизации разработки ПО могут быть использованы разнообразные средства, начиная с простейших автономных отладчиков и кончая специальными многозадачными комплексами разработки и отладки. Все средства автоматизации проектирования можно разделить на два большие класса: резидентные и кроссовые(межмашинные). Резидентными средствами называются программы, которые используются для разработки программ МПС, реализованные на разрабатываемой или совместимой по языку МПС. Кросс-средства используют для разработки программ МПС на иных чем разрабатываемая МПС микро-, мини- или больших ЭВМ. В этом случае возможна опережающая разработка программ МПС без наличия аппаратной части МПС. Состав резидентных и кросс-средств включает обширный список разнообразных программ [5,6]. В данной лабораторной работе рассматривается программа дизассемблера (ДА). Программа ДА осуществляет перевод объектной программы МП КР580 на язык ассемблера этого же МП, т.е. производит действия обратные программе ассемблера. Начиная дизассемблирование со стартового адреса, ДА выбирает первый байт машинной программы. Этот байт определяет КОП, по которому можно точно определить длину команды и содержимое поля операндов для языка ассемблера. Для точного восстановления текста программы на языке ассемблера необходимо знать расположение данных и команд в программе. Поэтому при неверно заданном стартовом адресе, листинг программы может содержать неправильные последовательности команд, которые легко обнаружить в программе по несоответствию логики переходов или действия команд. Для анализа правильности восстановления исходной программы ДА в пакетном режиме работы печатает специальные таблицы для команд ветвления, вызова и возврата из подпрограмм. Эти таблицы используются для анализа правильности логики действия команд переходов и выделения подпрограмм в тексте основной программы. В диалоговом режиме ДА сразу показывает исходный текст после диз-
ассемблирования на экране. Поэтому не всегда возможно определить границы подпрограмм или действия команд переходов из-за ограниченного размера окна визуализации. Основная трудность при дизассемблировании появляется при разделении объектной программы на собственно команды и данные, используемые при выполнении этой программы. Каждый байт программы может быть интерпретирован различными способами. Например, десятичный код байта 118 может быть рассмотрен как код команды "Останов", как данное, как совокупность битов 01110110 или как двоично-десятично кодированное число 76. В случае дизассемблирования программ, записанных в ПЗУ, можно предположить, что основное содержание составляют команды программы, а данные могут использоваться в виде констант, которые не должны встречаться в командах записи в память в пределах адресов ячеек ПЗУ. При работе ДА с ОЗУ, в принципе, каждый байт программы может рассматриваться и как команда, и как данное. Поэтому при отсутствии документации или указания о том, имеются ли в программе данные, или все коды - это команды, правильность восстановленной ассемблерной программы определяется анализом пользователя. Однако, построение каких-либо общих методов семантического анализа для полной автоматизации этого процесса практически неосуществимо. Пример различной интерпретации содержимого памяти в зависимости от разного стартового адреса показан на рис.1.
Рис.1. Интерпретация содержимого памяти.
Как видно из рис.1. программа на языке ассемблера имеет различные команды и, следовательно, различную семантику программы. Поэтому при анализе программ, восстановленных программой ДА, следует прослеживать последовательное выполнение команд(трассировка) с одновременным анализом правильности действия команды. Простейший ДА воспринимает объектную программу только в двоичном виде и выдает ассемблерный текст с данными в поле операндов в 16ричной системе счисления. Обычно он входит в интегрированную систему отладки программ МПС. Более сложные ДА могут воспринимать исходную объектную программу и в других системах счисления и выдавать результат в задаваемой программистом.
2.2. Порядок выполнения работы 1. Взять в качестве исходной объектной программы полученную при выполнении лабораторной работы N 1 или выданную преподавателем. 2. Выполнить дизассемблирование с указанного стартового адреса и с адреса, отличного от него(по указанию преподавателя). 3. Провести анализ полученных текстов и сделать выводы о правильности ассемблерного текста программы. 4. Оформить отчет.
2.3. Содержание отчета 1. Титульный лист. 2. Текст машинной программы МП КР580. 3. Тексты программ на языке ассемблера для адреса.
двух
значений стартового
Контрольные вопросы. 1. В какой системе счисления могут быть представлены байты машинной программы для ДА? 2. По каким признакам можно отличить данные и команды при анализе восстановленной программы на языке ассемблера? 3. Какие команды не могут встречаться в восстановленной из ПЗУ программе? 4. Как определить фрагменты программы, относящиеся к подпрограмме?
3. Лабораторная работа N 3 Цель работы: изучение принципов моделирования архитектуры МП КР580 и получение навыков отладки программ в кроссрежиме.
3.1. Программная модель МП КР580 Для отладки программ в кросс-режиме используется моделирующая программа(МОПР). МОПР может быть написана на различных языках программирования, выполняться в различных операционных системах и режимах работы. Ниже будет рассмотрено два варианта МОПР - для работы в диалоговом режиме и в пакетном. Основой для построения МОПР служит программная модель МПС на базе МП КР580, которая показана на рис.2. МОПР повторяет цикл выполнения команды в МП, состоящего из фазы выборки и выполнения команды. Фаза выполнения производится на уровне входных данных и результатов для структурных элементов МП. Модели исполнения команд МП представляют собой последовательности операторов инструментального языка(например, ПЛ/1), выполняющие те же функции, что и соответствующие команды МП. По первому байту команды определяется код выполняемой операции и управление передается группе операторов инструментального языка, соответствующей модели данной команды. После выполнения этой группы операторов инструментального языка устанавливаются признаки выполнения команды, которые фиксируются в соответствующих моделях флагов условий. Далее определяется адрес следующей выполняемой команды и цикл выполнения команды повторяется. В соответствии с программной моделью МПС структурные элементы моделируются битовыми переменными, массивами битов различной длины и размерности, что определяется возможностями инструментального языка. Ввод информации в МПС моделируется вводом данных с устройств ввода (из заранее подготовленных файлов при пакетной обработке или с дисплея при диалоговом режиме), а вывод - печатью на выводном устройстве или дисплей.
Внутренние регистры
Внешние регистры Ввод/вывод
Память Адрес 2
7
0
000
B
001
C
010
D
011
E
100
H
101
L
110
ML
111
A
7
Порты ввода
0
0000 0001 0002
00 01 02
. . .
. . . FD FE FF
Порты вывода
PSW 00 01 02
F
. . .
PC SP
FFFC FFFD FFFE FFFF
FD FE FF
Рис.2. Программная модель МПС Для отладки программы МП с помощью МОПР обеспечивается вывод разнообразной отладочной информации: содержимое регистров, ячеек памяти, флагов условий, времени выполнения команд и т.п. Вся полученная информация анализируется программистом для доказательства правильности логики выполнения программы и(или) поиска ошибок в прикладной программе. Особо следует подчеркнуть, что в данной модели не учтены такие факторы, как помехозащищенность МПС, влияние температуры на длительность импульсов, разброс электрических параметров компонент МПС и т.п. Поэтому любая программа МПС, отлаженная с помощью МОПР, должна быть проверена в реальных условиях.
3.2. Отладка программ в кросс-режиме. Исходными данными для МОПР является объектная моделируемая программа (ОМП) для МП КР580, дополнительная информация для ОМП и управляющая информация для МОПР, если это пакетный режим обработки[6]. ОМП может быть получена после кросс-ассемблирования или при машинном кодировании. В результате работы МОПР в пакетном режиме выдается протокол отладки ОМП МП КР580, по которому можно судить о правильности логики функционирования объектной программы. В диалоговом же режиме отладочная информация получается в процессе выполнения и выдается на экран. Отладочная информация в пакетном режиме выдается по контрольным точкам. Контрольной точкой (КТ) называется вывод отладочной информации после выполнения команды, указанной пользователем. Для этого перечисляются порядковые номера команд с КТ и тип КТ. Общая КТ(ОКТ) позволяет получить следующую информацию: 1. Адрес команды в ОМП, после которой выводится(ОКТ). 2. Содержимое аккумулятора А. 3. Значение указателя стэка SP. 4. Значение счетчика команд РС. 5. Количество выполненных к данному моменту команд. 6. Время выполнения команд к данному моменту. 7. Содержимое памяти по адресу, равному значению счетчика 1. команд, т.е. КОП следующей команды, которая будет выполнена. 8. Содержимое всех программно-доступных регистров общего 2. назначения B,C,D,E,H,L и регистровых пар BC, DE, HL. 9. Значение флагов условий Z,S,P, CY, AC. Значения SP, РС и РОН выводятся в двоичном и десятичном виде. Специальная КТ (СКТ) позволяет отдельно выводить следующую информацию: 1. Вывод содержимого любого регистра. 2. Вывод содержимого произвольной ячейки памяти. 3. Вывод трассы выполнения произвольного числа команд, т.е. вывод адреса команды и значение аккумулятора. 4. Вывод ОКТ по маске признаков. Маска указывает какие флаги следует проверять и при каких значениях(нулевых или единичных). Структура маски соответствует структуре слова состояния процессора. 5. Останов моделирования по достижению модельного времени значения, заданного пользователем. 6. Вывод текущего значения модельного времени. 7. Вывод 10 последних выполненных к данному моменту команд (история выполнения). Выводится адрес команды и значение аккумулятора. МОПР позволяет пользователю занести до начала моделирования значения данных в определенные ячейки памяти, которые будут использованы ОМП(в пакетном режиме). В диалоговом режиме эта же информация может заноситься в процессе моделирования программы при любом останове.
Каждая МОПР имеет ограничения, связанные с ограниченными ресурсами инструментальной ЭВМ. Например, область модельной памяти и размера стэка, обычно ограничена. При появлении ситуации выхода за предельные параметры модели МОПР извещает об этом выводом специальной информации.
3.3. Порядок выполнения работы 1. Подготовить исходную программу для МОПР. Ею может быть программа, исследовавшаяся в предыдущих лабораторных работах или специально выданная преподавателем. 2. Определить места контрольных точек и необходимую отладочную информацию с предполагаемыми значениями. 3. Выполнить моделирование программы и записать реальные значения контролируемых объектов. 4. Провести анализ полученных значений и при необходимости повторить п.п.2-4. 5. Оформить отчет.
3.4. Содержание отчета 1. Титульный лист. 2. Текст машинной программы с указанием мест и вида контрольных точек. 3. Текст протокола моделирования программы и выводы.
Контрольные вопросы. 1. Какие преимущества имеет кросс-режим при отладке программы МПС? 2. Чем отличается отладочная информация общей и специальной контрольной точки? 3. В каких местах программы МП следует располагать контрольные точки? 4. Что произойдет при выполнении нижеприведенного фрагмента программы? М1: MVI А,2 ORA A JC M1 OUT 5
Список литературы 1. Балашов Е.П., Пузанков Д.В. Микропроцессоры и микропроцессорные системы. -М.: Радио и связь, 1981. -326 с. 2. Каган Б.М., Сташин В.В. Микропроцессоры в цифровых системах. -М.: Энергия, 1979. -192 с. 3. Соучек Б. Микропроцессоры и микро-ЭВМ. -М.: Советское радио, 1979. -192с. 4. Григорьев В.Л. Программное обеспечение микропроцессорных систем. -М.: Энергоатомиздат, 1983. -208 с. 5. Микропроцессоры: системы программирования и отладки. Под ред. В.А.Мясникова, М.Б.Игнатьева. -М.: Энергоатомиздат, 1985. 272 с. 6. Смагин А.А., Негода В.Н., Скворцов С.В. Проектирование и сопровождение микропроцессорных систем. -Саратов: СГУ,1987. -100с. В Н И М А Н И Е ! При выполнении лабораторных работ следует соблюдать правила техники безопасности и эксплуатации ЭВМ, действующие в соответствующей лаборатории или дисплейном классе, где выполняется отладка программ в кросс-режиме.
КРОСС-СРЕДСТВА МИКРОПРОЦЕССОРНЫХ СИСТЕМ Методические указания для студентов специальности 0608(2201) по выполнению лабораторных работ Составители: СКВОРЦОВ Сергей Вячеславович НИКИЩЕНКОВ Игорь Александрович Редактор С.А.Пурскалова Н/К Подписано в печать . .90. Формат 60х84 1/16. Бумага оберточная. Печать офсетная. Усл.печ.л. 1,28. Уч.-изд.л. 1,2. Усл.кр.-отт. 1,39. Тираж 100 экз. Заказ . Бесплатно. Ульяновский политехнический институт,432700, Ульяновск, ГСП, ул. Северный Венец, 32 Офсетная лаборатория УлПИ, 432600,Ульяновск, ул.Энгельса, 3