Случайное
Старые записи

Обработка машинной команды

Обработка машинной командыТранслятор при обработке машинной команды с литералом размещает константу, соответствующую литералу, в некоторой области памяти, а адрес этой области помещает в поле операндов обрабатываемой машинной команды на место указания литерала. Характеристика длины литерала равна длине соответствующей константы.

Литерал является переместимым термом, так как в результате трансляции в машинный эквивалент команды, использующей литерал, помещается адрес, а не константа, и этот адрес изменяется при перемещении программы.

В языке ассемблера применяются абсолютные и пе — реместимые выражения. Аналогично, как и для термов, выражение называется абсолютным, если его значение не изменяется при перемещении программы. В противном случае выражение называется переместимым.

Переместимые выражения разделяются на простые переме — стимые и составные переместимые выражения. В операторах ассемблера в основном используются простые переместимые выражения. Составные переместимые выражения используются только в адресных константах. Поэтому в дальнейшем вместо термина «простое переместимое выражение» будет использоваться термин «переместимое выражение».

Абсолютное выражение. Абсолютное выражение — это абсолютный терм, арифметическая комбинация абсолютных термов или абсолютная комбинация абсолютных и переместимых термов, составленная по определенным правилам. Абсолютным термом могут быть абсолютное имя, самоопределенный терм или ссылка на характеристику длины. Над абсолютными термами допускается выполнение всех арифметических операций, результат при этом будет абсолютным, т. е. не будет изменяться при перемещении программы. Например, выражение IOO/X’02’— 5*В’010’ является абсолютным. Оно содержит абсолютные термы, соединенные знаками арифметических операций. Его значение, равное 40, не изменяется при любом расположении программы в памяти.

Выражение может быть абсолютным, когда в нем используются переместимые термы, при выполнении следующих условий:

Выражение должно содержать четное число переместимых термов;

Все переместимые термы, входящие в выражение, должны быть спаренными. Два переместимых терма называются спаренными, если они, во-первых, имеют один и тот же признак пере — местимости, т. е. принадлежат к одной и той же секции исходного модуля, и, во-вторых, имеют разные знаки. Например, в выражении NAME+X’100’—NAME1 термы NAME и NAME1, являясь переместимыми именами из одной секции, будут спаренными.

Новое на сайте
Интересные записи
7c7cf2addf7598dc