Чтение регистра оверлеев:
dreg = DMOVLAY;
Запись в регистр оверлеев:
DMOVLAY = dreg;
Чтение из памяти данных (прямая адресация):
reg = DM (<addr>);
Чтение из памяти ввода/вывода (прямая адресация):
dreg = IO(<addr>);
Символьная запись <addr> для команд ввода/вывода может принимать значения адреса в диапазоне от 0 до 2048, а для команд обращения к памяти данных от 0 до 16383 (0x3FFF).
Вместо записи dreg могут быть использованы регистры: AX0, АХ1, AY0, AY1, AR, MX0, МХ1, MY0, MY1, MR0, MR1, MR2, SI, SE, SR0, SR1.
Вместо записи reg могут быть использованы все регистры dreg и регистры: I0–I7, M0–M7, L0–L7, TX0, ТХ1, RX0, RX1, SB, PX, ASTAT, MSTAT, SSTAT(только чтение), IMASK, ICNTL, IFC (только запись), CNTR, OWRCNTR (только запись).
Примеры команд пересылки данных:
AX0=АХ1; {Переслать содержимое регистра AX1 в AX0}
AY0=0xA37F; {Загрузить в регистр 16-разрядное число 0xA37F}
AY0=DM(1247); {Прочесть данные из ячейки памяти с адресом 1247 в регистр AY0}
PM(I7, M7) = AX0; {Записать в память программ значение регистра AX0,
используя индексные регистры I7 и M7}
Ниже приведен пример подпрограммы реверсирования разрядов адреса. Данная программа служит для размещения данных по адресам, в которых изменен нормальный порядок разрядов на обратный порядок.
.MODULE scram;
{
Вход: Буфер данных input
Выход: Буфер данных output
Используемые регистры: I0, I4, M0, М4, AY1
}
.CONST N=1025, mv=H#0010; {Инициализация констант mv=16384/N}
.EXTERNAL input, output;
.ENTRY scramble;
scramble: I4=^input; {I4 присвоить адрес начала буфера входных данных}
I0=^output; {I0 присвоить адрес начала буфера выходных данных}
M4=1;