Cтраница 3
Буфер данных БД вместе со схемой управления обменом по ШД D7 - DO обеспечивает прием управляющих слов ( команд) в контроллер при программировании, а также выдачу состояний регистров контроллера и информации об адресе подпрограммы. Регистр запросов прерываний РЗП служит для запоминания всех запросов от ВУ по входам IR7 - IRO. Регистр масок прерываний РМП хранит маску, с помощью которой можно запретить обслуживание запросов по любому входу. Схема сравнения приоритетов СхСПр выбирает запрос с наибольшим приоритетом среди вновь поступивших и уже обслуживаемых запросов. [31]
Переход к подпрограмме ALTSEQ производится в рабочей программе после считывания вводной записи и перед проверкой записи на упорядоченность. Адрес подпрограммы ALTSEQ находится в регистре 15, значит, этот регистр подпрограмма может использовать в качестве базового. Перед возвратом управления рабочей программе подпрограмма ALTSEQ должна поместить преобразованные поля подбора в область хранения полей подбора. [32]
![]() |
Схема для анализа перекоса син-хронизации. [33] |
Обеспечивает пользователю возможность программно инициировать последовательность прерывания. Адрес подпрограммы обслуживания считывается из ячеек FFFA и FFFB. Эта команда удобна при отладке, так как ее можно использовать для прерывания программы в разных точках и переходить к подпрограмме обслуживания, позволяющей анализировать и модифицировать содержимое регистров и ячеек памяти. Так реализуется стандартный способ отладки, а точки в программе, где вводятся команды SWI, называются контрольными точками. [34]
При выполнении операций ввода - вывода используются 8 - или 16-битовые адреса, так что кроме доступа к основной памяти МП может обращаться к портам ( регистрам ввода - вывода), суммарная емкость памяти которых составляет 64 Кбайт. Адреса подпрограмм прерывания занимают область емкостью 1 Кбайт, которая располагается в памяти, начиная с младших адресов. Предусмотрена также организация прямого доступа к памяти, при котором МП прекращает работу и переводит в третье состояние шины адреса, данных и управления. [35]
По макрокоманде PRTOV проверяется наличие пробивки в указанной дорожке ( 9 - й или 12 - й) на управляющей перфоленте АЦПУ. Если же в макрокоманде указан адрес подпрограммы, то при наличии пробивки в данной дорожке происходит переход по адресу подпрограммы, которая обрабатывает конец страницы. [36]
Программист, осуществляя выбор системы микрокоманд, составляет набор таких микропрограмм. Вместо адреса массива ВПМК определяется адрес подпрограммы ( адрес микрокоманды), реализующей микрокоманду. Так как текст подпрограмм относительно легко читается, то этот вариант обладает большей наглядностью. [37]
В таблице кодов действия записаны адреса подпрограмм, соответствующих этим кодам. Это позволяет вводить подпрограммы нужных действий через вход общего назначения с помощью подпрограммы дешифровки клавиш. Поскольку необходимо, чтобы подпрограмма выбора действия заканчивалась возвратом на вход или в подпрограмму дешифровки клавиш, в большинстве случаев в конце подпрограммы выбора действия становится команда безусловного перехода. [38]
Команда INTn вызывает требуемую подпрограмму, как и команда CALL, однако при переходе на подпрограмму команда INTn осуществляет запоминание не только адреса возврата ( CS и IP), но и регистра флагов F. При этом выполняется межсегментный переход, причем адрес подпрограммы располагается не в формате команды или в произвольной ячейке памяти, а в специально сформированной таблице. [39]
Информацией о стандартной подпрограмме является таблица соответствия между адресами подпрограммы и условными числами, принятыми в данной задаче. [40]
Если информация для настройки собрана в карту, загрузчик сначала помещает в оперативную память программный сегмент и соответствующую карту. Затем он просматривает карту и настраивает все указанные в ней адреса подпрограммы. Далее на то же место в оперативной памяти записываются текст и карта следующего сегмента. Константа перемещения приводится в соответствие с началом вновь считанного сегмента, и весь процесс повторяется. [41]
![]() |
Структурная схема КР1810ВН59А. [42] |
Предварительно каждой ведомой микросхеме присваивается ее код ( путем записи соответствующего командного слова), равный номеру входа IRQ ведущей микросхемы, с которым соединен вывод 1NT ведомой микросхемы. IRQ, поступившим на вход ведущей микросхемы, то формирование адреса подпрограммы обслуживания осуществляется этой же микросхемой аналогично тому, как это происходит при работе с одной микросхемой. [43]
Микропроцессор ВМ86 имеет достаточно простую и эффективную векторную систему обработки прерывания. Каждому запросу поставлен во взаимно однозначное соответствие его вектор, который служит для определения адреса подпрограммы обслуживания прерывания. В МП используется 256 векторов. Рассмотрим более подробно запросы, поступающие от внешней аппаратуры. [44]
До сих пор мы не рассматривали, каким образом реально загружаются подпрограммы и как выполняется редактирование связей с вызывающими программами. При абсолютном ассемблировании все программы и подпрограммы создавались совместно, для них выполнялось распределение памяти, а адреса подпрограмм хранились в таблице идентификаторов ассемблера. Если же каждая программа ассемблируется как отдельный модуль, то необходимо решить задачу распределения памяти для них и выполнить настройку адресов. [45]