КАТЕГОРИИ: Архитектура-(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"
Дата добавления: 2014-01-07; Просмотров: 479; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |