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

Директивы ассемблера - директивы с синтаксисом GENS4. Директивы условной трансляции. Новые для GENS4 стандарта директивы.


4.ДИРЕКТИВЫ АССЕМБЛЕРА.

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

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

4.1.Директивы с синтаксисом GENS4.

ENT выражение

игнорируется.

ORG выражение

- помещает значение выражения в качестве адреса компоновки по умолчанию в описатель объектного файла.
Выражение не должно быть внешним и должно иметь абсолютное значение, иначе, при трансляции этой ди-
рективы, возникнет ошибка 42.

EQU выражение

- присваивает значение выражения символу, стоящему в поле метки. Выражение может содержать неопреде-
ленные ранее символы (метки и "EQU" константы), но все они,так или иначе, должны быть определены в
транслируемом модуле (т.е. как метки и "EQU" константы) к концу трансляции .

В противном случае возникнет ошибка 13 в строке, где используется этот определенный через EQU
символ.

4.1.1.Директивы размещения блоков данных.

DEFB выражение[,выражение,...]

- последовательно размещает 8-разрядные значения выражений, начиная с адреса,указанного программным

счетчиком адресов($), увеличивая его значение на 1 для каждого нового выражения.

DEFW выражение[,выражение,...]

- последовательно размещает 16-разрядные значения выражений, начиная с адреса,указанного программным

счетчиком адресов($), увеличивая его значение на 2 для каждого нового выражения.

DEFM "string"

- последовательно размещает коды символьных знаков, заключенных в парные ограничители, начиная с адре-
са, указанного программным счетчиком ($).

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

DEFS выражение

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

Выражение не должно быть внешним и должно иметь абсолютное значение, иначе, при трансляции этой ди-
рективы, возникнет ошибка 42.

4.1.2.Директивы условной трансляции.

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

IF выражение

- выключает трансляцию, если значение выражения равно 0. Во всех остальных случаях на трансляцию не
влияет.

ELSE - выключает трансляцию, если она работала и, наоборот, включает, в случае, если она была подавлена.
END - включает трансляцию.

4.2.Новые для GENS4 стандарта директивы.

Все директивы, не вошедшие в GENS4, (а также системные макросы и системные глобальные символы) начинаются
с точки. Это сделано для того, чтобы избежать совпадения идентификаторов последующих версий ассемблера и сис-
темных библиотек с идентификаторами пользовательских программ и библиотек. В связи с этим не рекомендуется ис-
пользовать точку в глобальных символах и идентификаторах макросов Ваших программ.

.RUS- запрещает использование русских букв в символах, определяемых пользователем (в метках, константах и
макрокомандах) до встречи директивы .RUS+.
Русский буквы будут вызывать появление ошибки *Еггог*22.

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

4.2.1.Директивы, управляющие листингом трансляции.

.CODE выражение

определяет поле данных в листинге трансляции равным значению выражения. Выражение должно иметь абсо-
лютное значение (противный случай вызовет ошибку *Еггог*42). Старший байт значения выражения игно-
рируется, а младший ,при значении > 52*3, заменяется на это значение.

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

Но если трансляция запрещена, то эти директивы игнорируются, а наличие форматированной строки пррграммы в
листинге определяется, как обычно,действием команд *IF+(-) или ключей /+if(/-if) и др.

.EMPTY выражение

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

Выражение должно иметь абсолютное значение (противный случай вызовет ошибку *Еггог*42). Старший
байт значения выражения игнорируется, а младший, при значении 0 интерпретируется как 256.

.HEAD string

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




СОДЕРЖАНИЕ:


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

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



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

Похожие статьи:
Интервью - Московский музыкант и программист KSA.
SOFTWARE - Люди, как боги: сценарий к игре Elite III
Help for games - почему люди играют?
PC и Spectrum - Unreal vs ZX Mak: сравнение двух популярных эмуляторов ZX Spectrum.
Фэнтези - новелла по игре "SAMURAI WARRIORS".

В этот день...   24 ноября