Cтраница 1
Естественный порядок следования команд может быть нарушен тремя способами: выполнением команды перехода, выполнением команды обращения к подпрограммам или прерыванием. На выполнение программы оказывают косвенное воздействие команды управления, которые используются управляющей программой операционной системы для диспетчеризации работы системы. [1]
Для изменения естественного порядка следования команд используют блок управления переходами БУЯ, на который поступают признаки условного и безусловного перехода. При выполнении таких команд в СГ2к, предварительно установленный в нуль управляющим сигналом УО, из регистра команд RGK заносится адрес команды, к которой следует перейти. [2]
Для изменения естественного порядка следования команд используются инструкции передачи управления. [3]
Если потребуется нарушить естественный порядок следования команд, то обращаются к специальной команде перехода. Команда перехода заносит в счетчик адрес, по которому следует обратиться в ЗУ за следующей командой. Остальные разряды регистра отводятся под адреса. Управление выполнением команды заключается в том, что в определенной временной последовательности в АУ и ЗУ подаются сигналы. Очевидно, каждая команда будет иметь свою последовательность управляющих импульсов. В зависимости от принципов выработки этих сигналов УУ подразделяют на синхронные, асинхронные и смешанные. [4]
Операции переходов используются для изменения естественного порядка следования команд безусловно или в зависимости от выполнения некоторой совокупности условий, определяемых значениями признаков результатов ( Z, N, V, С), выработанных командой, непосредственно предшествующей команде условного перехода. [5]
Они имеют важное значение, так как используются для изменения естественного порядка следования команд и организации циклических участков в программах. [6]
В течение первого такта определяется адрес следующей команды и вводится в главный регистр Р, точнее, в его правую часть. Так как принят естественный порядок следования команд, то дли определения адреса следующей команды достаточно прибавить единицу к адресу предыдущей команды, хранящемуся в регистре адреса команды Рг Эти действия совершаются следующим образом: первый тактовый импульс отпирает вентили Д8, fig и BIZ. В результате адрес предыдущей команды выдвигается из регистра Р1 и, проходя через сумматор, складывается с единицей младшего разряда, прошедшей через вентиль Z. [7]
Предложение 04007 представляет собой безусловный переход к подпрограмме с меткой ZEROVALU. Для того чтобы эта команда начала выполняться, должен сохраняться естественный порядок следования команд при выполнении команды ВСТ. Это означает, что исходная величина в поле TESTPACK была и остается равной нулю. [8]
Код признака результата сохраняется в старом PSW; новый признак загружается вместе с новым PSW при изменении состояния или по команде установки маски программы. При выполнении программы код признака результата может быть использован командами переходов для изменения естественного порядка следования команд. [9]
![]() |
Структуры команд.| Схема формирования адреса следующей команды. [10] |
В трехадрес-ной команде безусловного перехода первых два адреса не используются. Часто естественный порядок следования команд необходимо нарушать только при выполнении некоторого условия. Если условие выполняется, то перейти к выполнению команды, записанной в ячейке а3 - Если же условие не выполняется, то перейти к выполнению команды, записанной в следующей / 1 - й ячейке. [11]
Счетчик команд представляет собой регистр, содержащий адрес ячейки памяти, в которой хранится подлежащая выполнению команда. МП) адресами, поэтому для перехода к следующей команде содержимое счетчика команд автоматически увеличивается на 1, 2, 4 единиц после выборки текущей команды. При необходимости изменения естественного порядка следования команд в счетчик заносится адрес команды, к которой необходимо произвести переход. [12]
Счетчик команд представляет собой регистр, содержащий адрес ячейки памяти, в которой хранится подлежащая выполнению команда. МП) адресами, поэтому для перехода к следующей команде содержимое счетчика команд автоматически увеличивается на 1, 2, 4 единиц; после выборки текущей команды. При необходимости изменения естественного порядка следования команд в счетчик заносится адрес команды, к которой необходимо произвести переход. [13]
Предложение 0206 вызывает переход к предложению 0209, если при сравнении обнаруживается, что содержимое поля KEY больше содержимого поля РТС. Переход означает, что величина, соответствующая содержимому поля KEY, находится не в части таблицы от РТВ до РТС, а в области больших адресов. Если переход не производится, то сохраняется естественный порядок следования команд, согласно которому следующим выполняется предложение 0207; это означает, что величина, соответствующая содержимому поля KEY, находится где-то между РТВ и РТС. Последнее заключение основывается на следующем: чтобы выполнялся оператор 0205, содержимое поля KEY должно быть больше или равно содержимому РТВ, а чтобы выполнялся оператор 0207, содержимое поля KEY должно быть меньше, чем содержимое РТС. [14]
Предложение 02413 увеличивает адрес в общем регистре 8, складывая его с литеральной константой с фиксированной точкой 1 длиной в полуслово. Если этот цикл выполняется все девять раз, то при прохождении через цикл последний раз общий регистр 8 содержит адрес байта, примыкающего к полю ALPHAS справа. Это не имеет никакого значения, так как при выполнении предложения 02414 в этом случае сохраняется естественный порядок следования команд и сравнение, в процессе которого использовался бы этот адрес, не произойдет. [15]