Скачиваний:
15
Добавлен:
29.12.2022
Размер:
1.59 Mб
Скачать
    1. Команда обращения к подпрограмме (call).

Сложные программы, как правило, включают в себя подпрограммы, т.е. создается алгоритм основной программы и в основной программе используются команды обращения к подпрограмме.

Синтаксис команды обращения к подпрограмме

Б1

Б2

Б3

CALL

младшие разряды

адрес ячейки памяти ЗУ с командой подпрогрпммы

старшие разряды

([SP-1]) ←(CPL)возвр.

([SP-2]) ←(CPH)возвр

(SP)←(SP)-2 ; измен.адр. вершины стека.

(CP)←([< Б3>< Б2>]).

Последовательность выполнения команды обращения к подпрограмме CALL.

В стековую память записывается 16-ти разрядный адрес ячейки памяти возврата после выполнения подпрограммы (CPL)возвр. , (CPH)возвр.

В указатель счетчика команд (PC) заносится адрес первой ЯП команды подпрограммы с КОП ([<Б3><Б2>]). . Поскольку стековая память использована для хранения адреса возврата из подпрограммы в основную программу, то изменяетсязначение указателя вершины стека (уменьшается на 2, т.е. SP=SP-2).

Команда возврата из подпрограммы

Б1

RET

(CPL) ← ([SP+1]), (запись в счетчик команд PC адреса

(CPH) ← ([ SP+2]) возврата в основную программу)

(SP)←(SP)+2, (изменяется адрес вершины стека )

В счетчик команд PC записывается содержимое стековой памяти по адресу ([SP+1]) и ([SP+2]), т.е. адрес возврата в основную программу.

После выполнения команды значение указателя стека SP увеличивается на 2, т.е. SP=SP+2.

    1. Команда hlt – останов выполнения программы

Б1

HLT



МП прекращает выполнение программы и ждет указаний.

    1. Пустая команда

Б1

NOP

Эта команда используется для резервирования ячеек при написании программы. МП никаких действий не выполняет, но осуществляет первый этап (чтение и дешифрование). Кроме того, команда может применяться при написании программы временной задержки (для изучаемого симулятора AVSIM85 время выполнения 1-ого этапа команды четыре секунды).

Работа с имитатором (симулятором) процессора IntelI8085.

Построение программы.

Этапы создания программы для рассматриваемого микропроцессора IntelI8085 :

  1. Разработка алгоритма программы и ее написание на языке ассемблер. Набор программы осуществляется только!!! в Блокноте или с использованием симулятора. Сохраняется программа в формате «все файлы» и имя программы – с расширением .asm. Например, testr3.asm.

Примечание: В редакторе Word или WordPad программу не набирать, а только в Блокноте

  1. Трансляция программы – перевод программы с языка ассемблера в код микропроцессора. В результате появляется файл с расширением .hex, т.е. файл с цифрами в шестнадцатеричной системе счисления.

  2. Компоновка программы. Результат компоновки – объединение нескольких оттранслированных программ в одну, в результате мы получаем файл с расширением .obj.

  3. Отладка программы.

Структура программы.

Программа состоит из предложений. Каждое предложение имеет следующую структуру:

[метка] <мнемоника команды> [операнды]; [комментарии]

[] – не обязательное включение содержимого скобок в предложение

<> - обязательное наличие содержимого скобок в предложение

  1. Поле метки: метка записывается с первой позиции и начинается обязательно с буквы.

  2. Поле мнемоники: код операции (КОП) записывается после первой позиции.

  3. Поле операнда: в этом поле записываются данные, которые обрабатываются в МП.

  4. Поле комментария: комментарии записываются обязательно после точки с запятой (;). Если комментариев нет, точку с запятой ставить не обязательно. Если точка с запятой стоит в первой позиции, то строка транслятором воспринимается как комментарий.

Программа начинается с комментария, в котором записывается автор программы, название программы, какие микропроцессоры, микроконтроллеры и тактовая частота используются. Далее следуют директивы к транслятору.

В директивах записываются символические имена портов ввода и вывода, констант, команд присоединения и других команд.

Include – директива и после нее записываются имена файлов с расширением .asm.

Тело программы включает строки предложений, рассмотренные ранее.

Трансляция программы.

Для трансляции программы необходимо командной в строке, например, FAR или TotalCommander, записать:

avmac85 <имя исходного файла.asm>siallpublic

Помни уголки <>не использовать при написании команды.

В результате формируются объектный файл и листинг:

<имя исходного файла>.obj

< имя исходного файла >.prn

Для проверки программы на наличие в ней ошибок необходимо раскрыть файл с расширением .prn , и в нем будет показано, в какой строке находится ошибка. Исправлять ошибки только в файле с расширением .asm.

Компоновка программы.

Для компоновки программы пользователю необходимо создать командный файл компоновки. После создания командного файла компоновки в командной строке набрать команду:

avlink @<имя файла>.lnk

В результате компоновки формируется файл с расширением .hex.

Подготовка файлов выходных данных.

Для ввода данных (имитация ввода данных) формируется файл исходный данных. Для организации файла создать файл с именем indat.ad. Для создания файла используют следующее сочетание клавиш – Shift+F4. Значения входных данных записываются в десятичной системе. Цифры разделяются либо пробелом, либо переводом строки. Для перевода десятичной системы счисления в шестнадцатеричную в командной строке записывают команду:

iotran db indat.dat indat.ad

Лекция

Соседние файлы в предмете Применение микропроцессоров в радиотехнических системах