|
|
Понедельник, 29 апреля 2024
|
статьи и документация |
программаторы |
"глюки" |
FAQ |
полезные конструкции |
мои разработки |
ссылки
|
');
//-->
|
MPLAB - Справочная информация и словарь терминов |
|
Автор: Дмитрий Саликов |
|
|
|
|
|
|
|
|
|
|
|
|
|
Директивы ассемблера располагаются
в тексте исходного файла
для расширения функций ассемблера,
определения и управлением процессом.
Общее правило - директивы не должны
располагаться в первой позиции строки
в тексте (иначе будут определены как
метка).
ЕЩЕ!
можете скачать архив direct.zip,
содержащий файлы в формате ворда,
полностью и подробно описывающие на
русском языке директивы ассемблера с
примерами. Рекомендую!
|
|
ДИРЕКТИВА |
ОПИСАНИЕ |
ПРИМЕР |
Директивы
управления |
CONSTANT |
Определение
символьной константы |
constant cnt=255 |
#DEFINE |
Определение
текстовой последовательности для
замены |
#define snd portsnd, 1 |
END |
Конец блока
программы |
end |
EQU |
Определение
константы |
temp equ
0xF0 |
ERROR |
Сообщение о ошибке |
error "error line" |
ERROR LEVEL |
Установка типа
сообщений об ошибках в файле
листинга и файле ошибок |
errorlevel 1, -202 |
INCLUDE |
Вставить другой
файл источника |
include <addmain.asm> |
LIST |
Определение
формата (тип микроконтроллера,
количество символов в строке,
табуляция и многое другое см. MPASM
Help) или разрешает вывод, если было
предварительно запрещено |
list p=17c42, f=INHX32, r=DEC |
MESSG |
Создать
пользовательское сообщение |
messg "see here!" |
NOLIST |
Запретить вывод |
nolist |
ORG |
Установить
начальный адрес программы |
org 0x100 |
PAGE |
Вставить страницу
в файл листинга |
page |
PROCESSOR |
Установить тип
микроконтроллера |
processor 16F84 |
RADIX |
Установить систему
счисления по умолчанию для
выражения данных |
radix dec |
SET |
Определение
константы. Аналогична EQU, но в
последствии можно переопределить |
temp set b'00110011' |
SPACE |
Вставить пустые
строки в файл листинга |
space 3 |
SUBTITLE |
Вставить второй
заголовок в файл листинга |
subtitle "Main Project" |
TITLE |
Вставить заголовок
в файл листинга |
title "Project Of PIC" |
#UNDEFINE |
Удаление
определенной текстовой
последовательности |
#undefine snd |
VARIABLE |
Определение
символьной переменной |
variable temp=0xF0 |
Условия |
ELSE |
Начало блока
альтернативного условия (IF) |
else |
ENDIF |
Завершение блока
условия |
endif |
ENDW |
Завершение цикла
ПОКА |
endw |
IF |
Начало блока
условия |
if version == 100 |
IFDEF |
Выполнить, если
определено |
ifdef testing |
IFNDEF |
Выполнить, если не
определено |
ifndef testing |
WHILE |
Цикл ПОКА |
while i < count |
Данные |
CBLOCK |
Определение блока
констант |
cblock 0x20 |
__CONFIG |
Описание бит
конфигурации микроконтроллера |
__config H'FFFF' |
DATA |
Создание числовых
и текстовых данных |
txt data "please",
0x30 |
DB |
Определение байта
данных |
temp db 0xFF |
DE |
Определение данных
в EEPROM |
temp de 0xF0, 0xF1 |
DT |
Определение
таблицы |
temp dt
"text", 0, 0x30 |
DW |
Определение слова
(2 байта) данных |
temp dw 39,
"text" |
ENDC |
Окончание блока
констант |
endc |
FILL |
Заполнение области
константой |
fill 0x1009, 5 |
__IDLOCS |
Определение ID |
__idlocs H'FFEE' |
RES |
Резервирование
памяти |
buffer res 64 |
Макросы |
ENDM |
Окончание макроса |
endm |
EXITM |
Выход из макроса |
exitm |
EXPAND |
Полный текст
макроса в файле листинга |
expand |
LOCAL |
Определение
локальной переменной в макросе |
local leng, tmp |
MACRO |
Определение
макроса |
out_sym macro
temp |
NOEXPAND |
Не разворачивать
макрос |
noexpand |
В начало
|
|
|
Таблица истинности для
основных логических функций:
X1
Аргумент 1 |
X2
Аргумент 2 |
AND
"И" |
IOR
"ИЛИ" |
XOR
Искл. "ИЛИ" |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
В начало
|
|
|
В исходном
тексте представлять числа можно по-разному
и в разных системах счисления:
ФОРМАТ |
СИНТАКСИС |
ПРИМЕР |
Десятичный |
D'число'
.число |
D'100'
.100 |
Шестнадцатиричный |
H'число'
0xчисло |
H'f9'
0xAF00 |
Восьмиричный |
O'число' |
O'777' |
Двоичный |
B'число' |
B'11110000' |
Символьный |
'символ'
A'символ' |
'C'
A'C' |
В начало
|
|
|
РАСШИРЕНИЕ |
НАЗНАЧЕНИЕ
ФАЙЛА |
*.ASM |
исходный файл на
ассемблере |
*.C |
исходный файл на С |
*.CFG |
файл конфигурации |
*.COD |
содержит символьную
информацию и объектный код |
*.CSV |
файл с записью
трассировки (только для MPLAB-ICE 2000) |
*.DAT |
файл данных
симулятора |
*.ERR |
файл обнаруженных
ошибок, генерируется
ассемблером или С при компиляции |
*.H |
добавленный файл на
С |
*.HEX |
файл с машинными
кодами в HEX формате для PIC
микроконтроллеров |
*.HLP |
файл помощи |
*.INC |
добавленный файл на
ассемблере |
*.INI |
конфигурация MPLAB и
установленного языка
программирования |
*.KEY |
файл схемы кнопок
MPLAB |
*.LKR |
файл сценария компоновки
MPLINK |
*.LST |
абсолютный листинг,
генерируется ассемблером или С при
компиляции |
*.MTC |
файл конфигурации
языка программирования |
*.PJT |
файл содержит
главную информацию о проекте |
*.REG |
файл, описывающий
модификацию регистров при отладке |
*.STI |
файл, описывающий
входные сигналы на входах
микроконтроллера |
*.TB |
файл трассировки
точек останова |
*.TBR |
файл панели
инструментов |
*.TPL |
временный файл |
*.TRC |
файл записи
трассировки |
*.TXT |
файл записи
трассировки (только MPLAB-ICE 2000) |
*.WAT |
файл окна
просмотра |
В начало
|
Арифметические операторы
MPASM.
|
|
Оператор |
Описание |
Пример |
$ |
Текущий
счетчик программы |
goto $ + 3 |
( |
левая скобка |
1 + ( d * 4 ) |
) |
правая скобка |
( leght + 1 ) * 255 |
! |
операция "НЕ"
(логическая инверсия) |
if ! ( a - b ) |
~ |
инверсия |
flags = ~ flags |
- |
отрицательное
число (вторая инверсия) |
- 1 * lenght |
high |
выделить
старший байт слова |
movlw high llasid |
low |
выделить
младший байт слова |
movlw low ( llasid + .2551
) |
* |
умножение |
a = c * b |
/ |
деление |
a = b / c |
% |
модуль |
lenght = totall % 16 |
+ |
сложение |
tot_len = lenght * 8 + 1 |
- |
вычитание |
Entry_Son = ( Tot - 1 ) /
8 |
<< |
сдвиг влево |
val = flags << 1 |
>> |
сдвиг вправо |
val = flags >> 1 |
>= |
больше либо
равно |
if ent >= num |
> |
больше |
if ent > num |
< |
меньше |
if ent < num |
<= |
меньше либо
равно |
if ent <= num |
== |
равно |
if ent == num |
!= |
не равно |
if ent != num |
& |
поразрядное
"И" |
flags = flags &
err_bit |
^ |
поразрядное
"ИСКЛЮЧАЮЩЕЕ ИЛИ" |
flags = flags ^ err_bit |
| |
поразрядное
"ВКЛЮЧАЮЩЕЕ ИЛИ" |
flags = flags | err_bit |
&& |
логическое
"И" |
if ( len == 512)
&& ( b == c ) |
|| |
логическое
"ИЛИ" |
if ( len == 512 ) || ( b
== c ) |
= |
установить
равному... |
entry_index = 0 |
+= |
сложить и
установить равному... |
entry_index += 1 |
-= |
вычесть и
установить равному... |
entry_index -= 1 |
*= |
умножить и
установить равному... |
entry_index *= lenght |
/= |
делить и
установить равному... |
entry_index /=
lenght |
%= |
модуль и
установить равному... |
entry_index %= 8 |
<<= |
сдвиг влево и
установить равному... |
entry_index << 3 |
>>= |
сдвиг вправо и
установить равному... |
entry_index >> 4 |
&= |
"И" и
установить равному... |
entry_index %= err_flags |
|= |
"ВКЛЮЧАЮЩЕЕ
ИЛИ" и установить равному... |
entry_index |= err_flags |
^= |
"ИСКЛЮЧАЮЩЕЕ
ИЛИ" и установить равному... |
entry_index ^= err_flags |
++ |
увеличить на 1
(инкремент) |
i ++ |
-- |
уменьшить на 1
(декремент) |
i -- |
|
Арифметические операторы
MPASM.
|
|
Оператор |
Описание |
Пример |
$ |
Текущий
счетчик программы |
goto $ + 3 |
( |
левая скобка |
1 + ( d * 4 ) |
) |
правая скобка |
( leght + 1 ) * 255 |
! |
операция "НЕ"
(логическая инверсия) |
if ! ( a - b ) |
~ |
инверсия |
flags = ~ flags |
- |
отрицательное
число (вторая инверсия) |
- 1 * lenght |
high |
выделить
старший байт слова |
movlw high llasid |
low |
выделить
младший байт слова |
movlw low ( llasid + .2551
) |
* |
умножение |
a = c * b |
/ |
деление |
a = b / c |
% |
модуль |
lenght = totall % 16 |
+ |
сложение |
tot_len = lenght * 8 + 1 |
- |
вычитание |
Entry_Son = ( Tot - 1 ) /
8 |
<< |
сдвиг влево |
val = flags << 1 |
>> |
сдвиг вправо |
val = flags >> 1 |
>= |
больше либо
равно |
if ent >= num |
> |
больше |
if ent > num |
< |
меньше |
if ent < num |
<= |
меньше либо
равно |
if ent <= num |
== |
равно |
if ent == num |
!= |
не равно |
if ent != num |
& |
поразрядное
"И" |
flags = flags &
err_bit |
^ |
поразрядное
"ИСКЛЮЧАЮЩЕЕ ИЛИ" |
flags = flags ^ err_bit |
| |
поразрядное
"ВКЛЮЧАЮЩЕЕ ИЛИ" |
flags = flags | err_bit |
&& |
логическое
"И" |
if ( len == 512)
&& ( b == c ) |
|| |
логическое
"ИЛИ" |
if ( len == 512 ) || ( b
== c ) |
= |
установить
равному... |
entry_index = 0 |
+= |
сложить и
установить равному... |
entry_index += 1 |
-= |
вычесть и
установить равному... |
entry_index -= 1 |
*= |
умножить и
установить равному... |
entry_index *= lenght |
/= |
делить и
установить равному... |
entry_index /=
lenght |
%= |
модуль и
установить равному... |
entry_index %= 8 |
<<= |
сдвиг влево и
установить равному... |
entry_index << 3 |
>>= |
сдвиг вправо и
установить равному... |
entry_index >> 4 |
&= |
"И" и
установить равному... |
entry_index %= err_flags |
|= |
"ВКЛЮЧАЮЩЕЕ
ИЛИ" и установить равному... |
entry_index |= err_flags |
^= |
"ИСКЛЮЧАЮЩЕЕ
ИЛИ" и установить равному... |
entry_index ^= err_flags |
++ |
увеличить на 1
(инкремент) |
i ++ |
-- |
уменьшить на 1
(декремент) |
i -- |
|
|
|
|
|
|
- Alpha character
- набор символов, который
включает в себя только буквы
латинского алфавита: a, b,... z, A, B,... Z.
- Alphanumeric
- набор символов, который
включает в себя набор alpha символов и
цифры: 0, 1,... 9.
- Assemble (ассемблирование)
- операция производимая
ассемблером (assembler)
- assembler (ассемблер)
- инструмент языка
программирования, который переводит
текстовый файл-источник с расширением
.asm в исполняемый машинный код.
- Break point
- точка останова, адрес,
устанавливаемый пользователем, где
выполнение программы останавливается.
- Build
- функция перекомпилирования
всех исходных файлов рабочего проекта.
- C
- язык программирования
высокого уровня для PIC
микроконтроллеров.
- Calibration memory
- специальный регистр или
регистры для калибровки внутреннего RC
генератора.
- Compile (компилирование)
- операция, производимая
компилятором.
- Compiler (компилятор)
- инструмент языка
программирования, переводящий
исходный файл в исполняемый машинный
код.
- Configuration bits (биты
конфигурации)
- специальные биты
устанавливаемые при программировании
микроконтроллера, определяющие
рабочую конфигурацию. В исходном
файле необходимо определять,
используя директиву __config, при
использовании симулятора или
эмулятора необходимо установить в
меню Options>Development Mode.
- EEPROM
- Электрически стираемая и
программируемая память только для
чтения (Electrically Erasable Programmable Read Only Memory).
Особый тип памяти, доступный из
основной программы микроконтроллера
для чтения и записи. Содержимое EEPROM
сохраняется при выключения
напряжения питания.
- Extended Microcontroller Mode
- режим расширенного
микроконтроллера, только для PIC17CXXX и PIC18CXXX
кристаллов, при котором используется
как и внутренняя память программы, так
и внешняя. При превышении объема
внутренней памяти автоматически
происходит переход на внешнюю память.
- External RAM
- внешняя память для чтения/записи,
возможна только для PIC17CXXX и PIC18CXXX
кристаллов.
- Hex Code
- стандартный файл hex формата,
содержащий выполняемые инструкции,
результат ассемблирования или
компилирования исходных файлов. Hex Code
может быть конвертирован в Object Code (объектный
код).
- Hex File
- ASCII файл, содержащий
шестнадцатиричный адрес и содержимое
(hex code).Файлы этого формата являются
исходными файлами программаторов.
- ICD
- внутрисхемный отладчик (In-Circuit
Debugger).
- ICE
- внутрисхемный эмулятор (In-Circuit
Emulator).
- IDE
- интегрированная среда
разработки (Integrated Development Environment). MPLAB IDE
включает в себя: компилятор, ассемблер,
менеджер проекта, редактор, отладчик,
симулятор и другие инструменты.
- Identifier
- функция или имя переменной.
- Librarian
- библиотекарь -
инструментальный язык для создания и
перемещения библиотек.
- Library
- библиотека - коллекция
перемещаемых объектных модулей.
- Link
- функция, выполняемая
линкером (linker).
- Linker
- инструментальный язык,
комбинирующий объектные файлы (Object
Files) и библиотеки для создания
выполняемого кода.
- Linker Script Files
- командный файл MPLINK с
расширением .lkr, определяющий опции
связывания и описывающий возможную
память.
- Listing File
- листинг-файл - текстовый файл,
показывающий машинный код,
сгенерированный для каждого С оператора
или ассемблерной инструкции, а также
MPASM директивы и макросы.
- Machine Code
- выполняемый машинный код.
- Macro
- при ассемблировании в
исходном тексте имя макроса
заменяется на определенные ранее
инструкции ассемблера (участок кода).
Начало макроса соответствует
директиве macro и оканчивается
директивой endm.
- Macro Directives
- директивы, контролирующие
выполнение макроса и распределение
данных внутри тела макроса
- Make Project
- команда для
перекомпилирования только тех файлов-источников,
которые были изменены после
последнего компилирования.
- Microcontroller Mode
- одна из возможных
конфигурация памяти программы только
для PIC17CXXX и PIC18CXXX кристаллов. В этом
режиме используется только
внутренняя память, расположенная на
одном кристалле с микроконтроллером.
- Microprocessor Mode
- одна из возможных
конфигурация памяти программы только
для PIC17CXXX и PIC18CXXX кристаллов. В этом
режиме используется только внешняя
память программы, внутренняя память
отключена. Адресное пространство
составляет 64 Кбайта.
- Node
- компонент проекта MPLAB.
- NOP
- нет операции.
- Object Code
- объектный код, получаемый путем ассемблирования или
компилирования исходного файла. Этот
перемещаемый код может быть загружен
в MPLINK для создания выполняемого кода.
Объектный код содержится в объектном
файле.
- Object File
- модуль, который содержит
перемещаемый объектный код или данные
и ссылки на внешний код или данные.
- Off-Chip Memory
- память
- Opcodes
- Operational Codes. Мнемоника,
которая при ассемблировании или
компилировании порождает код.
- Pod
- внешнее устройство
эмулятора, содержащее память, таймеры,
логику прерываний.
- Power-on-Reset Emulation
- программный случайный
процесс записи случайных значений в
регистры общего назначения (RAM).
- Program Counter
- регистр, содержащий адрес
текущей выполняемой команды (инструкции).
- Program Memory
- область памяти
микроконтроллера, где хранится код
программы (команды, инструкции). В эту
область загружается при
симулировании или эмулировании код
текущей программы.
- Programmer
- программатор, устройство для
записи программ в микросхемы, такие
как микроконтроллеры, микросхемы
памяти и т. п.
- Project
- совокупность исходных
файлов и инструкций по
компилированию или ассемблированию
для одного приложения.
- RAM
- память с произвольным
доступом (Random access memory), память данных.
- ROM
- память только для чтения (Read only memory),
память программ.
- SFR, Special Function Registers
- регистры специального
назначения (Special Function Registers ), РОН.
- Simulator
- программа моделирования
работы микроконтроллера.
- Simulator Stimulus
- описание внешних входных
сигналов. Возможность изменять
состояние или задавать периодический
или произвольный сигнал.
- Source
- источник кода, обычно
текстовый файл, содержащий инструкции
ассемблера или код на С.
- Source Code - Assembly
- источник кода содержащий
инструкции микроконтроллера,
директивы ассемблера и макросы,
который будет переведен в машинный
код при ассемблировании.
- Source Code - C
- программа, написанная на
языке высокого уровня С, которая будет
переведена в машинный код при компилировании.
- Stack
- стек, список вызываемых
подпрограмм. При выполнении call или при
прерывании в стек заносится текущий
адрес программы, а при команде return и
возвращении из прерывания адрес из
стека переносится в счетчик программы.
- Stopwatch
- счетчик, измеряющий
выполненные циклы.
- Tool Bar
- колонка или полоса кнопок-иконок
по которым Вы можете щелкать мышью для
выполнения функций MPLAB.
- Watchdog Timer
- таймер микроконтроллера,
сбрасывающий его при переполнении.
Разрешить или запретить таймер
возможно установкой соответствующих
битов конфигурации микроконтроллера
при программировании. Выбрать и
изменять предделитель и его
коэффициент можно в программе.
- Watch Window
- окно просмотра содержит
список переменных и регистров,
которые Вы можете просматривать и
модифицировать при отладке.
|
На главную
|
|
|
Полное или частичное воспроизведение любых материалов, содержащихся на этом сайте, допускается только с письменного разрешения
администрации. Авторские права на опубликованные на сайте материалы принадлежат их владельцам. |
Замечания? Предложения? "Мертвые" ссылки? Проблемы с загрузкой страниц? Пишите вебмастеру или в гостевую книгу
|
Designed
by Эfir studio | © 2002-03 Yuri Lysenkov |
|