Цитирую из описания аласма:
1. include "filename.ext",2048
Включение в компилируемую программу кодового блока с диска размером "длина" - очень нужно
2. DS количество повторений[,список байт]
Список байт (по умолчанию нулевой байт) копируется в текущий
адрес компиляции. Число циклов = "количество повторений".
- что-то похожее, думаю, уже есть ?
3. При загрузке текста с диска он сканируется на наличие в нем "+"
в начале каждой строки. В процессе компиляции все встреченные
"+" будут заменены на "-", что заставит компилятор пропускать
строки при следующем ассемблировании.
- не очень важно
4. LOCAL
<тело>
ENDL
Объявление локальных меток. Все метки в пределах этой
операторной скобки будут невидимы вне ее (кроме меток,
начинающихся с символа @ - это глобальные метки). Допускаются и
вложенные конструкции.
- это и есть аналог PROC ?
5. DISPLAY [/L,]["any text",][[/D|/H|/A,][/T,]выражение]
Отображает текст или числа в процессе ассемблирования. Ключи
/D, /H и /A устанавливают формат вывода для одного следующего
числа. Далее числа выводятся в текущей системе счисления. /D -
десятичное число, /H - шестнадцатиричное, /A - в обеих
системах.
/L указывает, что необходимо печатать не с новой строки.
/T выводит сначала само выражение, потом его значение.
Примеры:
DISPLAY "code size: ",/D,end-start
DISPLAY /A,"abc+xyz=",abc+xyz
DISPLAY "simple"," text"
6. Выражения
{a} - слово, находящееся в памяти по адресу a
$$ - текущая страница кода
Теперь проблемы, о которых говорил АлКо:
Во всех операциях, кроме + и -, не допускается использование
меток, которые будут определены ниже (из-за однопроходности)
- бывает, кстати. В emuZasme такого нет ?