Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабы / motorola / 68LAB1.DOC
Скачиваний:
29
Добавлен:
16.04.2013
Размер:
249.25 Кб
Скачать

Запуск и работа ассемблера.

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

Кросс-ассемблер создает создает объекный файл, содержащий машинные коды программы и записанный в формате S-record (описание формата S-records приведено в конце данного раздела). Этот файл имеет расширение "Н68" и располагается в пользовательской директории.

Для запуска программы на модуле SBC68K необходимо переписать объектный файл в ОЗУ модуля. Для этого необходимо нажать клавишу F9, после чего сервер выдаст сообщение о том, что он готов к загрузке и ожидает команду от SBC68К. Далее комбинацией Ctrl-A производится выход из прозрачного режима и возврат в TUTOR. Загрузка объектного кода из сервера в ОЗУ производится командой LO ;= , после чего программа загружается в память модуля.

В процессе ассемблирования программа может создавать файл листинга, содержащий наряду с мнемоникой команды и объектный код, генерируемый кросс-ассемблером. Пример строки листинга приведен ниже:

0000102E 22D8 200 LOOP MOVE.L (A0)+,(A1)+

Первые восемь шестнадцатеричных цифр указывают на местоположение объектного кода $22D8. Далее следуют номер строки мнемоники и сама команда. Помните, что команда не должна быть длинее 80 символов, а вся строка листинга - 132 символов.

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

Кросс-ассемблер. Формат записи программы.

Входным файлом для ассемблера является файл, подготовленный в текстовом редакторе и содержащий команды, директивы ассемблера, метки и комментарии. Каждая строка файла может иметь размер до 256 символов, однако, рекомендуется записывать не более 80. Строчные и заглавные буквы являются для ассемблера одинаковыми.

Каждая строка включает в себя несколько полей, отделяемых друг от друга любой комбинацией пробелов и табуляций:

МЕТКА КОМАНДА ОПЕРАНД,ОПЕРАНД,... КОММЕНТАРИИ

Например:

LOOP MOVE.L (A0)+,(A1)+ Sample source line

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

Поле метки

Запись имени метки подчиняется правилам записи имен, описанным в параграфе "Имена". Метка распознается, если она начинается с первой позиции строки. Строка может состоять только из одной метки. При ассемблировании метке ставится в соответствие адрес ячейки памяти равный содержимому локальному счетчику. Имя метки может использоваться в программе для ссылки на эту ячейку.

Поле операции

В поле операции записывается команда процессора или директива ассемблера. В команде, если разрешено, может указываться размер обрабатываемых данных (.B, .W, .L, или .S). Поле операции не должно начинаться с первой позиции строки, поскольку оно может быть идентифицировано как метка.

Если метка в данной строке не нужна, строка должна начинаться с пробела(ов) или табуляции.

Поле операндов

Наличие поля операндов определяется в зависимости от используемой команды или директивы. Операнды внутри поля разделяются запятыми.

Поле комментария.

Поле комментария следует за полем операндов. Никаких специальных символов для ввода поля комментария не требуется и оно может содержать любые допустимые символы.

Комментарий может быть также введен в строку другим образом: символ звездочки ("*") в начале строки или после поля метки приведет к игнорированию содержимого строки и оно будет расцениваться как комментарий.

Имена

Именами в транслируемой строке могут быть метки константы и операнды. Первым символом в имени должна быть буква (A-Z) или точка ("."). Остальными символами могут быть буквы, знак доллара ("$"), точка (".") или подчеркивание ("_"). Имя может быть любой длины, но идентифицируются только первые 8 символов.

Выражения

Выражения могут использоваться там, где применяются числовые данные. Выражение состоит из одного или нескольких операндов (чисел или имен), объединенных операторами. Эти компоненты описаны ниже. Суммарная величина выражения или его промежуточные значения вычисляются в пределах 32 бит.

В качестве операнда в выражениях может выступать любое имя или один из следующих видов констант.

Десятичные числа.

Десятичные числа состоят из последовательности десятичных цифр (0-9) любой длины. Предупреждение появляется, если число не может быть представлено 32-битовой величиной.

Шестнадцатиричные числа.

Шестнадцатиричные числа состоят из знака доллара ("$") и, далее, последовательности шестнадцатиричных цифр (0-9 и A-F) любой длины. Предупреждение появляется, если число не может быть представлено 32-битовой величиной.

Двоичные числа.

Двоичные числа начинаются символом ("%"), за ним следует последовательность двоичных цифр (0 или 1) любой длины. Предупреждение появляется, если число не может быть представлено 32-битовой величиной.

Восьмеричные числа.

Восьмеричные числа начинаются символом ("@"), за ним следует последовательность восьмеричных цифр (0-7) любой длины. Предупреждение появляется, если число не может быть представлено 32-битовой величиной.

ASCII константы.

ASCII константы содержат от 1 до 4 ASCII-символов, заключенных в апострофы. Если необходимо использовать апостроф в качестве ASCII символа, вместо него указывается два апострофа подряд.

Если ASCII константа состоит из одного символа, то он помещается в младший байт 32-битовой величины; два символа будут размещены в младшем слове, причем первый символ помещается в старшую позицию. Если используются 4 символа, первый записывается в старший байт 32-битовой величины. При использовании 3 символов, они размещаются в трех старших байтах 32-битовой величины, при этом в младший записывается 0.

Заметим, что ASCII константы в выражениях отличаются от символьных строк в директиве DC, поскольку последние могут быть любой длины.

Соседние файлы в папке motorola