Cтраница 1
Операнды переменной длины являются состояниями последовательностей восьмиразрядных ячеек ( полей) двух типов. [1]
![]() |
Форматы информации. [2] |
Операнды переменной длины отличаются на целое число байтов. [3]
![]() |
Границы для полуслов, слов и двойных слов. [4] |
Операнды переменной длины не имеют целочисленных границ и могут начинаться с любого байта. [5]
![]() |
Команды загрузки, установки и запоминания. [6] |
Операнд переменной длины определен только для основной памяти. Логический операнд воспринимается как строка блоков или литер и может обрабатываться побитно или побайтно. [7]
Для команд формата 55 оба операнда переменной длины выбираются из ООП по исполнительным адресам. В этом формате во 2 - м байте команды приводятся длины операндов ( Lt и L2) в явном виде. Если операнды одинаковой длины, то указывается общий код длины L в 8 разрядах байта. Это позволяет обрабатывать операнды длиной до 256 байт. [8]
Значение формата данных задается в команде. Операнды переменной длины отличаются по длине на целое число байт. Разряды, образующие формат, нумеруются последовательно слева направо, начиная с нуля. [9]
В языке операндов ассемблера IBM-360 существует конструкция определения состояния элементарных областей памяти ( полей переменной длины описанных выше типов), представляющая собой конечную последовательность записей, каждая из которых состоит из семи элементов строки. Тело первого из них ( в первой записи) состоит из восьми символов, первые из которых совпадают со всеми символами элементарного символического адреса операнда, а последние являются символами ы; тело третьего элемента строки содержит слово DC l l и l l; тело пятого элемента содержит одну из конструкций, описанных в настоящем примере и служащих для записи операндов фиксированной длины, операндов переменной длины и адресных величин. Если конструкция, выражающая операнд переменной длины, содержит более 54 символов, то эта конструкция продолжается в теле пятого элемента второй записи. Могут использоваться продолжения конструкции и в телах пятых элементов последующих записей. [10]
В языке операндов ассемблера IBM-360 существует конструкция определения состояния элементарных областей памяти ( полей переменной длины описанных выше типов), представляющая собой конечную последовательность записей, каждая из которых состоит из семи элементов строки. Тело первого из них ( в первой записи) состоит из восьми символов, первые из которых совпадают со всеми символами элементарного символического адреса операнда, а последние являются символами ы; тело третьего элемента строки содержит слово HDCLJLJLJ. Если конструкция, выражающая операнд переменной длины, содержит более 54 символов, то эта конструкция продолжается в теле пятого элемента второй строки. Могут использоваться продолжения конструкции и в телах пятых элементов последующих строк. Тело шестого элемента строки содержит либо любой из символов алфавита, кроме LJ, если строка не является последней, либо ijLjH в последней строке. [11]
Форматный код SS обозначает операцию типа память - память. Команды этого форматного кода занимают шесть байтов памяти. Оба операнда находятся в памяти. Особенностью команд формата SS является то, что операции выполняются над операндами переменной длины. Имеются команды этого же формата, в которых указывается общая для обоих операндов длина. В этом случае она задается двумя шестнадцатеричными цифрами и определяет поле от 0 до 255 байтов. Адреса памяти задаются смещением и базовым адресом. [12]
Форматный код SS обозначает операцию типа память - память. Команды этого форматного кода занимают шесть байтов памяти. Оба операнда находятся в памяти. Особенностью команд формата SS является то, что операции выполняются над операндами переменной длины. Имеются команды этого же формата, в которых указывается общая для обоих операндов длина. В этом случае она задается двумя шестнадцатеричными цифрами и определяет поле от 0 до 255 байтов. Адреса памяти задаются смещением и базовым адресом. [13]
В зависимости от типа и назначения машин форматы информации могут быть различными. Например, в системе IBM / 360 принят следующий формат. Группа из двух последовательно расположенных байтов составляет половину словаи является основной образующей единицей в командах. Группа из четырех байтов ( 32 разряда) представляет собой слово, а из восьми - двойное слово. Операнды ( исходные данные) могут иметь фиксированную длину, равную одному, двум, четырем или восьми байтам, и переменную длину. Операнды переменной длины отличаются на целое число байтов. [14]
Рассмотрим работу УУ при выполнении основной задачи-организации исполнения команды. Поэтому работа УУ начинается с извлечения первого байта очередной команды и определения общей длины команды. Длина, команды зависит от места нахождения операндов. Если оба операнда находятся на регистрах АУ, то они не pa - ботают с индексными регистрами, номера регистров можно поместить в полубайт и длина команды будет минимальной - в одно полуслово. Один байт занимает код операции и признаки, а другой байт - два адреса регистров, а которых размещены операнды. Наибольшую длину - 6 байтов ( 48 разрядов) - имеют команды, работающие с операндами переменной длины, находящимися: в ОЗУ. В команде, кроме кода операции, помещаются указание о длине первого и второго операндов ( в байтах) и адреса начальных байтов операндов. В связи с большим объемом памяти современных ЦВМ для записи адреса применяются группировки операндов. Номер базиса заносится на один из регистров, и при указании адреса операнда в ОЗУ необходимо указать номер регистра, на котором записан базис, и относительный адрес операнда. Организация выбора операндов из ОЗУ уже рассмотрена выше. Поэтому отметим некоторые особенности выполнения команд, В большинстве ЦВМ второго поколения выполнение команды заключалось в ее декодировании и подаче сигналов на ключи ( или вентили) для обеспечения прохождения последовательности сигналов на соответствующие этой операции места АУ. Сигналы поступали и, следовательно, вырабатывались даже в тех случаях, когда они не были нужны. Поэтому для повышения быстродействия в современных ВП операция разбивается на микрокоманды, из которых программируется команда, а в этой программе учитывается только то, что необходимо сделать в каждом конкретном случае. [15]