Программирование в среде IS-DOS 1993 г.

Элементы и основные конструкции языка - формат оператора ассемблера. Поле метки. Поле операции. Поле операнда. Поле комментария.


2.ЭЛЕМЕНТЫ И ОСНОВНЫЕ КОНСТРУКЦИИ ЯЗЫКА.

2.1,Формат оператора ассемблера.

Исходная программа состоит из строк-операторов или комментариев, набирается в IS-D0S редакторе (одно из
достоинств и удобств). Каждая строка содержит не более одного оператора языка ассемблер и имеет длину не более
256 символов (включая управляющие коды). Ограничителем строки служит код 13 (конец строки). Пустые строки до-
пустимы и не влияют на процесс трансляции.

Оператор может содержать до четырех полей. Назначение этих полей определяется порядком их появления и/или
разграничительными знаками между ними.Формат оператора имеет вид:

[МЕТКА:][ОПЕРАЦИЯ ОПЕРАНДУ][;КОММЕНТАРИЙ]

Двоеточие после метки не обязательно, если метка начинает строку (не отделена от начала пробелами или та-
булятором) .

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

2.1.1.Поле метки.

В поле метки могут находится метки, константы (символы, определенные с помощью директивы EQU) и команды
управления листингом трансляции ( о них см. ниже).

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

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

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

Значение, присвоенное метке, может быть сразу переопределено в этой же строке директивой прямого присваи-
вания EQU (см. п.4.). В этом случае символ будет определен как константа. Но любой символ, уже определенный в
одной из строк транслируемого модуля, не может быть переопределен в другой строке в пределах области видимости
данного символа (об области видимости символа п.3.2.) Это вызывает появление ошибки *Error*4.

Следующие знаки кодировки ASCII допускаются в символах-метках и символах, определяемых через директиву EQU:

1.Точка, код #2С.

2.Цифры от 1 до 9, коды #31-#39. Но цифрами нельзя начинать метку.

3.Заглавные буквы латинского алфавита от А до Z, коды #41-#5А.

4.Специальные знаки: $ [ ] ~ _ коды #5В-#60.

5.Строчные буквы латинского алфавита от а до z, коды #61-#7А.

Также допускаются знаки русского алфавита альтернативной кодировки ГОСТа (если не действует ключ трансля-
ции /RUS или директива .RUS-)

6.Заглавные буквы русского алфавита от А до Я, коды #80-#8F и #F0.

7.Строчные буквы русского алфавита от а до я, коды #A0-#AF, #E0-#EF и #F1.

При встрече команды управления листингом ассемблер сразу выполняет ее, а, встретив определяемый символ,
запоминает его в буфере до анализа поля операции.

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

Это поле может содержать мнемоническое изображение инструкции Z80, директиву ассемблера или макрокоманду.

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

Если поле не содержит директиву EQU, ассемблер определяет символ в поле метки как метку, т.е. присваивает
ему значение программного счетчика, а в противном случае сразу запускается директива EQU, и символ определяет-
ся как константа.

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

2.1.3.Поле операнда.

Для операторов ассемблера - мнемоник инструкций Z80, операндами может быть одна из допустимых комбинаций
из круглых скобок, выражений и символов регистров Z80, где круглые скобки используются для задания типа адре-
сации.

Ассемблер поддерживает трансляцию всего стандартного набора мнемоник Z80, но накладывает определенное ог-
раничение на стандарт записи операндов, содержащих индексные регистры IX и IY. Так в аргументах типа (1Х+выра-
жение),(IY+выражение) символы регистров обязаны стоять на первом месте, сразу после открывающих круглых ско-
бок. Это пришлось сделать из-за усложнения, по сравнению с GENS4, структуры выражений, допустимых в ассемблере.

После анализа поля операндов ассемблер окончательно идентифицирует команду Z80 с помощью таблицы постоян-
ных символов языка. При неудачной идентификации возможны следующие сообщения об ошибках:
*Еггог*29 - мнемоника поля операции не допускает операнды.
*Еггог*30 - операнды не подходят мнемонике поля операции.
Для операторов ассемблера - директив, вид операндов и их число определяется для каждой директивы по-своему
(см. п.4.).

Аргументы в поле операнда отделяются друг от друга запятой.

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

Поле комментария не воздействует на процесс трансляции и может начинаться в любом месте строки со знака
";". После этого поля в строке уже не может идти никаких полей. В поле комментария можно использовать любые
символьные знаки.Ассемблер лишь проверяет наличие кода 13 для завершения комментария и начала новой строки.




СОДЕРЖАНИЕ:


  Оставте Ваш отзыв:

  НИК/ИМЯ
  ПОЧТА (шифруется)
  КОД



Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
От автора #2 - Пришел мой судный день, и я пишу эту часть статьи, и окромя меня никто в этом не виноват...
Розыск - Привет всем, ктo решил кoму тo пoмoчь!
Gameland - прохождение игры The Price of Magik от Level 9.
Обратная связь - контакты редакции.
От редакции - небольшое лирическое отступление.

В этот день...   28 марта