КОМАНДЫ ОБРАЩЕНИЯ К ПОДПРОГРАММЕ
В большой программе одна и та же последовательность команд часто необходима в нескольких различных местах. Вместо того, чтобы писать одну и ту же последовательность команд, используется команда.
JMS(Переход на подпрограмму)
Последовательность команд может быть записана как подпрограмма и размещена отдельно от основной программы. Команда JMS обеспечивает связь основной программы и подпрограммы.
Например, предположим, что нужно совершить переход на подпрограмму. Которая размещается в ячейках 150-170, когда основная программа достигает ячейки 100.
Программный счетчик хранит адрес следующей команды, которую надо будет выполнять. Перед выполнением JMS 150 программный счетчик содержит адрес 100. Во время выполнения команды JMS 150 он увеличивает свое содержимое, указывающий следующий адрес - 101. Команда JMS 150 считывает содержимое программного счетчика и записывает его в первую ячейку подпрограммы. Следовательно, в этот момент ячейка 150 будет содержать число 101. При выполнении подпрограммы первая ячейка (150) будет использоваться в качестве указателя для возвращения в основную программу. Далее команда JMS 150 заносит в программный счетчик адрес 151. Следовательно, управление программой передается второй ячейке подпрограммы.
Последняя команда подпрограммы обеспечивает возвращение в основную программу. Она находит адрес 101, записанный в ячейке 150, и передает управление ячейке 101. Эта команда использует косвенную адресацию.
КОМАНДЫ МИКРООПЕРАЦИЙ
Эта группа команд оперирует только с одним операндом. После выполнения операции операнд находится там же, где он находится до операции. Общая форма команд микроопераций:
OPR dst
В малой машине приемником обычно является аккумулятор, поэтому в команде он не определяется. Для некоторых команд приемником может быть регистр связи, в этом случае L добавляется к OPR:
Приемник = аккумулятор Приемник = L
OPR OPRL
Основными командами микроопераций являются: CLEAR (очистить), INCR (увеличить), COMPL (инвертировать код), ROTL (циклический сдвиг влево) и ROTR (циклический сдвиг вправо).
Команда CLEAR
Устанавливает аккумулятор в нуль:
А
Команда CLEAR L
Устанавливает регистр связи в нуль:
L
Команда INCR
Прибавляет к содержимому аккумулятора 1:
(А) + 1 → А
Команда COMP L
Инвертирует содержимое аккумулятора:
(Ā) → А
Команда COMPLL
Инвертирует содержимое регистра связи:
(L) → L
Команда ROTL
Замыкает аккумулятор и регистр связи в кольцо и сдвигает все разряды кольца на один разряд влево:
Команда ROTR
Замыкает аккумулятор и регистр связи в кольцо и сдвигает все разряды кольца на один разряд вправо.
Дата добавления: 2015-12-01; просмотров: 603;