Cтраница 1
Двухместная операция может быть перегружена как функция с двумя аргументами, не являющаяся элементом. Один из аргументов должен быть объектом класса или ссылкой на объект. [1]
![]() |
Работа регистров при двухместных операциях. [2] |
Двухместные операции выполняются над двумя числами. В них участвуют оба регистра X и У. [3]
Двухместные операции осуществляются с помощью команд; -; X; - ь; ху над числами, находящимися в РХ и PY, и производятся по правилам обратной записи. [4]
Введенные двухместные операции легко обобщаются на случай произвольного числа сомножителей и слагаемых. [5]
Двухместная операция соединения слов ( описана в § 5 гл. Эта операция, будучи применена к упорядоченному набору из двух слов, в качестве результата дает слово, которое получится, если к первому слову ( после его конца) приписать второе слово. Эту операцию обозначим 52 ( РЬ Р2), где Рх и Р2 - слова. [6]
Дополнительными двухместными операциями, выполняемыми над числами х и у ( х - РХ, у PY), являются следующие операции. [7]
Свойство двухместной операции, состоящее в том, что результат применения ее к любым двум элементам не зависит от того, в каком порядке они взяты. [8]
Для двухместных операций схема перемещения информации в регистрах показана на рис. 3, е: информация в стеке опускается, в результате чего появляется возможность подготавливать данные к следующей операции. [9]
Для двухместной операции присваивания логика масштабирования та же, что и для операции типа сложения, но масштабированию может подвергаться только один операнд - правая часть оператора присваивания. Метод, при котором масштаб левых частей не задается описаниями, а определяется по результирующему масштабу правой части - выражению, применять нецелесообразно, так как при этом методе предполагается, что оператор присваивания значения масштабированной переменной помещен ранее всех операторов, использующих эту переменную. Это условие выполняется при структурном программировании, но в общем случае для его контроля требуется построение графа программы. [10]
В двухместных операциях AND, OR и XOR, если оба операнда имеют тип BYTE, операция выполняется над 8 битами и дает результат типа BYTE. Если хотя бы один из операндов имеет тип ADDRESS, операция выполняется над 16 битами, а результат имеет тип ADDRESS. В этом случае, если один операнд имеет тип BYTE, он предварительно расширяется до 16 бит добавлением 8 нулей в старшие разряды. [11]
Если операнды двухместных операций, имеют различную длину, то более короткое значение дополняется справа нулями. [12]
Разрядность результата двухместной операции совпадает с наибольшей разрядностью операндов, если операнды представлены в форме с плавающей точкой. [13]
![]() |
Результат логических операций. [14] |
Если операнды двухместной операции и ( или) имеют разные длины, то более короткий операнд дополняется справа нулями до длины другого операнда. [15]