Отыскать значение (27 -3)10 в двоичной шифровке.
В этом случае возникновение 1 в регистре переполнения не интерпретируется как ошибка вычислений, так как на ее отсутствие указывают знаки чисел и результата. Порядок проверок и анализа правильности операций сложения-вычитания (Z = Z(1) + Z(2)) можно представить в виде таблицы:
Таблица 4.2.
Нужно уточнить, что при выполнении вычитания отрицательного числа оно из дополнительного кода переводится в прямой, и вновь заместо вычитания делается сложение.
Схожим же образом число из дополнительного кода переводится в прямой при выполнении операции умножения; перемножаются всегда положительные числа по рассмотренным выше правилам; знаковый бит результата, разумеется, будет содержать 0, если знаки чисел схожи, и 1 при обратных знаках.
Над обилием целых чисел со знаком операция деления не определена, так как в общем случае ее результатом будет вещественное число. Но допустимыми являются операции целочисленного деления и нахождения остатка от целочисленного деления (те, что малость ранее было обозначено div и mod). Поточнее, значения обеих величин находятся сразу в одной процедуре, которая в конечном счете сводится к последовательности вычитаний либо, еще поточнее, сложений с дополнительным кодом делителя. Примем обозначения: Z(1) — делимое; Z(2) -делитель; L — итог целочисленного деления Z(1) на Z(2); R — остаток от целочисленного деления Z(1) на Z(2). Эти величины связаны меж собой достаточно естественным соотношением:
из которого следует метод нахождения значений L и R для данных Z(1) и Z(2); его блок-схема для положительных Z(1) на Z(2) представлена на рис. 4.7.
Таким образом, операции div и mod, как, вобщем, и операция умножения, реализуются программно, т.е. сводятся к последовательности маленького числа более обычных действий. При всем этом уровень программной реализации может быть разным. Если реализация выполнена на уровне команд центрального микропроцессора, то эти операции оказываются доступны из хоть какого приложения (хоть какой прикладной программки). Если же в системе команд микропроцессора эти микропрограммы отсутствуют, их приходится обрисовывать в виде процедур в самих приложениях и, как следует, они будут доступны исключительно в этих приложениях.