Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


КОМПИЛЯТОР ДЛЯ МИКРОКОНТРОЛЛЕРОВ СЕМЕЙСТВА МК51



СИСТЕМНЫЕ СОГЛАШЕНИЯ

Следующие расширения имен файлов будут использованы по умолчанию программами пакета фирмы 2550 A.D:

asm входной файл для ассемблера (компилятора);

obj выходной файл из ассемблера;

pak упакованный выходной файл;

lst файл листинга.

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

СИНТАКСИС ЯЗЫКА АССЕМБЛЕРА

Определители основания системы счисления:

B      Binary (двоичная);

O | Q     Octal (восьмеричная);

D      Decimal (десятичная);

H      Hex (шестнадцатеричная);

" X" | 'X' Ascii (ASCII-коды).

Предопределены значения двух последовательных символов, заключенных в одиночные или двойные символы. Однако, чтобы пользоваться ими необходима директива TWOCHAR ON ('CR' - возврат каретки, 'LF' - перевод строки, 'SP' - пробел, 'HT' - горизонтальная табуляция, 'NL' - пустой символ).

 

Комментарии. Строки комментариев должны начинаться с точки с запятой или звездочки в первой колонке, за исключением использования директивы COMMENT. Комментарии после инструкций не сопровождаются точкой с запятой, если ассемблирование выполняется в Spaces Off моде. Если ассемблирование выполняется в Spaces On моде, все комментарии должны начинаться с точки с запятой. Подробнее смотрите директиву SPACES.

 

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

 

Метки. Нелокальные метки могут состоять из любого числа символов, но только 32 символа будут значащими. Метки ставятся в любой колонке, если имя оканчивается двоеточием. Если двоеточие не используется, метка должна начинаться с первой колонки. Большие и маленькие буквы считаются различными.

 

Локальные метки. Локальные метки могут использоваться подобно нелокальным меткам. Различие в том, что локальная метка определена только между нелокальными меткам. Когда программа переходит от одной локальной зоны к другой, имя локальной метки используется повторно. Эта особенность используется для меток, вызываемых только в локальной области, как описано выше, и новые имена меток не требуются. Ассемблер определяет локальные метки по символу доллар в начале или конце имени. Этот идентификатор может быть изменен с помощью директивы LLCHAR.

 

Старший байт. Для загрузки старшего байта 16-битной величины используется арифметический символ " больше чем" " > ". Это позволит битам с 8 по 15 использоваться в качестве байта, величина которого смещена.

 

Младший байт. Для загрузки младшего байта 16-битной величины используется арифметический символ " меньше чем" " < ". Это позволит битам с 0 по 7 использоваться в качестве байта, величина которого смещена.

 

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

ДИРЕКТИВЫ АССЕМБЛЕРА

Эта часть описывает директивы Ассемблера, которые позволяют управлять процессом компиляции. Полный перечень директив Ассемблера занимает 65 страниц, поэтому в данном разделе приводятся наиболее употребляемые и необходимые директивы.

 

ORG VALUE

Устанавливает адрес программы. Если директива не выполнена адрес по умолчанию устанавливается в 0000.

 

END VALUE

Эта директива отмечает конец программы или подключенного файла. Выражение, следующее за END - дополнительное, и если существует, то указывает стартовый адрес программы. Этот адрес заносится в выходной файл, если в выходном формате существует тип записи стартового адреса.

 

LABEL: DB VALUE

Ассемблер помещает величины в последовательные ячейки памяти. Если после директивы не следует выражение, один байт резервируется и обнуляется. Метка является необязательной.

 

 

LABEL: DW VALUE

Эта директива помещает 16-битные величины в память. Несколько слов могут быть заданы, записав несколько выражений через запятую. Если выражение не дано, резервируется и обнуляется одно слово. Метка не является обязательной.

 

LABEL: LONG  VALUE

Эта директива помещает 32-битные величины в память. Несколько слов могут быть заданы, записав несколько выражений через запятую. Если выражение не дано, резервируется и обнуляется одно слово. Метка не является обязательной.

 

LABEL: DS SIZE, VALUE

Эта директива резервирует фиксированное число байт, определяемое величиной SIZE. Никакие величины не запоминаются в резервируемой области.

 

LABEL: EQU VALUE

Присваивает имени LABEL значение VALUE. VALUE может быть другим символом или разрешенным математическим выражением.

 

LABEL: VAR VALUE

Присваивает имени LABEL значение VALUE, но значение может изменяться по тексту программы. Имя, определенное как VAR, не следует переопределять директивой EQU.

 

RADIX < значение>

Основание     Значение

2 или B          Двоичное

8 или O или Q Восьмеричное

10 или D     Десятичное

16 или H     Шестнадцатеричное

Отсутствие выражения означает возврат к стандартному (используемому по умолчанию) режиму (т.е. с основанием системы счисления 10); при этом подразумевается, что все другие системы счисления будут обозначаться с помощью литер B, Q, D или H после константы. Следует отметить, что при задании основания системы счисления 16 не существует способа описания десятичного или двоичного числа, поскольку как литера D, так и литера B являются допустимыми шестнадцатеричными цифрами.

 

INCLUDE < имя-файла>

Указывает ассемблеру включить данный файл в процесс ассемблирования. Имена файлов могут включать в себя маршрутные имена. Расширения имен должны задаваться полностью. Вложенное включение файлов не допускается.

 


Поделиться:



Последнее изменение этой страницы: 2019-04-09; Просмотров: 250; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.013 с.)
Главная | Случайная страница | Обратная связь