Директивы языка

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

Ниже приведено описание некоторых директив ассемблера MPASM, используемых в данном учебном пособии.

#DEFINE - определить метку замены текста

Синтаксис:

#define <name> [<string>]

Директива задает строку <string>, замещающую метку <name> всякий раз, когда та будет встречаться в исходном тексте.

Символы, которые определены директивой #DEFINE, не могут быть просмотрены симулятором. Используйте вместо этой директивы EQU.

Пример:

#define length 20

#define control 0x19,7

#define position (X,Y,Z) (y-(2 * Z +X)).

test_label dw position(1, length, 512)

bsf control; установить в «1» бит 7 в f19

END - конец программного блока

Синтаксис:

end

Определяет конец программы. После остановки программы таблица символов сбрасывается в файл листинга.

Пример:

start

;исполняемый код

;

end;конец программы

EQU - определить ассемблерную константу

Синтаксис:

<label> equ <expr>

Здесь <expr> это правильное MPASM выражение. Значение выражения присваивается метке <label>.

Пример:

four equ 4;присваивает численное значение метке four

INCLUDE - включить дополнительный файл источника

Синтаксис:

include <<include_file>>

include "<include_file>"

Определяемый файл считывается как источник кода. По окончании включаемого файла будет продолжаться ассемблирование исходника. Допускается до шести уровней вложенности. <include_file> может быть заключен в кавычки или угловые скобки. Если указан полный путь к файлу, то поиск будет происходить только по этому пути. В противном случае порядок поиска следующий: текущий рабочий каталог, каталог в котором находится исходник, каталог MPASM.

Пример:

include "c:\sys\sysdefs.inc"; system defs

include <addmain.asm>; register defs

ORG - Установить начальный адрес программы

Синтаксис:

<label> org <expr>

Устанавливает начальный адрес программы для последующего кода в соответствии с адресом в <expr>. MPASM выводит перемещаемый объектный код, а MPLINK разместит код по определенному адресу. Если метка <label> определена, то ей будет присвоена величина <expr>. По умолчанию начальный адрес имеет нулевое значение. Директива может не использоваться если создается объектный модуль.

Пример:

int_1 org 0x20; Переход по вектору 20

int_2 org int_1+0x10; Переход по вектору 30

Симулятор MPSIM

Симулятор MPSIM представляет собой симулятор событий, предназначенный для отладки программного обеспечения PIC-контроллеров. MPSIM моделирует все функции контроллера, включая все режимы сброса, функции таймера/счетчика, работу сторожевого таймера, режимы “SLEEP” и “Power-down”, работу портов ввода/вывода.

MPSIM запускается из командной строки DOS, конфигурируется пользователем и непосредственно использует выходные данные ассемблера MPASM.

Перед использованием симулятора необходимо отассемблировать исходный файл <file_name>.asm и получить файл объектного кода в формате INHX8M, создаваемый MPASM по умолчанию:

MPASM <file_name>.asm <RETURN>

Чтобы запустить симулятор, необходимо набрать в командной строке

MPSIM<RETURN>.

Вид экрана, получаемого при запуске MPSIM, показан на рис. 3.2. Экран разделен на три части или окна. Верхнее окно показывает текущее состояние моделирования, включая моделируемую программу, тип МК, число выполненных командных циклов и затраченное на них время. Среднее окно используется для вывода содержимого регистров пользователя. Набор регистров и формат выводимых на экран данных определяются файлом MPSIM.INI, который далее будет описан подробнее. Нижнее окно содержит приглашение на ввод команд, а также текущие операции и результат их выполнения.

При запуске симулятор MPSIM начинает искать командный файл “MPSIM.INI”. Этот текстовой файл создается пользователем и используется для задания всех используемых в программе параметров.

В файле MPSIM.INI допускается использовать комментарии, которые даются после знака “;”, но не допускается использование пустых строк.

Основные команды, используемые в симуляторе MPSIM, приведены в табл. 3.6.

Таблица 3.6. Основные команды симулятора MPSIM

Команда Параметр Комментарии
AD Reg[, Radix[, Digits]] Вывод содержимого регистра на экран в указанном формате и заданной системе счисления X, B или D
B [addr] Установка точки останова по текущему или указанному адресу
C [#break] Продолжение выполнения программы с пропуском указанного количества следующих точек останова
E [addr] Выполнение программы с текущего или указанного адреса
GE filename Получение и выполнение командного файла. Это способ загрузки командного файла.INI
GO - Запуск МК и начало выполнения программы
LO filename Загрузка в MPSIM файлов.HEX и.COD
P device Выбор типа моделируемого МК
Q - Выход из MPSIM и запись команд в файл.JRN
RE - Сброс времени выполнения и счетчика циклов
RS - Сброс моделируемого МК
SE pin|port Вывод на экран состояния указанного вывода или порта и возможность его изменения пользователем
SR O|X|D Установка системы счисления по умолчанию
SS [addr] Пошаговое исполнение начиная с указанного адреса. При отсутствии адреса – исполнение идет с текущего места
ST filename Загрузка файла стимуляции
ZR - Сброс всех регистров МК
ZT - Сброс таймера/счетчика МК

Когда эти команды вводятся в сеансе работы с MPSIM, они заносятся в файл MPSIM.JRN, который используется при создании расширенного файла MPSIM.INI. Данный файл можно использовать для выявления ошибок и обеспечения нормального выполнения программы после исправления кода.

Для моделирования внешних тестовых событий (воздействий) на моделируемый МК используются файлы стимуляции с расширением.STI. Эти файлы используются MPSIM чтобы обеспечить подачу однократных и повторяющихся входных сигналов в процессе выполнения программы. При этом можно наблюдать на экране как МК реагирует на эти сигналы.

Файл воздействия состоит из множества состояний, для которых задается параметр STEP, определяющий число циклов, в течение которых поддерживается указанное состояние. Он позволяет одновременно подавать сигналы на различные выводы МК. В файле воздействия можно указать любой вывод МК, в том числе и вывод сброса (_MCLR). Для обозначения комментариев используется знак!.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: