Цитата Сообщение от aprisobal
Spectre, скобками {..} берётся 1 байт из памяти или 2 байта?
Слово.

А вообще вот фирменное описание Аласма (усеченное Alone Coder'ом до нескольких страниц). Это часть касающаяся команд и синтаксиса:

Код:
 4. ДИРЕКТИВЫ АССЕМБЛЕРА
		ORG адрес[,страница]
Установка адреса компиляции. По умолчанию параметр "страница"
старый, в начале компиляции =0.
метка EQU значение
Присваивает метке значение, эквивалентное параметру "значение".
		DISP адрес
Установка адреса, в котором должна работать программа.
		ENT
Присвоение адресу работы программы текущего адреса компиляции.
Пример:
SCREEN EQU #4000
		ORG #8000
		LD HL,BEGIN			 ;Пересылка в область экрана
		LD DE,SCREEN			;и запуск программы ожидания
		LD BC,END-BEGIN		 ;[A] прерываний
		LDIR
		CALL SCREEN
		DI
		HALT
BEGIN DISP SCREEN
MARKA DEC A
		HALT
		JP NZ,MARKA			 ;JP не случайно
		RET
	 ENT
END
Текущее смещение компиляции (shift=org-disp) узнают так:
a	 ORG 0
		ENT
shift ORG a+shift
		DISP a
		INCLUDE "drv:имя файла"[,страница]
Включение в компилируемый файл дополнительного исходника,
лежащего на диске под именем "имя файла". При этом указанный
файл загружается в страницу, определенную параметром "страница"
(по умолчанию - текущая). По окончании компиляции включенного
блока компиляция продолжается со строки, следующей после данной
директивы. Файл не будет загружаться с диска, если
он уже находится в необходимой странице. "" - любой файл.
Пример:
		LDIR
		INCLUDE "TOKENIZE",1
		OTDR
		INCLUDE "ALASM2"
		HALT
Сначала будет откомпилирован LDIR, потом текст "TOKENIZE.H",
загруженный в страницу 1, потом OTDR, затем в тек.страницу
будет загружен и откомпилирован текст "ALASM2.H", после чего
с диска будет считан основной файл и компиляция продолжится
с команды HALT.
		MAIN "имя файла"[,страница]
Указание основного файла компиляции. Директива MAIN должна быть
первой исполнимой директивой подчиненного файла.
Символы "." и "*" заменяйте на "?".
Пример:
		MAIN "MAKE6?7",6
		LDIR
После подачи команды ASSEMBLE компиляция передается
программе MAKE6*7, находящейся в странице 6,
затем находящийся в ней INCLUDE вызывает подчиненную
программу, состоящую из директивы MAIN и команды LDIR.
Во включаемых файлах MAIN игнорируется, поэтому после
ассемблирования LDIR происходит возврат назад и
продолжение компиляции.
		INCBIN "дисковод:имя файла"[,длина]
Включение в компилируемую программу кодового блока с диска
размером "длина" байт или по умолчанию из данных каталога.
		DUP число
Указывает начало блока, который необходимо компилировать
"число" раз подряд
		EDUP
Указывает конец повторяемого блока. Возможна вложенная
конструкция.
Пример:
	 DUP 32
		LDI
		LD A,B
		OR C
		JR Z,$+3
		LD (HL),D
	 EDUP
Блок между DUP и EDUP откомпилируется 32 раза
		REPEAT
		<тело>
		UNTIL <выражение>
Компилирует <тело> до тех пор, пока <выражение> не 0
		DB байт[,список байт]
Пример:
		DB "У",13,10,"попа",13,10,"была",13,10,"собака",13,10
		DEFB "она съела",13,10,"попа факу..."
		DW слово[,список слов]
Пример:
		DW ALASKA,BUFFER,12,#BD15,32767,.NUMB1
		DEFW 12345,34567
		DS количество повторений[,список байт]
Список байт (по умолчанию нулевой байт) копируется в текущий
адрес компиляции. Число циклов = "количество повторений".
Пример:
		DS 10,#E5
		DEFS 32,#ED,#B0
		DD [#]hexбайт[hexбайты]
Плотное хранение шестнадцатиричных чисел.
		DD 1D4FDC42
эквивалентно
		DB #1D,#4F,#DC,#42
		+<нечто>
ОПАСНО ПРИ ДЛИНЕ СТРОКИ=#2C..#2F!
При загрузке текста с диска он сканируется на наличие в нем "+"
в начале каждой строки. В процессе компиляции все встреченные
"+" будут заменены на "-", что заставит компилятор пропускать
строки при следующем ассемблировании.
Пример:
		LD HL,#DB00
		 +SAVEADR
		 + ORG #DB00,7
+		 INCBIN "sts70r"
+	 ORG SAVEADR
		JP (HL)
отладчик загрузится только при первой компиляции
метка=выражение
(Пере)присвоение значения метке.
Пример:
SHLUSS=0
		ORG 32768
		DUP #4000
		DEFW SHLUSS
SHLUSS=SHLUSS+1
		EDUP
память выше #8000 заполнится увеличивающимися словами 0..16384
		IF <выражение>
		<тело1>
		ELSE
		<тело2>
		ENDIF
Если <выражение>=0, то компилируется <тело1>, иначе <тело2>
		IFN <выражение>
		<тело1>
		ELSE
		<тело2>
		ENDIF
То же, но наоборот.
Допускается вложенность условной компиляции (до 254)
		LOCAL
		<тело>
		ENDL
Объявление локальных меток. Все метки в пределах этой
операторной скобки будут невидимы вне ее (кроме меток,
начинающихся с символа @ - это глобальные метки). Допускаются и
вложенные конструкции.
Если в пределах локальных меток определять метки с именами,
к которым обращались раньше этой конструкции, то такие метки
будут глобальными:
		LD HL,LABEL
		LOCAL
LABEL
		ENDL
		MACRO <имя_макросa>
		<тело>
		ENDM
Определение макроса.
В теле макроса:
\0..\9 - параметр номер 0,1,2,..9
\C - текущий символ
\N - перейти на следующий символ (ничего не выдает)
\R - установить указатель на начало строки параметров
\S<char> - строка от текущего символа до символа <char>
\P - сдвинуть строку параметров на один параметр. Выдает
съеденный параметр. \R возвращает, как было.
		<имя_макроса> [параметр1[,параметр2[...]]]
Использовать макрос.
Разделитель параметров - запятая
(заключенная в кавычки не считается).
		MACRO DOWN
		LOCAL
		INC \C
		LD A,\C
		AND 7
		JR NZ,LABEL
		LD A,\N\C
		SUB #E0
		LD \C,A
		JR NC,LABEL
		LD A,\R\C
		SUB 8
		LD \C,A
LABEL
		ENDL
		ENDM
Теперь мы можем процедуры DOWN HL и DOWN DE компилировать по их
именам - DOWN HL, DOWN DE и т.д.
Пользуясь условиями типа
		IF " "-" \1"
или
		IF ?macroname\1-2
можмо определять макросы с переменным числом параметров.
		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"
		DISPLAY "Баран жевал "
		DISPLAY /L,"травКу"
		DISPLAY /A,/T,abc+xyz
эквивалентно
		DISPLAY /A,"abc+xyz",abc+xyz
Половинки IX и IY: HX,HY,LX,LY.
Можно: INF;SLI;OUT (C),0;EXA;EXD;JZ;JNZ;JC;JNC
LD L,0,H,'fnt и т.п.
5. Выражения
Считаются слева направо без приоритетов (кроме скобок).
a+b
a-b
a*b
a/b
a&b - AND
a|b - OR
a!b - XOR
a>b - циклич.сдвиг слова a на b бит вправо
a<b - влево
() - скобки (сначала рассчитываются они)
{a} - слово, находящееся в памяти по адресу a
a~ - инвертирование текущего результата
?метка - возвращ. 0, если метка определена, #ffff, если не
	определена, и 1, если не определена, но к ней было уже
	обращение. Если метка - название макроса, то 2.
'a - ст.байт a
.a - мл.байт a
%const двоичная
$$ - текущая страница кода
Как узнать страничку компилируемого исходника
и адрес компилируемой строки (из макроса нельзя)
ORG #C0E1,2
DISPLAY {$}-#C040,"/pg",.{$+2}
Как определить, не из mkace ли мы запущены
ORG #FF32,2
IF {4>4+{$}}-#BF43
make		 ;mkace!
ENDIF
Во всех операциях, кроме + и -, не допускается использование
меток, которые будут определены ниже (из-за однопроходности)