Передовица (меню разделов)
⇓
Software
⇓
Языки программирования
⇓
ASM+
Для загрузки диска перейти в раздел The Best.
Автор: Сергей Громов. Москва.
Этот ассемблер радикально быстрее обычного ASM. Имеет команды для полуавтоматического выделения ячеек в нулевой странице и в памяти, дополнительные типы данных. Алгоритм сортировки, с помощью которого ускорен поиск символов, подсказан Сергеем Дударевым.

BEST - ассемблер 3.1
Ассемблер предназначен для использования профессиона-
льными программистами и имеет ряд преимуществ по сравнению
со штатным ассемблером, имеющимся в комплекте системы
The BEST:
- благодаря улучшенной системе хранения меток скорость
трансляции возрасла от 2 раз на маленьких программах
до 7 (!) раз на больших системах
- операторы условного ассемблирования могут быть вло-
женными. Допускается до 255 уровней вложенности. Ка-
ждый уровень должен начинаться с команды DO и
заканчиваться командой FIN
Новые операции.
- введена возможность использования отрицательных чи-
сел. Отрицательное число представляется в дополни-
тельном коде. Так, команда
LDA #-3
эквивалентна команде
LDA #$FD
- введены операции "<" (меньше), ">" (больше) и "="
(равно). Сравнивается результат вычисления выражения
слева от знака и число (метка, константа) справа от
знака. Если условие соблюдается, то результатом будет
единица, иначе - ноль. Эти операции удобно применять
в командах условного ассемблирования
- введена операция "?". Она аналогична операции "*" (в
смысле EQU *), но выдает адрес текущей строки относи-
тельно последнего ORG, игнорируя последующие LOCи:
ORG $2000
LOC $4000
LABEL EQU ?
В этом примере метке LABEL будет присвоен адрес $2000
Новые команды.
CHB (CHine Binary)
Позволяет вставлять в объектный код заранее подгото-
вленные бинарные модули, например, таблицы или блоки
спрайтов. Формат команды:
<текст программы>
[<метка>] CHB <имя файла типа B>
<продолжение программы>
В этом примере по адресу <метка> будет вставлен би-
нарный файл <имя файла>.
DFH
Позволяет вводить шестнадцатиричные числа. Цифры мо-
гут идти друг за другом без разделителей, тогда из
каждой пары цифр будет составлено число. Цифры могут
идти через разделители, тогда каждая цифра, отделен-
ная от остальных, будет считаться числом. Разделите-
лем может быть любой символ, кроме шестнадцатиричной
цифры, в том числе и пробел. Писать комментарии после
этой команды не рекомендуется.
LOC
Ее действие аналогично команде ORG, но изменение базы
ассемблирования не приводит к созданию нового файла.
ZERO и DZ
Позволяют оперировать областями данных в нулевой
странице. Описание команд:
ZERO <нач1>,<кон1>,[<нач2>,<кон2>,<нач3>,...]
Команда выделяет области памяти в нулевой страни-
це для хранения данных. Параметры:
нач1 - начало первой области,
кон1 - конец первой области (включительно),
нач2 - начало второй области и т.д.
Все параметры должны находиться в пределах от 0
до $FF. Области не могут пересекаться.
<метка> DZ <длина>
Команда выделяет область памяти длиной <длина>
в одной из объявленных областей и объявляет эту
память занятой. Выделяемая область памяти всегда
непрерывна. Сначала заполняется первая область
данных, затем вторая и т.д. Если в первой обла-
сти места нет, то проверяется область 2 и т.д.
Если нет места ни в одной из областей, выдается
сообщение об ошибке.
Пример:
1 ZERO $80,$8F,$C0,$DF
2 VAR1 DZ $06
3 VAR2 DZ $12
4 VAR3 DZ $08
5 VAR4 DZ $0F
В этом примере:
1) объявлено 2 области данных: $80-$8F ($10 байт) и
$C0-$DF ($20 байт);
2) для VAR1 есть место в области 1, поэтому для нее
выполнена команда VAR1 EQU $80;
3) для VAR2 места в 1 области нет, и эта переменная
размещается в области 2: VAR2 EQU $C0;
4) для VAR3 есть место в области 1, и выполняется
операция VAR3 EQU $86;
5) для VAR4 нет места ни в одной из областей, и вы-
дается сообщение об ошибке, хотя в сумме в обла-
стях 1 и 2 памяти хватает.
BASE и DB
Позволяют оперировать областями данных в основной па-
мяти (аналогично ZERO и DZ). Области BASE не могут
находиться в нулевой странице.
DEFASC
Позволяет в процессе ассемблирования перекодировать
текст, заданный командами ASC и REV, а также в форма-
те '<символ>', из кодов ASCII в произвольный код. Фо-
рмат команды:
DEFASC <имя файла>
Файл должен содержать таблицу перекодировки и может
иметь любой тип. Таблица строится так, чтобы в нужной
кодовой позиции стоял требуемый символ или код ASCII.
Из файла берутся первые 256 байт без контроля типа
файла. В связи с этим использование файлов типа B
нежелательно.
ASZ
Аналогична команде ASC, но в конец строки автомати-
чески добавляется 0.
Ассемблер оформлен в виде резидентной программы и пре-
дназначен для работы в среде The BEST версий не ниже 5.0.
Программа имеет встроенную подсказку. Чтобы получить ее,
нужно просто ввести команду T без параметров.
Автор доработок С.Громов
(C) 1994 USN Ltd.