Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

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

Расширения файлов, используемые MPASM и утилитами

Комментарии

Поле комментария может использоваться программистом для текстового или символьного пояснения логической организации программы. Поле комментария полностью игнорируется ассемблером, поэтому в нем можно применять любые символы. Комментарии, которые используются в строке сами по себе, должны начинаться с символа комментария (* или;). Комментарии в конце строки должны быть отделены от остатка строки одним или более пробелами или табуляцией.

Существует ряд расширений файлов, применяемых по умолчанию MPASM и связанными утилитами. Назначения таких расширений приведены в табл. 6.4.

 

Табл. 6.4. Используемые по умолчанию назначения расширений файлов.

 

Табл. 6.4. Используемые по умолчанию назначения расширений файлов (продолжение).

Листинг представляет собой текстовый файл в формате ASCII, который содержит машинные коды, сгенерированные в соответствии с каждой ассемблерной командой, директивой ассемблера или макрокомандой исходного файла. Файл листинга содержит: имя продукта и версии, дату и время, номер страницы вверху каждой страницы.

В состав листинга входят также таблица символов и карта использования памяти. В таблице символов перечисляются все символы, которые есть в программе, и где они определены. Карта использования памяти дает графическое представление о расходовании памяти МК.

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

Существует четыре основных типа директив в М PAS M:

• директивы данных;

• директивы листинга;

• управляющие директивы;

• макро-директивы.

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

Директивы листинга управляют листингом файла MPASM и форматом. Они определяют спецификацию заголовков, генерацию страниц и другие функции управления листингом.

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

Макро-директивы управляют исполнением и распределением данных в пределах определений макротела.

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

CODE - начало секции объектного кода Синтаксис:

[<label>] code [ROM address>]

Используется при генерации объектных модулей. Объявляет начало секции программного кода. Если <label> не указана, секция будет названа.code Стартовый адрес устанавливается равным указанному значению или нулю, если адрес не был указан.

Пример:

RESET code H'OtFF goto START

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

«define <name> [<string>]

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

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

Пример:

#define length 20

tfdefine control 0x19,7

tfdefine position (X.YZ) (y-(2 * Z +X)).

testjabel dw position(1, length, 512)

bsf control; установить в 1 бит 7 в f 19

END - конец программного блока Синтаксис:

end

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

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

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

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

<label> equ <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

LIST — установить параметры листинга Синтаксис:

list [<list_option>,, <list_option>]

Директива <list> разрешает вывод листинга, если он до этого был запрещен. Кроме того, один из параметров листинга может быть изменен для управления процессом ассемблирования в соответствии с табл. 6.5.

 

Табл. 6.5. Параметры, используемые директивой list.

NOLIST - выключить выход листинга Синтаксис:

NOLIST

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

<label> org <expr>

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

Пример:

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

PROCESSOR - установить тип процессора Синтаксис:

processor <processor_type>

Устанавливает тип используемого процессора <processor_type>: [16С54 | 16С55 | 16С56 | 16С57 | 16С71 | 16С84 | 16F84 | 17С42]. Общие процессорные семейства могут быть выбраны как:[16С5Х| 16СХХ| 17СХХ| Для поддержания совместимости с новыми изделиями выбирается максимум доступной памяти.

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

<label> set <expr>

Директива SET функционально эквивалентна дирсктмнс I (.)(I, i.i исключением того, что величина, определяемая SET, можс? ьыи, и шгшмш директивой SET.

Пример:

area set 0 widthset 0x12 length set 0x14

area set length * width length set length + 1

TITLE — Определить программный заголовок Синтаксис:

title "<title_text>"

Эта директива устанавливает текст, который используется в верхней линии страницы листинга.<1Ше_1ех1> - это печатная ASCII последовательность, заключенная в двойные скобки. Она может быть до 60 символов длиной.

Пример

title "operational code, rev 5.0"

<== предыдущая лекция | следующая лекция ==>
Операнды | Симулятор MPSIM
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 479; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.009 сек.