Cтраница 3
Поэтому в качестве адреса результата обычно используется адрес одного из операндов и результат замещает один из операндов. Это позволяет значительно сократить длину адресной части команды, но приводит к необходимости введения посылочных операций, которые не выполняют никаких действий, кроме копирования информации в памяти или между памятью и одним из регистров процессора. [31]
Можно показать, что при решении ряда задач число одноадресных команд не намного превышает число трехадресных, а при использовании двухадресной машины число команд вообще не превышает его. Убедительным примером может служить программа решения многочлена п-и степени по схеме Горнера. Независимо от значения п программа на одноадресной машине содержит лишь на две команды больше, чем на трехадресной, за счет посылочных операций, на которых одна обеспечивает передачу в сумматор коэффициента при первом члене, а другая - запись результата в ячейку памяти. Программа на двухадресной машине по числу команд тождественна программе на трехадресной машине. [32]
![]() |
Организация прерываний на Госнове слов состояния программ. [33] |
При записи старого ССП в памяти сохраняется только основная информация о прерванной программе. Информация, хранимая во внутренней памяти процессора, при этом обычно не перемещается в основную память. Функция сохранения этой информации возлагается на программы-преемники, которые обеспечивают пересылку информации из внутренней памяти процессора в область основной памяти, специально выделяемую в программе. Для пересылки информации используются стандартные посылочные операции. По окончании программы производится восстановление информации во внутренней памяти путем пересылки слов из основной памяти в процессор. [34]
Посылочные операции служат для передачи информации между процессором и основной памятью. Операция ЗАГРУЗИТЬ обеспечивает передачу слова информации из основной памяти во внутреннюю память процессора, а операция ЗАПИСАТЬ - передачу слова из процессора в память. Для увеличения эффективного быстродействия ЭВМ список посылочных операций расширяется операциями передачи слова с обратным знаком, модуля слова и операциями групповой передачи. Последние обеспечивают передачу заданного количества слов между группами соседних ячеек основной памяти и внутренней памяти процессора. [35]
Здесь К - итоговый регистр процессора; А - адрес, определяемый значением полей ПКА, ПС, Аг команды; ОП [ А - содержимое ячейки памяти с адресом А; К. Первые две команды относятся к группе арифметических и логических операций. Результат операции запоминается в процессоре и адрес Д следующей команды вычисляется увеличением на единицу адреса К текущей команды. Операция сложения выполняется над 12-разрядными словами как над целыми положительными числами. Посылочная операция ЗАПИСЬ и СБРОС обеспечивает запись значения R в память, после чего на итоговом регистре R устанавливается нулевое значение. Для загрузки регистра R используется операция сложения с нулем. Операции с кодами 5, 2, 4 - переходы, которые задают адрес следующей команды, отличный от естественного адреса К. Операция ПЕРЕХОД ПО СЧЕТЧИКУ используется для организации циклов. Значение счетчика, размещаемого в ячейке А, увеличивается на единицу и сравнивается с нулем. При не нулевом значении счетчика следующей выполняется команда с адресом / С 1 - переход в начало цикла; при нулевом значении счетчика выполняется переход к команде с адресом К. В таком случае добавление к счетчику единицы эквивалентно вычитанию и счетчик обнулится при п-м обращении к команде ПЕРЕХОД ПО СЧЕТЧИКУ. [36]
Принцип построения интерпретирующей системы ( ИС) для работы с плавающей запятой иллюстрируется рис. 6.14. Перед началом блока программы, состоящего из псевдокоманд, производится обращение к интерпретирующей системе. Расшифровкой адресных слов ПА и i определяется порядок обработки адреса А, указанного в псевдокоманде. Код операции, указанный в псевдокоманде, определяет процедуру, соответствующую выполняемой псевдокоманде. В результате выполнения соответствующей процедуры реализуется действие, предписываемое псевдокомандой. Так, если в псевдокоманде указан код операции сложения, то производится сложение двух операндов как чисел с плавающей запятой. Посылочные операции интерпретируются путем передачи слов между рабочими ячейками ИС и ячейками ЗУ, адреса которых указываются в посылочных операциях. После выполнения очередной псевдокоманды в ИС производится переход к выполнению следующей псевдокоманды с адресом а. Некоторый код операции в псевдокоманде может определять выход из ИС и возврат к выполнению последовательности машинных команд, составляющих программу. [37]
Принцип построения интерпретирующей системы ( ИС) для работы с плавающей запятой иллюстрируется рис. 6.14. Перед началом блока программы, состоящего из псевдокоманд, производится обращение к интерпретирующей системе. Расшифровкой адресных слов ПА и i определяется порядок обработки адреса А, указанного в псевдокоманде. Код операции, указанный в псевдокоманде, определяет процедуру, соответствующую выполняемой псевдокоманде. В результате выполнения соответствующей процедуры реализуется действие, предписываемое псевдокомандой. Так, если в псевдокоманде указан код операции сложения, то производится сложение двух операндов как чисел с плавающей запятой. Посылочные операции интерпретируются путем передачи слов между рабочими ячейками ИС и ячейками ЗУ, адреса которых указываются в посылочных операциях. После выполнения очередной псевдокоманды в ИС производится переход к выполнению следующей псевдокоманды с адресом а. Некоторый код операции в псевдокоманде может определять выход из ИС и возврат к выполнению последовательности машинных команд, составляющих программу. [38]