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