Перевод константы
После перевода константы в двоичное представление и масштабирования двоичное число помещается в соответствующую область памяти согласно явной или неявной длине, причем производится округление результата в зависимости от величины отбрасываемой дробной части. Полученное число отличается от точного не более чем на единицу в последнем бите.
Если размер переведенного числа превышает необходимую длину, явную или неявную, знак числа и самые левые биты числа теряются. Нулевые биты будут добавлены слева, если длина двоичного числа меньше необходимой длины. Отрицательные числа помещаются в память в дополнительном коде.
При определении чисел с плавающей точкой диапазон модификатора порядка и порядка константы, а также их функций такие же, как при определении чисел с фиксированной точкой. Если в операнде не указан модификатор длины, то неявная длина констант типа Е предполагается равной 4 байтам, типа D — 8 байтам, а типа L— 16 байтам. В этом случае константы типа Е выравниваются на границу слова, типа D и L — на границу двойного слова. Модификатором длины для констант типа Е и D может быть указана любая длина от 1 до 8 байт включительно, а типа L — до 16 байт. Преобразование в машинный формат констант с плавающей точкой всех типов выполняется одинаково следующим образом. Каждая константа с плавающей точкой преобразуется в шестнадцатеричную нормализованную дробь. Если указан модификатор масштаба, выполняется масштабирование.
Модификатор масштаба для констант с плавающей точкой может указываться только положительным, и его значение должно находиться в диапазоне от 1 до 14 . Он указывает число шестнадцатеричных позиций, на которые должна быть сдвинута шестнадцатеричная дробь вправо. Таким образом, масштабирование, указанное для константы с плавающей точкой, порождает ненормализованное число. При масштабировании порядок константы корректируется, чтобы сохранить правильную величину константы.