Разработка и отладка многомодульных программ. Отдельные фрагменты прикладной программы МК. Использование процедур, оформленных в виде подпрограмм, страница 4

Затем в командной строке набрать имя файла ram и нажать клавишу Enter:

>Enter Filename:ram

При отладке программы MAIN необходимо следить за правильностью записи данных в ОЗУ. Согласно тексту программы MAIN и рис.4 в ячейку с адресом 0800H будут записываться входные данные, а в ячейки 0810H-0812H – десятичные цифры ц1, ц2, ц3 в неупакованном формате.

Используем нижнее окно Memory Space (по терминологии AVSIM область Dump2) для отображения ячеек ОЗУ с адреса 0800H.

С этой целью необходимо выполнить команды:

DUMP

Затем в командной строке ввести номер дампа 2:

Select DUMP:2

Затем выбрать команду задания типа адресации дампа:

Absolute

И, наконец, в командной строке набрать начальный адрес области памяти (дампа 2) в hex-коде:

>Enter Expression in Memory Adress Space:800H

После нажатия клавиши Enter убеждаемся, что начальный адрес нижнего окна Memory Space действительно стал 0800H, а в ячейках памяти, отображаемых в этом окне, появились нули.

Отладку программы MAIN рекомендуется делать следующим образом.

1. С помощью клавиши Esc переходим в дисплейную область отладчика AVSIM85. Затем с помощью комбинации клавиш Alt-1 переходим в область портов ввода/вывода. Устанавливаем на входе порта ввода с адресом 0 (00H) код FFH, что соответствует максимальному значению входного кода МК.

2. Выполняем прогон программы MAIN в пошаговом режиме. При этом после каждого нажатия клавиши F10 смотрим за результатом выполнения очередной команды. Так как программа AVSIM85 не отображает метки программы, написанной на ассемблере фирмы 2500 A.D. (вследствие несоответствия форматов), то удобно следить за выполнением программы в пошагово режиме по тексту программы MAIN (см. п. 3.2.1).

Выполнение подпрограммы CALL PR810 требует много шагов. Так как подпрограмма PR810 была уже отлажена раньше, то нас будет интересовать только результат ее работы. Поэтому можно применить следующий прием: с помощью клавиши F4 устанавливаем точку останова на команде LXI D,…, следующей за командой CALL …. С помощью клавиши F3 закрепляем точку останова. Затем запускаем автоматический режим выполнения программы с помощью клавиши F1. Отладчик выполняет подпрограмму PR810 и останавливает выполнение программы. По содержимому регистров H, L проверяем правильность работы программы.

3. Дальнейшую проверку программы можно продолжить в пошаговом режиме. При этом необходимо убедиться в правильности распаковки двоично-десятичного кода (по содержанию ячеек 0810H-0812H) и выводу данных в порты 01H-03H.

4. После выполнения последней команды HLT программы MAIN отладчик не будет реагировать на клавиши F10 и F1. Это объясняется тем, что команда HLT останавливает работу микропроцессора.

5. Для повторного запуска программы необходимо выполнить начальную установку микропроцессора. С этой целью надо перейти в командную область отладки (с помощью клавиши Esc) и выполнить команды:

Reset→Cpu

При этом в программный счетчик запишется (РС)=0000Н и курсор перейдет на адрес 0000Н. После этого отладчик вновь готов к выполнению программы: в автоматическом режиме (с помощью F1) или в пошаговом режиме (с помощью F10).

6. Исследуйте работу программы в автоматическом режиме, задавая значения входного кода: 00Н, А5Н, 5АН. Если программа выполняется правильно при всех значениях входного кода, то процесс отладки можно считать законченным.

После отладки программы работы микроконтроллера нужно получить исполняемый файл программы, который будет размещен в ПЗУ. Этот файл можно получить с помощью компоновщика link.exe в диалоговом режиме. При это на последнем шаге работы компоновщика необходимо ввести опцию Х, при этом компоновщик создаст исполняемый файл с расширение .tsk, который и будет загружаться в программатор ПЗУ.

Задание. Создайте исполняемый файл main.tsk для загрузки в программатор ПЗУ.