Следующее правило
Предположим теперь, что необходимо разделить число 4246 на 31. В области DELIM длиной 5 байт расположим число 4246 , а в области DELIT — число 31 . Область DELIM после деления будет содержать частное и остаток. Команда для деления будет следующей: DP DEL1M. DELIT.
Содержимое области DELIM после деления станет 00136С030С. Это значит, что при делении 4246 на 31 получаются частное 136 и остаток 30. Делитель имеет длину два байта, поэтому остаток занимает два самых правых байта. Частное записывается в оставшееся место области для результата. При выполнении деления для решения вопроса о длинах можно руководствоваться следующим правилом: число байт в делимом равно числу байт в делителе плюс число байт в частном.
Сдвиг десятичных данных. Для сдвига десятичных данных используется команда SRP формата SS, имеющая специфический вид записи: SRP SI, S2,I3. По этой команде выполняется сдвиг десятичного числа, находящегося в памяти по первому адресу. Сдвигаются только цифры числа, знак остается на месте, освобождающиеся десятичные цифры заполняются нулями. Младшие 6 разрядов числа, являющегося адресом второго операнда, задают направление и величину сдвига. Если старший из этих разрядов равен 0, число сдвигается влево, если этот разряд равен 1, то число сдвигается вправо. Значение остальных разрядов указывает количество десятичных цифр, на которое выполняется сдвиг. Если сдвиг выполнялся вправо, результат округляется, для чего к последней выдвинутой цифре сдвинутого операнда прибавляется значение непосредственного операнда 13; если при этом возникает перенос, он распространяется влево.
Знак числа при округлении считается положительным. Полученный результат помещается в поле первого адреса.