Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Motorola HC11DESC_R.DOC
Скачиваний:
2
Добавлен:
15.08.2019
Размер:
1.4 Mб
Скачать

Приложение 11 Кросс-ассемблер

Программное обеспечение системы разработки включает программу as11.exe, являющуюся кросс-ассемблером, работаю­щим на IBM-PC совместимых компьютерах. С помощью этой программы можно подготавливать программное обеспечение для последующей загрузки его в микроконтроллер MC68HC11.

As11 является классическим двухпроходным ассемблером. На первом проходе создается таблица символов (до 2000 8-байтных символов), на втором проходе генерируется код.

Командная строка:

as11 file1 [file2 ...] [-<opt1> <opt2> ... ],

где file1, file2 - входные файлы, а <opt1>, <opt2> - опции.

Возможные опции:

l - разрешение генерации листинга программы

nol - запрещение генерации листинга программы

cre - генерация таблицы перекрестных ссылок

s - генерация таблицы символов

c - разрешение указания времени выполнения инструкций в листинге

noc - запрещение указания времени выполнения инструкций в листинге

Листинг программы генерируется на стандартный вывод.

В процессе работы ассемблер формирует файл с тем же именем, что и у первого из входных файлов, и расширением .s19. Этот файл будет содержать код программы в формате S-RECORD, готовый для загрузки в систему разработки.

Константы

Константы определяются одним из следующих образов:

число - десятичная константа

$число - шестнадцатиричная константа

@число - восьмиричная константа

%число - двоичная константа

'символ - ASCII значение символа

Выражения

Выражение может состоять из символьных имен, констант или символа '*', обозначающего текущее значение счетчика команд, объединенных операторами +-*/%&|^, означающими:

+ - сложение

- - вычитание

* - умножение

/ - деление

% - остаток от деления

& - побитовое И

| - побитовое ИЛИ

^ - побитовое ИСКЛЮЧАЮЩЕЕ ИЛИ

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

Псевдооператоры

BSZ <n> (Block Store Zeroes). Резервирует блок памяти размером <n> байт и заполняет его нулями.

EQU Присваивает значение выражения символь­ному имени. Например:

Zero EQU 0

FCB (Fill constant byte). Резервирует место под байтовые инициализированные переменные. Например:

FCB 1,1 - резервирование двух байт и инициализация их единицами.

FCC (Fill character constant). Размещает строку символов. Например:

String: FCC 'This is a string'

FDB (Fill Double byte). Резервирует место под двухбайтовые инициализированные переменные. Например:

FCB $5555,$AAAA - резервирование двух двухбайтных слов и инициализация их значениями $5555 и $AAAA соответственно.

FILL <val>,<n> Резервирование места под <n> байт памяти и инициализация их значением <val>.

OPT <параметр> Переключает режимы работы. Возможные параметры:

nol Выключает генерацию листинга

l Включает генерацию листинга

noc Запрещает указание времени выполнения инструкций в листинге

c Разрешает указание времени выполнения инструкций в листинге (со сбросом счетчика общего времени выполнения

contc Разрешает указание времени выполнения инструкций в листинге (без сброса счетчика общего времени выполнения

cre Включает печать таблицы перекрестных ссылок

s Включает печать таблицы символов

ORG Установка счетчика команд.

PAGE Переход на новую страницу в листинге

RMB <n> Резервирование места под <n> неини­циализированных байт.

ZMB (Zero Memory Bytes). То же, что и BSZ

Символьные имена

Символьным именем считается последовательность символов, не начинающаяся с цифры или знака '$'. В строке разрешены символы [a-z][A-Z]_.[0-9]$. Строчные и прописные буквы различаются. Максимальная длина строки равна 15.

Метки

Меткой считается символьное имя, начинающееся с первой позиции текстовой строки и, возможно, оканчивающееся двоеточием ':'.

Мнемоники

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

Операнды

Операнды отделяются от мнемоники команды как минимум одним пробельным символом. Между собой операнды разделя­ются пробельными символами. Индексная адресация обознача­ется символом ',', например, LDAA 5,X. Можно явно указывать прямую и расширенную адресации с помощью символов '<' и '>', например, LDAA >$0 означает обращение к памяти по адресу 0 посредством расширенного режима адресации.

Пробельные символы

Пробельными считаются символы пробела и табуляции.

Комментарии

Символы строки после операндов инструкции, строки, начинающиеся с символа '*', а также пустые строки считаются комментариями.

Продолжение строк

Если строка оканчивается символом '\', то следующая строка считается продолжением текущей. Максимальная длина строки (считая все ее продолжения) не меньше 256.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]