2500 A.D. Macro Assembler Version 4.02
(не знаю от куда все это брали, но номера страниц в оглавлении не совпадают с истинными)
Введение . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Инструкции . . . . . . . . . . . . . . . . . . . . . . . . . 2
Режим диалога . . . . . . . . . . . . . . . . . . . . . . 2
Режим командной строки . . . . . . . . . . . . . . . . . 4
Системные соглашения. . . . . . . . . . . . . . . . . . . . 5
Ассемблер . . . . . . . . . . . . . . . . . . . . . . . . 5
Линкер . . . . . . . . . . . . . . . . . . . . . . . . . 5
Библиотекарь . . . . . . . . . . . . . . . . . . . . . . 5
Отработка ассемблером ошибочных ситуаций . . . . . . . . . . 6
Команды управления процессом ассемблирования . . . . . . . . 7
Синтаксис языка ассемблера . . . . . . . . . . . . . . . . . 8
Определители основания системы счисления . . . . . . . . 8
Комментарии . . . . . . . . . . . . . . . . . . . . . . . 8
Программный счетчик . . . . . . . . . . . . . . . . . . . 8
Метки . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Локальные метки . . . . . . . . . . . . . . . . . . . . . 9
Старший байт . . . . . . . . . . . . . . . . . . . . . . 10
Младший байт . . . . . . . . . . . . . . . . . . . . . . 10
Строчные и прописные буквы . . . . . . . . . . . . . . . 10
ПРЕДОПРЕДЕЛЕННЫЕ ИМЕНА РЕГИСТРОВ ДЛЯ ПРОЦЕССОРА i8051 . . . 11
Режимы адресации . . . . . . . . . . . . . . . . . . . . . . 12
Непосредственная . . . . . . . . . . . . . . . . . . . . 12
Регистровая . . . . . . . . . . . . . . . . . . . . . . . 12
Косвенная . . . . . . . . . . . . . . . . . . . . . . . . 12
Прямая . . . . . . . . . . . . . . . . . . . . . . . . . 12
Относительная . . . . . . . . . . . . . . . . . . . . . . 12
Директивы ассемблера . . . . . . . . . . . . . . . . . . . . 14
Управление распределением памяти . . . . . . . . . . . . 14
ORG . . . . . . . . . . . . . . . . . . . . . . . . . 14
ORIGIN . . . . . . . . . . . . . . . . . . . . . . . . 14
END . . . . . . . . . . . . . . . . . . . . . . . . . 14
ASCII . . . . . . . . . . . . . . . . . . . . . . . . 14
DB . . . . . . . . . . . . . . . . . . . . . . . . . . 14
FCB . . . . . . . . . . . . . . . . . . . . . . . . . 14
DEFB . . . . . . . . . . . . . . . . . . . . . . . . . 14
BYTE . . . . . . . . . . . . . . . . . . . . . . . . . 14
STRING . . . . . . . . . . . . . . . . . . . . . . . . 14
DW . . . . . . . . . . . . . . . . . . . . . . . . . . 15
FDB . . . . . . . . . . . . . . . . . . . . . . . . . 15
DEFW . . . . . . . . . . . . . . . . . . . . . . . . . 15
WORD . . . . . . . . . . . . . . . . . . . . . . . . . 15
LONG . . . . . . . . . . . . . . . . . . . . . . . . . 15
LONGW . . . . . . . . . . . . . . . . . . . . . . . . 15
LWORD . . . . . . . . . . . . . . . . . . . . . . . . 15
FCC . . . . . . . . . . . . . . . . . . . . . . . . . 15
DC . . . . . . . . . . . . . . . . . . . . . . . . . . 16
DS . . . . . . . . . . . . . . . . . . . . . . . . . . 16
RMB . . . . . . . . . . . . . . . . . . . . . . . . . 16
DEFS . . . . . . . . . . . . . . . . . . . . . . . . . 16
FLOAT . . . . . . . . . . . . . . . . . . . . . . . . 16
DOUBLE . . . . . . . . . . . . . . . . . . . . . . . . 16
BLKB . . . . . . . . . . . . . . . . . . . . . . . . . 17
BLKW . . . . . . . . . . . . . . . . . . . . . . . . . 17
BLKL . . . . . . . . . . . . . . . . . . . . . . . . . 17
Макроопределения . . . . . . . . . . . . . . . . . . . . 18
EQU . . . . . . . . . . . . . . . . . . . . . . . . . 18
EQUAL . . . . . . . . . . . . . . . . . . . . . . . . 18
VAR . . . . . . . . . . . . . . . . . . . . . . . . . 18
DEFL . . . . . . . . . . . . . . . . . . . . . . . . . 18
LLCHAR . . . . . . . . . . . . . . . . . . . . . . . . 18
MACRO . . . . . . . . . . . . . . . . . . . . . . . . 18
ENDM . . . . . . . . . . . . . . . . . . . . . . . . . 18
MACEND . . . . . . . . . . . . . . . . . . . . . . . . 18
MACEXIT . . . . . . . . . . . . . . . . . . . . . . . 18
MACDELIM . . . . . . . . . . . . . . . . . . . . . . . 19
ARGCHK . . . . . . . . . . . . . . . . . . . . . . . . 19
XDEF . . . . . . . . . . . . . . . . . . . . . . . . . 19
GLOBAL . . . . . . . . . . . . . . . . . . . . . . . . 19
PUBLIC . . . . . . . . . . . . . . . . . . . . . . . . 19
GLOBALS ON . . . . . . . . . . . . . . . . . . . . . . 19
GLOBALS OFF . . . . . . . . . . . . . . . . . . . . . 20
XREF . . . . . . . . . . . . . . . . . . . . . . . . . 20
EXTERN . . . . . . . . . . . . . . . . . . . . . . . . 20
EXTERNAL . . . . . . . . . . . . . . . . . . . . . . . 20
ASK . . . . . . . . . . . . . . . . . . . . . . . . . 20
REG . . . . . . . . . . . . . . . . . . . . . . . . . 20
Режимы ассемблирования . . . . . . . . . . . . . . . . . 22
SECTION . . . . . . . . . . . . . . . . . . . . . . . 22
ENDS . . . . . . . . . . . . . . . . . . . . . . . . . 23
ABSOLUTE . . . . . . . . . . . . . . . . . . . . . . . 23
RELATIVE . . . . . . . . . . . . . . . . . . . . . . . 24
RADIX . . . . . . . . . . . . . . . . . . . . . . . . 24
INCLUDE . . . . . . . . . . . . . . . . . . . . . . . 24
CHIP . . . . . . . . . . . . . . . . . . . . . . . . . 24
SPACES ON . . . . . . . . . . . . . . . . . . . . . . 25
SPACES OFF . . . . . . . . . . . . . . . . . . . . . . 25
TWOCHAR ON . . . . . . . . . . . . . . . . . . . . . . 25
TWOCHAR OFF . . . . . . . . . . . . . . . . . . . . . 25
MODULE . . . . . . . . . . . . . . . . . . . . . . . . 25
ENDMOD . . . . . . . . . . . . . . . . . . . . . . . . 27
COMMENT . . . . . . . . . . . . . . . . . . . . . . . 27
BIT7 ON . . . . . . . . . . . . . . . . . . . . . . . 27
BIT7 OFF . . . . . . . . . . . . . . . . . . . . . . . 27
Условное ассемблирование . . . . . . . . . . . . . . . . 29
IFZ . . . . . . . . . . . . . . . . . . . . . . . . . 29
IFE . . . . . . . . . . . . . . . . . . . . . . . . . 29
IF . . . . . . . . . . . . . . . . . . . . . . . . . . 29
IFN . . . . . . . . . . . . . . . . . . . . . . . . . 29
IFNZ . . . . . . . . . . . . . . . . . . . . . . . . . 29
COND . . . . . . . . . . . . . . . . . . . . . . . . . 29
IFTRUE . . . . . . . . . . . . . . . . . . . . . . . . 29
IFNFALSE . . . . . . . . . . . . . . . . . . . . . . . 29
IFNTRUE . . . . . . . . . . . . . . . . . . . . . . . 29
IFFALSE . . . . . . . . . . . . . . . . . . . . . . . 29
IFDEF . . . . . . . . . . . . . . . . . . . . . . . . 29
IFNDEF . . . . . . . . . . . . . . . . . . . . . . . . 30
IFSAME . . . . . . . . . . . . . . . . . . . . . . . . 30
IFNDIFF . . . . . . . . . . . . . . . . . . . . . . . 30
IFNSAME . . . . . . . . . . . . . . . . . . . . . . . 31
IFDIFF . . . . . . . . . . . . . . . . . . . . . . . . 31
IFEXT . . . . . . . . . . . . . . . . . . . . . . . . 31
IFNEXT . . . . . . . . . . . . . . . . . . . . . . . . 31
IFABS . . . . . . . . . . . . . . . . . . . . . . . . 31
IFNREL . . . . . . . . . . . . . . . . . . . . . . . . 31
IFREL . . . . . . . . . . . . . . . . . . . . . . . . 32
IFNABS . . . . . . . . . . . . . . . . . . . . . . . . 32
IFMA . . . . . . . . . . . . . . . . . . . . . . . . . 32
IFNMA . . . . . . . . . . . . . . . . . . . . . . . . 32
ELSE . . . . . . . . . . . . . . . . . . . . . . . . . 33
ENDC . . . . . . . . . . . . . . . . . . . . . . . . . 33
ENDIF . . . . . . . . . . . . . . . . . . . . . . . . 33
IFCLEAR . . . . . . . . . . . . . . . . . . . . . . . 33
EXIT . . . . . . . . . . . . . . . . . . . . . . . . . 33
Управление выводом . . . . . . . . . . . . . . . . . . . 35
LIST ON . . . . . . . . . . . . . . . . . . . . . . . 35
LIST . . . . . . . . . . . . . . . . . . . . . . . . . 35
LIST OFF . . . . . . . . . . . . . . . . . . . . . . . 35
NOLIST . . . . . . . . . . . . . . . . . . . . . . . . 35
NLIST . . . . . . . . . . . . . . . . . . . . . . . . 35
MACLIST ON . . . . . . . . . . . . . . . . . . . . . . 35
MLIST . . . . . . . . . . . . . . . . . . . . . . . . 35
MACLIST OFF . . . . . . . . . . . . . . . . . . . . . 35
MNLIST . . . . . . . . . . . . . . . . . . . . . . . . 35
CONDLIST ON . . . . . . . . . . . . . . . . . . . . . 35
CONDLIST OFF . . . . . . . . . . . . . . . . . . . . . 35
ASCLIST ON . . . . . . . . . . . . . . . . . . . . . . 36
ASCLIST OFF . . . . . . . . . . . . . . . . . . . . . 36
PW . . . . . . . . . . . . . . . . . . . . . . . . . . 36
PL . . . . . . . . . . . . . . . . . . . . . . . . . . 36
TOP . . . . . . . . . . . . . . . . . . . . . . . . . 36
PASS1 ON . . . . . . . . . . . . . . . . . . . . . . . 36
PASS1 OFF . . . . . . . . . . . . . . . . . . . . . . 37
PAG . . . . . . . . . . . . . . . . . . . . . . . . . 37
PAGE . . . . . . . . . . . . . . . . . . . . . . . . . 37
EJECT . . . . . . . . . . . . . . . . . . . . . . . . 37
NAM . . . . . . . . . . . . . . . . . . . . . . . . . 37
TTL . . . . . . . . . . . . . . . . . . . . . . . . . 37
TITLE . . . . . . . . . . . . . . . . . . . . . . . . 37
HEADING . . . . . . . . . . . . . . . . . . . . . . . 37
STTL . . . . . . . . . . . . . . . . . . . . . . . . . 37
SUBTITLE . . . . . . . . . . . . . . . . . . . . . . . 37
SUBHL . . . . . . . . . . . . . . . . . . . . . . . . 37
Управление редактором связей . . . . . . . . . . . . . . 39
FILLCHAR . . . . . . . . . . . . . . . . . . . . . . . 39
RECSIZE . . . . . . . . . . . . . . . . . . . . . . . 39
SYMBOLS . . . . . . . . . . . . . . . . . . . . . . . 39
OPTIONS . . . . . . . . . . . . . . . . . . . . . . . 39
LINKLIST . . . . . . . . . . . . . . . . . . . . . . . 39
COMREC . . . . . . . . . . . . . . . . . . . . . . . . 40
Вычисления во время транслирования . . . . . . . . . . . . . 41
Сравнения во время транслирования . . . . . . . . . . . . . 42
Абсолютные и относительные адреса . . . . . . . . . . . . . 43
Макросы . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Описание макросов . . . . . . . . . . . . . . . . . . . . 45
Разделители аргументов . . . . . . . . . . . . . . . . . 45
Метки в макросах . . . . . . . . . . . . . . . . . . . . 45
Объединение строк . . . . . . . . . . . . . . . . . . . . 46
Обединение числовых величин . . . . . . . . . . . . . . . 46
Старшинство мнемонических описаний . . . . . . . . . . . 46
Примеры макросов . . . . . . . . . . . . . . . . . . . . 47
Рекурсия . . . . . . . . . . . . . . . . . . . . . . . . 49
Сообщения об ошибках ассемблирования . . . . . . . . . . . . 51
КРОС-АССЕМБЛЕР
ВВЕДЕНИЕ
Это руководство описывает пакет программ трансляторов сязыка ассемблера большой группы процессоров. За основу взят процессор семейства i8051, однако, без потери общности руководством можно пользоваться и для других процессоров, таких как i8080, i8085, z80, i8048 и др. На отдельных файлах описаны программы редактора связей (Линкера) и Библиотекаря. Пакет пригоден для работы в операционных средах Unix, MS-DOS и VMX.
ИНСТРУКЦИИ
РЕЖИМ ДИАЛОГА.
Для вызова Ассемблера напишите: x8051
Ассемблер в ответ запросит:
Listing Destination ?(N,T,D,E,L,<CR>=N).
где аббревиатуры означают следующее:
N = печати нет
T = терминал
P = принтер
D = диск
E = только ошибки
L = печать вкл/выкл
Затем Ассемблер запросит имя файла, содержащего исходные коды.
Inputfilename:
При вводе имени файла можно опустить расширение, если оно asm. Далее Ассемблер запросит имя выходного файла.
Output filename:
Если пользователь ответит возвратом каретки, имя выходного файла будет образовано из имени входного с расширением obj. Если имя файла в ответе не будет содержать расширение, то оно предполагается равным obj.
Если выдача листинга идет под управлением директивы ассемблера LIST ON/OFF, то возникает дополнительный запрос:
LIST ON/OFF Listing Destination (T,P,D,<CR>=T):
Сокращения соответствуют предыдущим.
Директива LIST ON/OFF позволяет пользователю выводить листинг исходного текста частично. Для большей информации смотрите главу "Управление выводом".
Если заказана выдача одних ошибок, то ассемблер спросит:
Error Only Listing Destination (T,P,D,<CR>=T):
Если листинг выводится на принтер (для однопользовательских систем) или на диск, то Ассемблер запросит о выдачи таблицы ссылок.
Замечания для пользователей VMS:
Предположим, что ассемблер расположен в каталоге $disk1:[x51], то следующая команда должна быть набрана:
x51=="$disk1:[x51]x8051.exe
РЕЖИМ КОМАНДНОЙ СТРОКИ.
Ассемблер может воспринимать командную строку. В этом случае имя входного файла определяется первым, дополнительно может идти имя выходного файла и список опций. Общая форма команды (необязательные поля показаны в квадратных скобках) будет следующей:
asm8051[-q]input_filename[output_filename][-t,-p,-d,-px,-dx]
Если введена опция -q, на экран выводятся только сообщения об ошибках и соответствующие строки. Эта опция должна предшествовать имени файла.
-t = вывод на терминал
-p = вывод на принтер
-x = вывод листинга с таблицей перекрестных ссылок
-d = вывод на диск
-е = вывод только сообщений об ошибках
-l = вывод блоков помеченных в тексте LIST ON/OFF
СИСТЕМНЫЕ СОГЛАШЕНИЯ.
Следующие расширения имен файлов будут использованы по умолчанию программами пакета фирмы 2550 A.D.
Ассемблер:
asm - входной файл для ассемблера
obj - выходной файл из ассемблера
pak - упакованный выходной файл
lst - файл листинга
Редактор связей (Линкер):
obj - входной файл для редактора связей
lib - библиотечный файл
tsk - исполнимый объектный код
hex - выходной формат фирмы Интел
Библиотекарь
obj - входной файл для библиотекаря
pak - упакованный входной файл
lib - выходной из библиотекаря
Отметим, что в выходной файл Ассемблера включается дополнительная информация, и Редактор связей должен быть исполнен, даже если программа размещена с требуемого адреса и не содержит внешних ссылок. При этом удаляется дополнительная информация и генерируется файл в нужном формате.
ОБРАБОТКА АССЕМБЛЕРОМ ОШИБОЧНЫХ СИТУАЦИЙ.
Действия Ассемблера при обнаружении ошибки зависят от режима работы.
Если определен режим NO LIST, на терминал выводятся ошибочные строки и соответствующие сообщения об ошибках. Вывод может быть приостановлен нажатием ^S. то дает пользователю возможность внимательно посмотреть, где находится ошибка. Ошибка может быть обнаружена и на первом и на втором проходе. Вывод на терминал может быть продолжен нажатием ^N.
Если листинг выводится на принтер или диск, ошибки обнаруженные на первом проходе выводятся на терминал а не на принтер или диск и ассемблирование не прекращается. Во втором проходе ошибки выводятся на терминал параллельно с выводом на принтер и диск.
Если листинг выводится на принтер или диск под управлением директив ассемблера, ошибки выводятся на терминал и ассемблирование продолжается. Ошибки обнаруженные при втором проходе выводятся на принтер или диск и терминал, даже если ошибка находится вне блока, определенного для вывода.
КОМАНДЫ УПРАВЛЕНИЯ ПРОЦЕССОМ АССЕМБЛИРОВАНИЯ.
Следующие команды клавиатуры отрабатываются во время ассемблирования
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.