Кросс-ассемблер X8051

Кросс-ассемблер X8051 работает в среде операционной системы MSDOS (версия не ниже 3.30) и дает пользователю возможность преобразовывать исходные модули МК-программ, написанные на языке АСМ51 и содержащие не более 30000 строк, в эквивалентные объектные модули, которые впоследствии могут быть скомпонованы с другими объектными модулями и настроены на определенное адресное пространство памяти программ МК кросс-редактором связей Link.

Основные функции кросс-ассемблера X8051:

- синтаксический и семантический контроль исходного модуля

МК-программы;

- преобразование (трансляция) исходного текста в объектный код;

- формирование листинга трансляции.

Работа кросс-ассемблера начинается с запуска файла x8051.exe и ведется в диалоговом режиме. Сразу после запуска указанного файла на экран выдается заголовок, а затем запрос на вывод листинга с указанием ключей:

Listing Destination (N, T, D, E, L, P, <CR>=N):

 

где

N - не выводить;

T - выводить на терминал;

D - выводить на диск;

E - выводить только ошибки;

L - выводить листинг (вкл./выкл.);

P - выводить на принтер;

<CR> - равносильно "N".

Если ответить "D" или "P", то задается вопрос - выводить ли таблицу перекрестных ссылок:

 

Generate Cross Reference ? (Y/N <CR>=N):

 

где Y - да, N - нет.

Если ответить "L" (вывод листинга контролируется директивами LIST, NLIST языка АСМ51), то выводится дополнительное сообщение:

 

LIST ON/OFF Listing Destination (T, D, P, <CR>=T):

 

где значение ключей остается прежним.

Если ответить "E" (в листинг будут выводиться только ошибки), то выводится дополнительное сообщение:

 

Error Only Listing Destination (T, D, P, <CR>=T):

 

где значение ключей остается прежним.

Затем запрашиваются имена входного и выходного файлов:

 

Input Filename:

Output Filename:

 

Если расширение входного файла (исходного модуля МК-программы) не указано, то оно по умолчанию принимается равным .asm. Расширение выходного файла (объектного модуля МК-программы) по умолчанию равно .obj. Если не указано имя выходного файла, то ему присваивается имя входного файла с расширением .obj. Файл листинга трансляции имеет расширение .lst. Таблица перекрестных ссылок, в случае ее вывода, заносится в файл листинга.

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

Пример листинга трансляции (файл prim.lst):

 

2500 A.D. 8051 Macro Assembler - Version 4.02a

Input Filename: prim.asm

Output Filename: prim.obj

 

1 0000 75 F0 64 BINBCD MOV B,#100

2 0003 84 DIV AB

3 0004 F9 MOV R1,A

4 0005 74 0A MOV A,#10

5 0007 C5 F0 XCH A,B

6 0009 84 DIV AB

7 000A C4 SWAP A

8 000B 25 F0 ADD A,B

9 000D F8 MOV R0,A

10 000E 22 RET

 

Lines Assembled: 10 Assembly Errors: 0

 

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