≡ Передовица » Software » Языки программирования » ASM+
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. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * |