Cтраница 1
Самоопределенная величина, значение которой должно быть кратно восьми, принимается транслятором в качестве начального значения счетчика размещения. Если эта компонента в команде отсутствует, то в качестве такого начального значения принимается нуль. [1]
Другим примером самоопределенной величины является выражение М - Р, где М и Р - внутренние имена в данном модуле. Очевидно, что значение выражения М - Р не зависит от распределения памяти. В ряде случаев использование таких самоопределенных величин может оказаться весьма удобным. [2]
Например, если в поле операндов записана самоопределенная величина, то метка становится абсолютной; если переместимая метка - то переме-стимой. [3]
В автокоде ЕС ЭВМ имеется четыре типа самоопределенных величин, называемых термами, которые отличаются способом задания нужного постоянного значения: десятичный, шестнадцатеричный, двоичный и символьный термы. В качестве значения символьного терма принимается целое число, запись которого в двоичной системе счисления образуют последовательно записанные восьмиразрядные коды символов, заключенных в апострофы. [4]
Наряду с именами для задания операндов могут использоваться так называемые самоопределенные величины - это такие конструкции языка, значения которых являются постоянными и определяются по их написанию. [5]
Для задания абсолютных адресов или операндов, трактующихся иначе ( например, параметр приращения регистра адреса при организации цикла), может применяться терм - самоопределенная величина. [6]
По этой команде переменной периода генерации с указанным именем ассемблер присваивает значение заданного адресного выражения, которое, в частности, может быть целым числом или самоопределенной величиной. [7]
Если метка отсутствует, то программа получает название из пяти пробелов. Если самоопределенная величина задана неправильно или поле операндов пусто, начальный адрес ( исходное значение счетчика адреса) принимается равным нулю. [8]
Упакованная десятичная система счисления, как мы будем называть ее для краткости, использует такое представление внутри поля значений, которое обычно предполагает наличие одной знаковой цифры и одной или более численных цифр, причем все они представлены в шестнадцатеричном виде. В данном применении каждая шестнадцатеричная цифра рассматривается как самоопределенная величина. Так как упакованные десятичные цифры представляются шестнадцатеричными цифрами, то каждая упакованная десятичная цифра занимает только половину байта. Конфигурация упакованной десятичной величины может быть представлена со знаком или без него, но она должна иметь знак, если используется в операциях упакованной десятичной арифметики или преобразуется в формат с фиксированной точкой. В десятичной упакованной величине без знака каждый полубайт представлен шестнадцатеричной численной цифрой ( от 0 до 9); в величине со знаком все полубайты, за исключением самого младшего ( самого правого) полубайта, представлены шестнадцатеричными численными цифрами. [9]
Хотя в данной книге построению и композиции литералов посвящен специальный раздел, уже здесь необходимо привести общие соображения относительно их функций. Как правило, литералом является сравнительно небольшая по объему область данных, или самоопределенная величина, которая должна быть использована в качестве операнда. Литералы применяют чаще всего в тех случаях, когда значение величины или содержимое данных литерала должно остаться неизменным. В силу того что литерал не имеет метки, программист не имеет возможности обратиться к нему из другой точки своей проблемной программы. Если литерал с одинаковым значением необходимо использовать во многих местах проблемной программы, то его приходится каждый раз целиком переписывать заново. [10]
Другим примером самоопределенной величины является выражение М - Р, где М и Р - внутренние имена в данном модуле. Очевидно, что значение выражения М - Р не зависит от распределения памяти. В ряде случаев использование таких самоопределенных величин может оказаться весьма удобным. [11]
Наряду с именами для задания операндов могут использоваться так называемые самоопределенные величины - это такие конструкции языка, значения которых являются постоянными и определяются по их написанию. При этом следует иметь в виду, что самоопределенные величины в автокоде имеют такой же адресный характер, как и имена, поскольку их значения используются для вычисления машинных адресов. [12]
В оощем случае они строятся из операндов, знаков арифметических операций ( - /) и круглых скобок, с помощью которых в случае необходимости задается требуемый порядок выполнения операций. Операндами могут быть имена ( в том числе и имя счетчика размещения), самоопределенные величины, а также ссылки на характеристику длины имени. [13]
Присвоение индивидуальных имен программам, подпрограммам, областям и константам является одним из способов, с помощью которого программист в процессе кодирования предложений получает возможность осуществлять над ними наиболее удобный и гибкий контроль. Существуют другие функции, которые также предоставляют программисту некоторый диапазон возможностей при кодировании любой заданной команды. Они связаны с методами указания операндов, включающими элементы адресации, указания длины и самоопределенных величин. Хотя в результате применения составных или комплексных операндов должны формироваться конкретные адреса или необходимые величины, эти цели могут быть достигнуты разными способами. [14]
Так как символьный переключатель занимает, по определению, 1 байт данных, то для установки и проверки переключателя логично использовать команды, которые обрабатывают только 1 байт. Такие команды называются командами с непосредственным операндом. Обе эти команды, MVI и CLI, значительно удобнее, чем обычные команды пересылки и сравнения. Второй операнд этих команд представляет собой самоопределенную величину, и команда в целом выполняется значительно быстрее, чем если бы второй операнд определял адрес, который в свою очередь служил бы для обращения и символу. [15]