ЛАБОРАТОРНАЯ РАБОТА № 2. ЗАПИСЬ И ВЫПОЛНЕНИЕ ПРОСТЫХ ПРОГРАММ

1. ЦЕЛЬ РАБОТЫ

Ознакомление с принципом действия, машинными циклами и тактами микропроцессора КР580: изучение правил записи машинных программ (в машинных кодах и мнемокодах); исследование выполнения команд пересылки байта.

2. ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

ЗАПИСЬ ПРОГРАММ ПРИ РАБОТЕ С УОУ

В УОУ "Электроника -580" предусмотрен ввод-вывод программ только в машинных кодах, записанных в шестнадцатеричной системе счисления. Такое представление программ неудобно для программиста, так как затрудняет понимание и увеличивает вероятность ошибок. Для человека более удобна символическая (мнемоническая) запись программ. Поэтому на практике целесообразно совмещать на одном бланке машинные и мнемонические коды команд. Рассмотрим особенности записи программ на примере (программа 2.1):

ПРОГРАММА 2.1

АДРЕС МАШ. КОД МЕТКА МНЕМОКОД КОММЕНТАРИИ
3E B5 START MVI A, B5 ЗАСЫЛКА КОДА В5 В АККУМУЛЯТОР
814А 21 A4 82   LXI H, 82A4 ЗАСЫЛКА АДРЕСА 82А4 В ПАРУ HL:
814D   MJV M, A ПЕРЕСЫЛКА ИЗ АККУМУЛЯТОРА В ПАМЯТЬ ПО АДРЕСУ ИЗ ПАРЫ HL
814E E7   RS14 КОНЕЦ ПРОГРАММЫ И ВОЗВРАТ В МОНИТОР

 

Бланк разделен на пять вертикальных полей. В первом поле записывается шестнадцатеричный адрес ячейки памяти, в которой размещен первый байт кода команды, а во втором поле - машинный код команды (один, два или три байта) в порядке размещения байтов в памяти. При записи следует помнить, что в трехбайтных командах во втором байте команды записывается младший байт адреса или операнда, а в третьем - старший.

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

В четвертом поле записывается мнемоническое обозначение соответствующей машинной команды. Сначала записывается мнемоника кода операции, а затем мнемоники операндов или адресов. В этом поле двухбайтные коды принято записывать в привычном виде: сначала старший байт, а затем - младший.

В поле комментария записываются в свободной форме различные пояснения.

Обычно работа программы заканчивается командой останова (HLT). При отладке программ в УОУ не рекомендуется заканчивать командой останова, так как при этом будет невозможно с помощью монитора просмотреть содержимое регистров или памяти. Вместо команды останова лучше использовать команду RST4 (код Е7), которая будет передавать управление монитору.

При записи программ все числа представляются в шестнадцатеричной системе счисления.

3. ОБЪЕКТЫ ИССЛЕДОВАНИЯ

Работа производится на учебно-отладочном устройстве "Электроника - 580" без дополнительных модулей и контрольно-измерительной аппаратуры.

4. ЗАДАНИЕ ДЛЯ ПОДГОТОВКИ

4.1. Ознакомьтесь с принципом действия, машинными циклами и тактами микропроцессора КР580.

4.2. Изучите правила записи машинных программ при работе с УОУ.

4.3. Напишите программу для выполнения действий, указанных в табл. 2.1 (константы в табл. 2.1 приведены в десятичной системе счисления; скобки обозначают содержимое соответствующего регистра). Программу разместите в любой свободной области оперативной памяти УОУ. Используйте команды пересылки байта:

MOV RD, RS - переслать содержимое регистра-источника RS в регистр-приемник RD (команда занимает в памяти один байт; на выполнение требуется 5 тактов);

 

 

Таблица 2.1

ВАРИАНТ ВЫПОЛНИТЬ УКАЗАННЫЕ ДЕЙСТВИЯ
31® В 49 ® D 128 ® C (B) ® A (C) ® H (D) ® E
95 ® A 108 ® H 212 ® E (A) ® B (H) ® L (B) ® D
209 ® L 100 ® A 28 ® C (L) ® H (A) ® E (C) ® B
205 ® D 42 ® H 82 ® E (D) ® A (H) ® B (B) ® C
105 ® C 54 ® H 219 ® B (C) ® A (H) ® E (B) ® D
99 ® L 185 ® B 197 ® E (L) ® D (B) ® C (E) ® H
71 ® A 145 ® D 231 ® L (A) ® C (D) ® H (L) ® B
47 ® H 168 ® A 255 ® B (H) ® C (A) ® L (B) ® E
59 ® C 191 ® L 203 ® E (C) ® B (L) ® A (E) ® B
61 ® D 215 ® B 152 ® H (D) ® C (B) ® L (C) ® A
163 ® A (A) ® B 23 ® H 100 ® C (C) ® L 02® D
27 ® L 98 ® B (L) ® A 16 ® C (A) ® D 56 ® A
57 ® H 21 ® B 127 ® C (C) ® D (B) ® L 75 ® A
61 ® B (B) ® A 152 ® B 64 ® C (B) ® L 100 ® H
75 ® L 89 ® A (L) ® B 100 ® C (A) ® H (C) ® D

 

MVI RD, В2> - переслать содержимое второго байта команды в регистр-приемник RD (команда занимает в памяти два байта и выполняется за 7 тактов; во втором байте кода команды размещается константа).

4.4. Пользуясь таблицей кодов команд, размещенной на лицевой панели УОУ, запишите машинные коды команд программы. Константы переведите из десятичной в шестнадцатеричную систему счисления.

5. ПОРЯДОК ВЫПОЛНЕНИЯ РАБОТЫ

5.1. Введите в УОУ разработанную программу.

5.2. Определите содержимое регистров общего назначения (РОН).

5.3. Установите стартовый адрес программы и запустите ее на выполнение.

5.4. Вновь определите содержимое всех РОН процессора и проверьте правильность решения задачи.

6. СОДЕРЖАНИЕ ОТЧЕТА

Отчет должен содержать:

машинную и символическую программы соответствующего варианта задания;

таблицу содержимого регистров до и после выполнения программы;

анализ результатов и выводы.

7. ВОПРОСЫ ДЛЯ САМОПРОВЕРКИ

7.1. Опираясь на общую схему выполнения команды в МП КР580, объясните процесс реализации команды MOV B,H.

7.2. Как работают основные элементы МП при выполнении команды MVI D,F2?

7.3. Как определяется адрес следующей команды при разработке программы в машинных кодах?

7.4. Что такое метки и для каких целей они используются?