Справочная информация и словарь терминов

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

Логические функции

Формат представления чисел

Стандартные расширения для файлов MPLAB

Словарь англоязычных терминов

 

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

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

   ЕЩЕ! можете скачать архив 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'

В начало

 

Стандартные расширения для файлов MPLAB

РАСШИРЕНИЕ НАЗНАЧЕНИЕ ФАЙЛА
*.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
окно просмотра содержит список переменных и регистров, которые Вы можете просматривать и модифицировать при отладке.


Hosted by uCoz