Cтраница 2
Набор машинных операций над короткими целыми числами значительно меньше, чем над длинными числами, что связано с двумя обстоятельствами. Во-первых, поскольку в регистрах короткие числа представляются также по формату F ( т.е. точно так же, как и длинные числа), то в этом наборе отсутствуют операции, используемые в командах формата RR, - для действий над короткими числами, находящимися в регистрах, используются соответствующие операции над длинными числами. [16]
Наряду с этими типовыми группами операций в набор машинных операций каждой конкретной ЭВМ могут входить операции, связанные со спецификой либо самой машины, либо тех задач, на решение которых она ориентирована. Обычно набор машинных операций весьма обширен и насчитывает примерно сотню различных операций. [17]
При этом в программе должно быть предусмотрено, чтобы каждый раз к моменту выполнения данной команды в указанном регистре находилась переменная составляющая используемого переменного адреса. Для этих целей в наборе машинных операций предусматриваются специальные операции для работы с индексными регистрами. [18]
Если машина Тьюринга способна выполнять единственную, и притом простейшую операцию переработки данных - замену одного символа в ячейке памяти другим символом, то ЭВМ может выполнять гораздо более широкий набор операций. Каждая конкретная ЭВМ имеет свой набор машинных операций: решение любой конкретной задачи в конечном счете должно быть сведено к выполнению последовательности операций из этого набора. Очевидно, что с точки зрения удобства использования машины желательно, чтобы этот набор был возможно шире и чтобы он включал в себя достаточно содержательные операции. С точки же зрения простоты реализации желательно, чтобы этот набор был невелик и чтобы в него входили лишь простейшие операции, так как это позволяет сделать машину более простой, дешевой и надежной. Поскольку эти два требования противоречивы, то выбирается некоторый компромиссный вариант, с учетом того класса задач, на решение которых прежде всего ориентируется данная машина. [19]
Итак, набор операций виртуальной машины включает в себя набор операций реальной машины, за вычетом запрещенных ( привилегированных) операций, и набор директив диспетчера. Набор директив в отличие от набора машинных операций не фиксирован и может быть расширен. Поэтому возможности виртуальной машины в этом отношении могут быть гораздо шире возможностей реальной машины. [20]
Диспетчер, будучи программным расширением устройства управления, осуществляет свои управляющие функции только путем выполнения входящих в него команд процессором - в этом отношении диспетчер ничем не отличается от любой другой программы. Но поскольку функции диспетчера весьма специфичны, то в наборе машинных операций предусматриваются специальные операции, предназначенные исключительно для целей управления потоком программ. К ним, в частности, относится операция изменения, содержимого регистра прерываний: с использованием этой операции диспетчер может погасить ту единицу в регистре прерываний, появление которой вызвало его включение в работу. [21]
Диспетчер, будучи программным расширением устройства управления, осуществляет свои управляющие функции только путем выполнения входящих е него команд процессора - в этом отношении диспетчер ничем не отличается от любой другой программы. Но поскольку функции диспетчера весьма специфичны, то в наборе машинных операций предусматриваются специальные операции, предназначенные исключительно для управления потоком программ. К ним, в частности, относится операция изменения содержимого регистра прерываний. С использованием этой операции диспетчер может погасить ту единицу в регистре прерываний, появление которой вызвало его включение в работу. К этой же категории относятся и операции, предназначенные для непосредственного управления работой внешних устройств. [22]
Учитывая то обстоятельство, что набор директив ( в отличие от набора машинных операций) не фиксирован и при желании может быть произвольно расширен, воз можности виртуальной машины в этом отношении могут быть го раздо шире возможностей реальной машины. [23]
Наибольший эффект достигался бы при такой системе, когда использование любой библиотечной подпрограммы при составлении какой-либо новой программы мало чем отличалось от использования обычной машинной операции. В этом случае наличие библиотечных подпрограмм - - с точки зрения программиста - было бы равносильно расширению набора машинных операций, несмотря на то, что такое расширение реализовано не за счет усложнения аппаратуры машины, а программным путем. [24]
К настоящему времени создано много различных типов ЭВМ, которые отличаются друг от друга по целому ряду показателей. В данной главе мы остановимся на тех характеристиках ЭВМ, которые наиболее существенно сказываются на программировании: способах представления чисел в машине, наборе машинных операций и формате команд ЭВМ. [25]
В основе такого инструментария лежит аппарат макросредств, пре дусмотренный в автокоде ЕС ЭВМ. Суть этого аппарата состоит в том, что он позволяет программисту при составлении программы вводить в употребление и использовать более содержательные операции по сравнению с теми, которые имеются в наборе машинных операций. [26]
Машине с самого начала задают последовательность действий, которые она должна выполнять, ведь скорости работы электронной машины и человека несоизмеримы и было бы нерационально прерывать работу ЭВМ, чтобы вручную указывать, какую операцию она должна выполнить следующей. Поэтому в каждой ЭВМ предусматривается набор элементарных машинных операций: арифметических, логических, управления работой отдельных устройств. [27]
Процесс обработки данных связан с преобразованием значений и структур данных, а также их преобразованием в форму, удобную для человеческого восприятия, т.е. отображением. Процедуры преобразования данных осуществляются по определенным алгоритмам и реализуются в ЭВМ с помощью набора машинных операций. Процедуры отображения переводят данные из цифровых кодов в изображение ( текстовое или графическое) или звук. [28]