После этого необходимо передать управление по адресу обработчика требуемого прерывания. Для этого на шину адреса следует выставить номер прерывания из RgZ, сохраняем значение в РгА. В РгД выбрать адрес обработчика, лежащий в ячейке ОЗУ, определяемой номером прерывания, копировать данные в стек и перейти к обработчику прерывания.
После этого следует сохранить в стеке содержимое регистра флагов RgF. Это действие производится аналогично сохранению в стеке содержимого программного счётчика, только вместо него на шину данных выставляется содержимое RgF.В конце алгоритма необходимо сбросить флаг прерывания IF.
5.3 Алгоритм формирования операндов для арифметико-логического устройства
Формирование операндов в данном алгоритме происходит следующим образом (рисунок приложения 3.1). Так как у нас в обоих типах команд первый операнд хранится в аккумуляторе, то сначала перепишем его значение в регистр PA. Затем определяем тип формата команды. Если тип «аккумулятор – ячейка оперативной памяти», то одним операндом всегда будет поле ячейки памяти S. Далее определяем тип адресации этого операнда. Если адресация прямая адрес ячейки ОЗУ берётся из кода команды и выставляется на шину адреса. При косвенной адресации из кода команды на шину адреса выставляется адрес, по которому из ОЗУ выбирается ячейка и начинается считывание из нее нужного адреса. Этот адрес передаем на регистр данных(РгД) и потом в RgBuf. И передаем их в регистр адреса (РгА). Из регистра адреса адрес передается на шину адреса. При относительной адресации на шину адреса выставляется сумма значений адресов из кода команды и регистра базы B. Затем производится выборка 16-ти бит из ОЗУ.
Данные, выбранные из ОЗУ, будут являться вторым операндом. Их копируем в регистр РВ.
Для типа команды «аккумулятор – регистр» сначала из кода команды выбираем номер регистра, в котором хранится адрес операнда. Этот номер выставляем на ША, далее на ШД записываем адрес, хранящийся в этом регистре. Оттуда отправляем его в РгД, затем в RgBuff и, наконец, в регистр адреса. Определяем тип адресации. При косвенной адресации из ОЗУ по адресу хранимому на ША считываем адрес ячейки памяти, в которой хранится операнд. Адрес с регистра данных передаем через буферный регистр в регистр адреса. При относительной адресации в регистр адреса выставляется сумма значений адресов из регистра адреса и регистра базы B. Затем производится выборка 16-ти бит из ОЗУ. Эти данные будут являться вторым операндом. Их копируем в регистр РВ.
В результате, у нас в регистрах РА и РВ находятся нужные нам операнды. Так как по заданию адресность равна 2, данные на обработку из этих регистров в АЛУ поступают одновременно. Далее выполняем над ними в АЛУ требуемую операцию, и результат записываем в аккумулятор А.