Отработка ассемблером ошибочных ситуаций. Команды управления процессом ассемблирования

Страницы работы

Фрагмент текста работы

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.

Если листинг выводится на принтер или диск, ошибки обнаруженные на первом проходе выводятся на терминал а не на принтер или диск и ассемблирование не прекращается. Во втором проходе ошибки выводятся на терминал параллельно с выводом на принтер и диск.

Если листинг выводится на принтер или диск под управлением директив ассемблера, ошибки выводятся на терминал и ассемблирование продолжается. Ошибки обнаруженные при втором проходе выводятся на принтер или диск и терминал, даже если ошибка находится вне блока, определенного для вывода.

КОМАНДЫ УПРАВЛЕНИЯ ПРОЦЕССОМ АССЕМБЛИРОВАНИЯ.

Следующие команды клавиатуры отрабатываются во время ассемблирования

Похожие материалы

Информация о работе