Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Микропроцессорная техника. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
☆
2. ВЫПОЛНЕНИЕ ЛАБОРАТОРНОЙ РАБОТЫ №1
Изучение лабораторного микропроцессорного комплекта,
состав команд операций передачи данных, команд арифметических
действий и логических операций микропроцессора КР580ВМ80А
и выполнение простых программ
Цель работы: изучение структуры микропроцессорной систе-
мы на основе УМК, системы команд микропроцессора КР580ВМ80А (МП КР580) и принципов построения программ в машинных кодах для микропроцессорных систем управления.
Этапы цикла выполнения программы включают в себя принцип
цикличности.
1. Процессор выставляет число, хранящееся в регистре счетчика
команд, на шину адреса и отдаёт памяти команду чтения.
2. Выставленное число является для памяти адресом. Память, получив адрес и команду чтения, выставляет содержимое, хранящееся по этому адресу, на шину данных и сообщает о готовности.
3. Процессор получает число с шины данных, интерпретирует его как команду (машинную инструкцию) из своей системы команд и исполняет её.
4. Если последняя команда не является командой перехода, процессор увеличивает на единицу (в предположении, что длина каждой команды равна единице) число, хранящееся в счётчике команд; в результате там образуется адрес следующей команды.
2.1. Выполнение программы осуществляется на языке Assembler
Язык программирования низкого уровня, представляющий собой формат записи машинных команд, удобный для восприятия человеком, команды языка ассемблера один в один соответствуют командам процессора и, фактически, представляют собой удобную символьную форму записи (мнемокод) команд и их аргументов.
Язык ассемблера обеспечивает базовые программные абстракции:
− директивы ассемблера позволяют включать в программу блоки данных
(описанные явно или считанные из файла);
− использовать макроопределения с параметрами;
− повторить определённый фрагмент указанное число раз;
− задавать адрес исполнения фрагмента;
− менять значения меток в процессе компиляции;
− компилировать фрагмент по условию;
− связывание частей программы и данных через метки с символьными
именами и директивы.
31
Выбор языка программирования зависит от состава аппаратуры, для которой пишется программа, а также от требующегося быстродействия всего программно-аппаратного комплекса в целом, в тех случаях, когда объём ОЗУ и ПЗУ мал (в районе нескольких килобайт) альтернативы ассемблеру нет. Именно эти языки программирования позволяют получать самый короткий и самый быстродействующий код программы.
На своем рабочем уровне микропроцессор реагирует на список операций, называемых машинной командой.
На рис.2.1 приведено содержание памяти, являющееся программой на машинном языке. Эта программа начинается с адреса 2000Н с содержимым КОЛ 0011 1110В и оканчивается адресом 2006Н с содержимым 0111 0110В, программа станет несколько проще для восприятия, когда она представлена в шестнадцатеричном коде (Н-код).
Адрес,
Н-код
2000
2001
2002 2003
2004 2005 2006 2007
Двоичное
Содержание
0011 1110 1011 0100 0010 1111 0011 0010 0000 0000 0010 0001 0111 0110
Рис. 2.1. Пример содержания памяти микропроцессора
2.2. Пример выполнения лабораторной работы
Задача № 1
Записать в регистр А однобайтовое число 47Н и проинвертировать
его. Результат операции оставить в аккумуляторе
На каждую задачу в 1 лабораторной работе составляется алгоритм. Пример алгоритма приведен на рис. 2.1, в таблице 2.1 дан пример
оформления программы.
Программа оформляется в виде:
Адрес,
Н-код
2000
2001
2002 2003
2004 2005 2006 2007
Содержимое
Н-код
3E
B4
2F 32 00
21 76
Таблица 2.1.
адреса код команды Примечание
0800 3Е МVI A,47 Занесение байта данных в накопитель 0801 47 Байт 0802 2F СМА Инвертируем содержимое накопителя 0803 76 HLT Конец программы
32
Рис. 2.2. Алгоритм выполнения задачи 1
Перед вводом программы в память МП требуется перевести программу с языка ассемблер в машинные коды и назначить каждому коду, либо операнду (операндами называются данные используемые в командах программы) адрес ячейки памяти в ОЗУ МП-системы. Выбранные адреса должны соответствовать ОЗУ МП.
В противном случае при загрузке программы в память МП можно потерять часть или все данные.
Для перевода программы с языка ассемблер в машинные коды тре­буется выполнить следующие действия:
1. для каждой команды, представленной в строке 3 таблицы 1, требу-
ется подобрать машинный код, представляющий собой код операции , соот­ветствующей выбранной команде (приложение 1);
2. определить операнды (данные, следующие за мнемокодом
операции);
3. определить соответствие последовательных адресов памяти для
каждой команды и операнда.
Каждая команда, используемая в МП КР580, имеет определенный формат. В соответствии с этим операции делятся на однобайтные, двухбайтные и трехбайтные. Однобайтные операции не содержат дополнительных операндов. Двухбайтные содержат один байт операнд, трехбайтные имеют двухбайтные операнды.
Эмулятор позволяет написание программ на языке ассемблер исполь­зовать системы команд МП КР580ВМ80А их отладку и выполнения в ша­говом режиме
Следует учесть, что при записи трехбайтной команды в ОЗУ МП-
системы, сначала следует код, затем младший бай и только потом старший байт данных.
33
Для подготовки УМК к работе требуется выполнить следующие действия:
1. На рабочем столе выбрать иконку и открыть её.
2. Выбираем установочную область памяти
3. Включаем компилятор
Компилятор — транслятор, который осуществляет перевод всей исход-ной программы в эквивалентную ей результирующую программу на языке машинных команд (микропроцессора или виртуальной машины).
4. Осуществляем набор команд в
компиляторе (всегда начинаем рабо-
ту с org 0800, заканчиваем hlt ) .
После ввода программы нажимаем
на иконку Compile, если все верно, то
высвечивается иконка Compile Ok.
5. Осуществить Старт с заявленно-
го адреса (т.е. начало программы).
34
6. Просмотр выполнения программы (Регистры, адрес).
Результат выполнения программ представить в виде таблице 2.2.
Число по адресу 0900Н
2.3. Задания к 1 лабораторной работе
Число по адресу 0901/902H
Результат выполнения программы
Число по адресу 0903/904Н
Содержимое А Состояние битов регистра F
S= Z= AC= P= С=
35
Таблица 2.2
1. Разработать программу которая вычитает однобайтовые числа,
расположены в регистрах В и Н, результат помещает в регистр С. (Числа заносятся программно).
2. Поменять содержимое регистровых пар DЕ и НL м е с т а м и . Ч и с л а
в регистры заносим программно.
3. Разработать программу которая записывает в регистр С 2АН, в ре-
гистр В 16 Н и производит сложение, результат помещает в регистр В.
4. Сложить содержимое ячейки памяти, с адресом 0900н и содержи-
мое ячейки памяти, с адресом 0901н. Результат поместить в регистр В.
5. Уменьшить содержимое регистровой пары DЕ на содержимое
регистровой пары НL. Числа в регистровые пары заносим программно. ре­зультат поместить в регистровую пару DЕ.
6. Поменять регистровые пары НL и ВС местами. Числа в регистровые
пары заносим программно.
7. Написать программу, увеличивающую содержимое ячейки па-
мяти по адресу 0910н на 14н и размещающую результат в ячейку памяти по адресу 0901н.
8. Написать программу сложения двух двухбайтовых чисел, одно из ко-
торых расположено в памяти, начиная с адреса 0900н, другое с адреса 0902н. Результат разместить в памяти с адреса 0904н. Перед выполнением программы записать по исходным адресам двухбайтовые числа, указанные преподавателем.
9. Заменить в программе по задаче №4 команду сложения содержимого
аккумулятора с регистром В (ADD В), командой сравнения СМР В. Ввести программу в память УМК. Записать в ячейку памяти по адресу 0900Н число большее, чем по адресу 0901н. Запустить программу на выполнение. После выполнения проанализировать результат выполнения.
10. Записать по адресу 0900н число меньшее, чем по адресу 0901н.
(задача № 4)
11. Записать по адресам 0900н и 0901н два одинаковых числа. Запустить
программу на выполнение. Исследовать результат выполнения (задача № 4).
12. Заменить в задаче № 4 команду ADD В на команды INR A, DCR A,
13. ADD A, ANA A, ORA A, XRA А. Исследовать результат выполне-
ния, содержимое аккумулятора и флагового регистра F. Результат предста- вить в виде таблицы 2.3.
Команда Содержимое
аккумулятора
Результат выполнения задания 12
Содержимое
аккумулятора после
Содержание битов регистра F
(цифровое и буквенное
операции
36
Таблица 2.3
значение)
2.4. Порядок защиты лабораторной работы
Обучающийся, выполнивший лабораторную работу и оформивший отчет,
допускается к защите лабораторной работы.
Вопросы для защиты 1 лабораторной работы.
1. Из чего состоит память микропроцессора?
2. Нарисуйте простейшую структуру микро-ЭВМ.
3. Что является особенностью блока регистров МП
4. Шина (адреса, данных, управления) является однонаправленной.
5. На какие группы можно разделить команды.
6. Нарисуйте внутреннюю структуру микропроцессора и укажите ос-
новное назначение его компонентов.
7. Какие биты входят в состав регистра признаков микропроцессора?
8. Какие команды арифметических и логических операций выполняет микропроцессор КР580ВМ80А?
9. Какие методы адресации используются в микропроцессоре?
10. Как влияют арифметические и логические операции на биты ре­гистра признака?
37
3. ВЫПОЛНЕНИЕ 2 ЛАБОРАТОРНОЙ РАБОТЫ
Изучение команд условного и безусловного перехода,
передачи управления микропроцессора КР580ВМ80А
и организация циклов в программе
Цель работы: изучение команд передачи управления микропроцес-
сора КР580ВМ80А.Изучение команд условного и безусловного переходов. Организация циклов в программе.
3.1. Команды передачи управления
Команды управления, часто называемые командами перехода, позво-
ляют выполнять различные действия в соответствии со значением внешних сигналов или выработанных внутри системы условий. Все команды управ­ления делятся на команды безусловного и условного перехода.
К окончанию текущей команды, а точнее — после выборки команды из памяти в программном счетчике PC сформирован адрес следующей по порядку команды. При естественном порядке выполнения команд, соответствующем простейшим линейным программам, производятся выборка и исполнение этой следующей команды, формируется адрес следующей команды и так далее.
Однако линейные прикладные программы на практике не встречаются. В разветвляющихся и циклических программах и при использовании подпрограмм приходится выполнять не следующую по порядку команду, а команду, находящуюся в другой ячейке программной памяти.
Для этого достаточно загрузить в PC адрес новой ячейки, называемый адресом перехода. Такая процедура называется передачей управления, а специальные команды, которыми она реализуется, называются командами передачи управления, или командами управления программой. В системе команд микропроцессора К580 предусмотрен обширный набор команд передачи управления.
Команда безусловной передачи управления без возврата JMP, называ­емая также безусловным переходом или просто переходом, состоит из байта кода операции и двух байтов полного 16-битного адреса перехода. При ее исполнении адрес перехода загружается в PC, а текущее содержимое PC теряется: РС ←<ВЗ>,<В2>. Данная команда, позволяет передать управление любой ячейке адресного пространства.
Современная методика создания структурированных программ реко­мендует использовать минимум команд JMP.
Трехбайтные команды условной передачи управления без возврата, называемые также условными переходами или разветвлениями, осуществляют передачу управления только при удовлетворении некоторого условия, заданного в коде операции.
38
Если условие не удовлетворяется, то передачи управления не происходит, а выполняется следующая по порядку команда, т. е. в этой ситуации команда разветвления эквивалентна холостой команде.
Проверяемым условием является текущее значение одного из инди­каторов, указываемых в коде операции.
Для удобства программирования предусмотрены команды разветв­лений, осуществляющие передачу управления по единичному и нулевому значению каждого из индикаторов, кроме индикатора АС.
Например, команда JZ передает управление, т. е. осуществляет загрузку РС ←<ВЗ> ,<В2>, если флагZ=l, а команда JNZ — если флагZ = 0. Аналогичные парные команды имеются для флагов CY(JC, JNC), S(JM, JP) и P(JPE, JPO). Всего, таким образом, получается восемь команд разветвлений.
В таблице 3.1 приведены команды условных переходов, их машинный код, формат записи и действия, которые они производят.
При работе с двумя последними командами из таблицы 1 следует помнить, что процессор предполагает, что эти числа записаны в допол­нительном коде, т.е. являются числами со знаком. Поэтому при работе с числами без знака от этих команд стоит воздержаться.Таким образом, команды условных переходов позволяют строить ветвящиеся алгоритмы, аналогичные представленному на рисунке 1.
JMP addr (Jump). Переход или ветвление (РС) ←addr. Управление пе­редается команде, адрес которой установлен в байте 2 и 3 текущей команды.
1100 010
Младший байт адреса
Старший байт адреса
Циклов – 3; периодов Т – 10; адресация – непосредственная; индикаторы – нет.
Jconditionaddr. Условное ветвление. Если условие выполняется, то управ-ление передается команде, адрес которой установлен в байте 2 и 3 команды; если нет
– управление продолжается последовательно.
11 ССС 010
Младший байт адреса
Старший байт адреса
Циклов – 3; периодов Т – 10; адресация – непосредственная.
CALL addr. Вызов ((SP) – 1) ← (PCH); ((SP) – 2) ← (PCL); (SP) ← (SP) – 2; (PC) ←addr. В стек помещается адрес возврата, содержимое SP дважды декрементируется. Управление передается команде, адрес которой указан в байте 2 и 3 текущей команды.
39
11001101
Младший байт адреса
Старший байт адреса
Циклов – 5; периодов Т – 17; адресация – непосредственная, косвенная регистровая.
Команды условных переходов с кодами в таблице 3.1 и 3.2
Таблица 3.1
Команды условных переходов
операция мнемоника код формат символика перейти по адресу addr ,
если результат 0
перейти по адресу addr , если результат 1
Перейти по адресу addr, если результат 1
перейти по адресу addr , если результат не 0
перейти по адресу addr , если результат 0
перейти по адресу addr , если результат 1
перейти по адресу addr , если результат 1
перейти по адресу addr , если результат 0
JP addr F2H F2
мл.байт ст.байт адреса
JM addr FAH FA
мл.байт ст.байт адреса
JZ addr CAH CA
мл.байт ст.байт адреса
JNZ addr C2H C2
мл.байт ст.байт адреса
JPO addr E2H E2
мл.байт ст.байт адреса
JPE addr EAH EAH
мл.байт ст.байт адреса
JC addr DAH DA
мл.байт ст.байт адреса
JNC addr D2H D2
мл.байт ст.байт адреса
Если S=0,то (РС)
←
Если S=1,то (PC)
←
Если Z=1 (РС)
←
Если Z=0,то (РС)
←
Если Р=0.то (РС)
←
Если Р=1,то (РС)
←
Если CY=1,то (РС)
←
Если CY=0,то (РС)
←
addr.
addr.
addr.
addr.
addr.
addr.
addr.
addr.
40
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]