Разработка и отладка программ для микроконтроллеров (Лабораторная работа № 25), страница 7

Установите нужную скорость работы и запустите программу. Убедитесь, что повторным нажатием клавиши F1 можно остановить выполнение программы.

Случаются ситуации, когда точка останова поставлена в ненужном месте и ее нужно убрать до выполнения программы. Для этого нужно занести в PC адрес ячейки памяти, которая соответствует точке останова, и нажать F1. Точка останова исчезнет. После этого содержимое PC необходимо вернуть в исходное состояние.

Задание. Установите точку останова на команде DAD B, а затем уберите ее.

При разработке программ часто возникает задача определения времени ее выполнения. Это нужно для сравнения эффективности различных программ, например, арифметических, при разработке программ временных задержек. Известно, что команда микропроцессора выполняется за строго определенное число машинных тактов. Для микропроцессоров i8080/8085 эти данные имеются в [3, стр. 307]. Так для подпрограммы CROSSCOD выполнение команд занимает следующее количество тактов:

LXI H,TABLE – 10

MVI B,0     - 7

DAD B       - 10

MOV A,M     - 7

RET         - 10

Итого: 44 такта

Длительность машинного такта Т связана с тактовой частотой микропроцессора fт соотношением: Т=1/fт.

Обозначив N – общее число тактов в программе, время ее выполнения будет:

tвып=N*T=N/fт.

Подсчет количества тактов в программе по таблицам команд дело довольно утомительное. Отладчик AVSIM85 позволяет автоматизировать этот процесс. Для этого перед запуском программы нужно выполнить команды:

Set ® cYcles

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

После «прогона» программы в счетчике будет общее число тактов, за которое выполнилась данная программа. «Ошибка» отладчика при подсчете тактов объясняется тем, что команда RET не выполнялась, на ней произошло прерывание программы.

Для сброса счетчика тактов следует нажать комбинацию клавиш Alt-Y, и затем многократным нажатием цифровой клавиши 0 обнулить счетчик.

После отладки программы необходимо вернуться в DOS-навигатор.

Задание. Произведите отладку программы PR810, находящейся в файле pr810.asm. Тестовые данные возьмите из табл.1. Определите максимальное время выполнения программы, если тактовая частота микропроцессора 2,5 МГц.

После отладки необходимо вернуться в DOS-навигатор.

Замечание. Если по какой-либо причине необходимо отменить выбранную команду, то это можно сделать нажав комбинацию клавиш Ctrl-C.

3.1.3. Ввод и исправление команд в процессе отладки. На практике иногда возникает необходимость детального изучения действий команд. Например, как производится маскирование, как команда влияет на флаги, как программа реагирует на запросы прерывания. Отладчик AVSIM85 предоставляет возможности ввода команд программы или их изменения без создания исходного файла с расширением .asm.

Предположим, что нужно изучить действие следующей программы:

IN  00H ;Ввод из порта 00Н

MOV C,A

ANI 0FH ;Выделить младшую тетраду

OUT 02H ;Вывести в порт 02Н

MOV A,C

ANI 0F0H ;Выделить старшую тетраду

OUT 03H ;Вывести в порт 03Н

NOP

Эта программа производит ввод из порта с адресом 00Н и выводит младшую тетраду байта в порт 02Н, а старшую тетраду – в порт 03Н.

Отметим, что отладчик AVSIM85 может работать только с четырьмя портами, имеющими неизменяемые адреса: 0=00Н, 1=01Н, 2=02Н, 3=03Н. Любой из этих портов может быть настроен как порт ввода (командой IN) или порт вывода (командой OUT).

Задание. Запустите отладчик AVSIM85 и выполните команды для непосредственного ввода кода программы:

Patch ® Code at PC

В командной строке появится сообщение:

>Enter mnemonic:_

Наберите коды программы, нажимая Enter после каждой команды.

Занесите в порт с адресом 00H число 5AH и выполните набранную программу в пошаговом режиме. Убедитесь в правильности ее выполнения.

Отладчик позволяет вносить изменения в коды программы. Для этого необходимо занести в PC адрес команды, которую требуется изменить, и выполнить

Patch ® Code  at  PC

Затем набрать мнемокод желаемой команды и нажать Enter.

Задание. Замените команду OUT 02H на OUT 01H. Выполните вновь программу  в пошаговом режиме и убедитесь в ее работоспособности.

Выйдите из отладчика в DOS – навигатор.