| Назначение | Синтаксис | Пример использования |
| Управление размещением в памяти | ORG адрес |
ORG 10 |
| Константы и переменные | [метка:] WORD ЗНАЧЕНИЕ [, ЗНАЧЕНИЕ ...] |
XYZ: WORD ?, DEAD, BEEF |
[метка:] WORD количество DUP (значение) |
ARRAY: WORD 6 DUP (?) |
|
| Адресная команда с прямой адресацией | [метка:] МНЕМОНИКА АРГУМЕНТ |
MOV R |
| Адресная команда с косвенной адресацией | [метка:] МНЕМОНИКА (АРГУМЕНТ) |
ADD (K) |
| Безадресная команда | [метка:] МНЕМОНИКА |
BEGIN: CLA |
| Команда ввода-вывода | [метка:] МНЕМОНИКА АДРЕСВУ |
OUT 3 |
Метки, команды, их аргументы и т.п. должны быть отделены друг от друга пробелом или символом табуляции.
ORG address - указывает компилятору, что следующее значение необходимо располагать по указанному адресу. Похожа на пультовую команду "Ввод адреса". Обычно данную директиву достаточно использовать один раз в начале программы.WORD - ввод констант и резервирование памяти. Может быть указано одно или более значений. Если в качестве значения указан вопросительный знак, то соответствующая ячейка памяти остаётся неинициализированной. Если указанное значение не удалось распознать как шестнадцатеричное число, то в качестве значения будет использован адрес метки с указанным именем. При использовании в синтаксисе WORD количество DUP (значение) соответствующее значение будет продублировано указанное количество раз.BEGIN - указывает компилятору на первую выполняемую команду программы. Должна быть указана в любой программе.R - указывает на ячейку, в которой будет располагаться результат. После успешной компиляции, если в программе была обнаружена метка R, консольная версия БЭВМ выведет адрес соответствующей ячейки памяти.; или # считается комментарием.
8000 и -8000 будут интерпретированы как одно и тоже число.ORG компилятор не отслеживает возможное перекрытие частей программы. Приведённый ниже код скомпилируется без ошибок, но в памяти БЭВМ окажется некорректная программа.ORG 10 BEGIN: CLA ADD X ADD Y MOV R HLT ORG 12 X: WORD DEAD Y: WORD BEEF R: WORD ?
ORG 010 BEGIN: CLA ADD X ADD Y MOV R HLT ORG 018 R: WORD ? X: WORD DEAD Y: WORD BEEF
ORG 00F WORD 0020 BEGIN: WORD F200,480F,A017,F200,401B,F800,301B,001A,C010,F000,FFFA,0000 ORG 020 WORD 0001,FFFF,0002,FFFE,0003,FFFD
ORG 00F WORD 0020 BEGIN: CLA ADD (00F) BMI SKIP CLA ADD R INC MOV R SKIP: ISZ 01A BR BEGIN HLT WORD -6 R: WORD ? ORG 020 X: WORD 0001, FFFF, 0002, FFFE, 0003, FFFD
ORG 00F K: WORD ? ; Адрес первого элемента массива BEGIN: CLA MOV R ADD (K) BMI SKIP CLA ADD R INC MOV R SKIP: ISZ N BR BEGIN HLT N: WORD ? ; Количество элементов массива R: WORD ? ; Результат ORG 020 X: WORD 6 DUP (?) ; Элементы массива
ORG 000 RET: WORD ? BR INT ORG 010 BEGIN: CLA MOV T ADD CONST OUT 0 EI CLA INC LOOP: ROR BCS LOOP MOV R BR LOOP ORG 01C CONST: WORD 64 X: WORD 0 T: WORD ? R: WORD ? INT: MOV STOR_A ROL MOV STOR_C TSF 0 BR IO1 CLF 0 ISZ T NOP IO1: TSF 1 BR IO2 CLA ADD X OUT 1 CLF 1 IO2: TSF 2 BR IO3 CLA IN 2 CLF 2 MOV X IO3: TSF 3 BR END CLA IN 3 MOV TMP CLA ADD X OUT 3 CLF 3 CLA ADD TMP MOV X END: CLA ADD STOR_C ROR CLA CMA AND STOR_A EI BR (RET) TMP: WORD ? STOR_A: WORD ? STOR_C: WORD ?При выполнении данной программы в графической реализации эмулятора рекомендуется уменьшить задержку между тактами.