КАТЕГОРИИ: Архитектура-(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) |
BANKISEL - Выбор банка для косвенной адресации
Синтаксис bankisel <label> Описание Используется при генерации объектного файла. Директива дает команду компилятору сгенерировать код настройки банка памяти данных для косвенного обращения к регистру <label>. Только одна метка может быть указана в директиве. Предварительно метка <label> должна быть объявлена, и соответствовать назначению директивы. Линкер генерирует соответствующий код для выбора банка памяти. Для 14 - разрядных микроконтроллеров выполняется воздействие на бит IRP в регистре STATUS в соответствии с банком размещения регистра. Для 16-разрядных микроконтроллеров генерируются команда MOVLB или MOVLR. Если пользователь сам выбирает рабочий банк памяти, то никаких дополнительных инструкций в код программы добавлено не будет. Пример: movlw Varl movwf FSR bankisel Varl movwf INDF
BANKSEL - Выбор банка для прямой адресации Синтаксис banksel <label> Описание Используется при генерации объектного файла. Директива дает команду компилятору сгенерировать код настройки банка памяти данных для прямого обращения к регистру <label>. Только одна метка может быть указана в директиве. Предварительно метка <label> должна быть объявлена, и соответствовать назначению директивы. Линкер генерирует соответствующий код для выбора банка памяти. Для 12-разрядных микроконтроллеров устанавливает/сбрасывает бит в регистре FSR. Для 14-разрядных микроконтроллеров - изменяются биты в регистре STATUS. Для 16-разрядных микроконтроллеров генерируются команда MOVLB или MOVLR. Для усовершенствованных 16-разрядных микроконтроллеров будет сгенерированна команда MOVLB. Если в микроконтроллере только один банк памяти никакой дополнительный код генерироваться не будет.
CBLOCK- Определение блока констант Синтаксис cblock [<ехрг>] <label>[:<increment>][,<label>[:<increment>]] endc Описание Определить список именованных констант. Каждая именованная константа <label> имеет некоторое значение, описанное выше по тексту программы. Цель данной директивы состоит в том, чтобы указать адреса размещения нескольких констант. Список именованных констант заканчивается директивой ENDC. <ехрг> - указывает стартовый адрес для первой константы. Если адрес не указан, то используется заключительное значение предыдущего CBLOCK. Если первый CBLOCK не имеет никакого значения <ехрг>, то размещение начинается с нулевого адреса. <increment> - указывает приращения адреса для текущей именованной константы. Именованные константы в одной строке разделяются запятыми. Директива CBLOCK используется для размещения констант в памяти программ и памяти данных. Пример cblock 0x2 0; name_1 будет иметь адрес 20 name_1, name_2; name_2, 21, name_3, 22 name_3, name_4; паmе_4 адрес 23. endc
cblock 0x30 TwoByteVar: 0, TwoByteHigh, TwoByteLow Queue: QUEUE_SIZE QueueHead, QueueTail Doublel:2, Double2:2 endc
CODE - Начало кода объектного файла в памяти программ Синтаксис [<label>] code [<R0M address>] Описание Используется при генерации объектного файла. Объявляет начало секции кода программы. Если <label> не указана, секции присваивается имя.code. Если не указан адрес секции, то ей будет присвоено текущее значение адреса в памяти программ. Пример RESET code H'01FF' goto START
CONFIG - Установка битов конфигурации микроконтроллера Синтаксис _ _config <expr> OR _ _config <addr>, <expr> Описание Устанавливает биты конфигурации микроконтроллера в соответствии со значением <ехрг>. Для микроконтроллеров семейства PIC18CXXX дополнительно указывается адрес <addr> размещения конфигурационных битов. Подробное описание конфигурационных битов смотрите в технической документации на соответствующий микроконтроллер. Предварительно, перед директивой CONFIG, надо указать тип микроконтроллера с помощью директивы LIST или PROCESSOR. Для микроконтроллеров семейства PIC17CXXX в директиве LIST необходимо указать выходной формат HEX файла INHX32. Пример list p=17c42,f=INHX32 config h'ffff'; Конфигурация по умолчанию
CONSTANT- Определить символьную константу Синтаксис constant <label>[=<expr>,...,<label>[=<expr>] ] Описание Создает символьную константу для использования в выражениях MPASM. Существующая константа не может быть определена повторно, а выражения используемые при определении константы должны быть полностью разрешимы. Это основное отличие между константами определенными директивой CONSTANT и VARIABLE, SET. Иначе, константы и переменные могут поочередно использоваться в выражениях. Пример variable RecLength=64 constant BufLength=512 constant MaxMem=RecLength+BufLength
DA - Сохранение строки в памяти программ Синтаксис da <expr> [, <expr2>,..., <exprn>] Описание Упаковывает в 14-битный формат два 7-битных символа ASCII. Используется для сохранения символьной строки в FLASH памяти программ микроконтроллера. Пример da "abcdef" ВПаМЯТИПрограмм - 30Е2 31Е4 32Е6 3380 da "12345678",0 ВПаМЯТИПрограмм - 18В2 19В4 1АВ6 0 00 0 da OxFFFF В памяти программ - 0x3fff
DATA - Сохранение значений или текста в памяти программ Синтаксис [<label>] data <expr>,[,<expr>,...,<expr>] [<label>] data "<text_string>"[,"<text_string>",...] Описание Инициализирует одно или более слов памяти программ. Данные могут быть в виде констант, внутренних/внешних меток или их выражений. Данные также могут состоять из цепочки (одного) символов ASCII <text_string>. Один символ сохраняется в младшем байте памяти программ, в случае сохранения нескольких символов они упаковываются в слова по два знака. Если сохраняется нечетное число символов, то заключительный байт равен нулю. Во всех семействах микроконтроллеров, кроме PIC18CXXX, первый символ сохраняется в старшем байте слова. Для PIC18CXXX первый символ сохраняется в младшем байте слова. Эта директива может использоваться при генерации объектного файла. Дополнительную информацию смотрите в описании директивы IDATA. Пример data reloc_label+10 data l,2,ext_label data "testing 1,2,3" data 'N' data start_of_program
DB - Побайтное сохранение данных в памяти программ Синтаксис db <expr>[,<expr>,...,<expr>] Описание Резервирует слово в памяти программ с сохранением 8-битного значения. Многозначные выражения последовательно заполняют слова памяти программ. В случае нечетного числа значений последний байт будет равен нулю. Эта директива может использоваться при генерации объектного файла. Дополнительную информацию смотрите в описании директивы IDATA. Пример db 't', OxOf, 'e', OxOf, 's', OxOf, 't', '\n'
DE - Резервирует 8-разрядное значение в EEPROM памяти Синтаксис de <expr>[,<expr>,...,<expr>] Описание Резервирует слово в EEPROM памяти для сохранения 8-битное значения <ехрг>. Старшие биты слова равны нулю. Каждое 8-разрядное значение сохраняется в отдельном слове. Директива была разработана для PIC16F8X, но может быть использована и в других микроконтроллерах. Пример org H'20'; Инициализация EEPROM de "My Program", 0
#DEFINE - Определить замену текста Синтаксис #define <name> [<string>] #define <name> [<arg>,...,<arg>] <string> Описание Данная директива определяет правила замены текста. В тексте программы строка <name> будет заменена последовательностью символов <string>. В случае использования директивы без указания параметра <string> последовательность <name> отмечается MPASM для последующей проверки IFDEF. Эта директива подражает директиве #define стандарта ANSI 'С. Символы, определенные данным методом не доступны для просмотра в среде MPLAB IDE. Пример #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; установка бита 7 в регистре 0x19
DT- Определяет таблицу данных Синтаксис [<label>] dt <expr>[,<expr>,...,<expr>] [<label>] dt "<text_string>"[,"<text_string>",...] Описание Генерирует серию команд RETLW для 8-разрядных значений <ехрг>. Каждое значение <ехрг> сохраняется в отдельной команде RETLW. Пример dt "A Message", О dt FirstValue, SecondValue, EndOfValues
DW - Резервирует слова памяти программ Синтаксис [<label>] dw <expr>[,<expr>,...,<expr>] [<label>] dw "<text_string>"[,"<text_string>",...] Описание Резервирует слова в памяти программ для данных, заполняя пустые места определенными значениями. Для микроконтроллеров семейства PIC18CXXX директива DW работает подобно DB. Адрес последнего резервирования в памяти программ запоминается и увеличивается на единицу при каждом сохранении значений. Выражения могут быть литеральными с сохранением в памяти программ аналогично директиве DATA. Эта директива может использоваться при генерации объектного файла. Дополнительную информацию смотрите в описании директивы IDATA. Пример dw 39, "diagnostic 39", (d_list*2+d_offset) dw diagbase-1 ELSE - Начало альтернативного блока программы условия IF Синтаксис else Описание Используется совместно с директивой IF для обеспечения альтернативного хода выполнения программы, соответствующему ложному выполнению условия. Директива ELSE может быть использована внутри регулярного блока программы или макроса. Пример speed macro rate if rate < 50 dw slow else dw fast endif endm
END - Окончание программы Синтаксис end Описание Указывает окончание текста программы. Пример list p=17c42 :; текст программы end; конец всех команд
ENDC - Окончание автоматического блока констант Синтаксис endc Описание Используется совместно с директивой CBLOCK. Указывает окончание списка констант.
ENDIF - Окончание условного блока программы Синтаксис endif Описание Указывает окончание условного блока. Директива ENDIF может быть использована внутри регулярного блока программы или макроса.
ENDM - Окончание макроса Синтаксис endm Описание Завершает макрос, открытый директивой MACRO. Пример make_table macro argl, arg2 dw argl, 0 res arg2 endm
ENDW- Завершает цикл While Синтаксис endw Описание Завершает цикл WHILE. Пока условие, указанное в директиве WHILE, остается истинным, программа будет выполняться между директивами WHILE и ENDW. Директива ENDW может быть использована внутри регулярного блока программы или макроса.
EQU - Определение константы ассемблера Синтаксис <label> equ <expr> Описание Присваивает значение <ехрг> константе <label>. Пример four equ 4; присваивает значение 4 константе four
ERROR - Формирует сообщение об ошибке Синтаксис error "<text_string>" Описание Сообщение <text_string> (длиной от 1 до 80 символов) будет напечатано в списках ошибок MPASM. Пример error_checking macro argl if argl >= 55 error "error_checking-01 arg out of range" endif endm
ERRORLEVEL - Настройка параметров вывода сообщений об ошибках Синтаксис errorlevel {0|1|2|+<msgnum>|-<msgnum>} [,...] Описание Указание типов сообщений, которые будут включены в файл списка ошибок.
Пример errorlevel 1, -202
EXITM - Выход из макроса Синтаксис exitm Описание Принудительный выход из макроса во время его выполнения. Эффект аналогичен выполнению директивы ENDM. Пример test macro filereg if filereg == 1 exitm else error "bad file assignment" endif endm
EXPAND - Включение текста макроса в файл листинга программы Синтаксис expand Описание Разрешает включение в файл листинга программы полного текста макроса. Действие аналогично команде /т MPASM при его запуске из командной строки. Действует до директивы NOEXPAND.
Дата добавления: 2014-01-11; Просмотров: 1412; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |