3.2.10
Унитарни
операции
Производителите
на
изчислителни
устройства
реализират
много често
като изпълними
операции
някои частни
случаи на
разгледаните
до момента
операции.
На
първо място
това са
операции
събиране и изваждане
с единица: "Увеличи",
"Намали"
Z = X + 1, Z = X - 1.
Очевидно
тези
операции
могат да
бъдат изпълнени
без
затруднения
в
логическите
структури от
фигура 3.2.1.1 или
фигура 3.2.1.3.
Най-често
тези
операции се
изпълняват
върху
резултат от
предидущо
действие, т.е.
като
операции от
натрупващ
тип
Z := Z + 1, Z := Z - 1 ,
и служат
за
организиране
на броячи.
При изпълнение
на този вид
операции се
формират и в
регистъра на
признаците
се фиксират
всички
признаци на
резултата, с
изключение
на тригера за
пренос С, който
остава
непроменен.
Операциите
събиране и
изваждане с
единица
могат да се
изпълняват
освен в
аритметичното
устройство
на процесора
и в други програмно
достъпни
възли,
например в
индексните
регистри.
Въпреки, че
характерът
на операциите
е същия,
действията
свързани с
тях се
изпълняват непосредствено
във възела,
а не в
аритметичното
устройство.
Така се осигурява
възможност
за
паралелност
на операциите.
Друга
често
реализирана
операция е "Аритметическо
допълнение".
По същество
това е
операция, при
която
операндът
сменя знака
си, а цифровата
му част се
инвертира и
увеличава с
единица, т.е.
тя се
преобразува
по правилото
за получаване
на допълнителен
код. Като се
има предвид,
че
операндите
по начало са
представени
в
допълнителен
код, операцията
може да се
определи още
и така
В
аритметично
логическото
устройство
тази
операция се
изпълнява
като
операция изваждане:
X := 0 - X ,
в
резултат на
което
форматът на
резултата не
се удължава,
а признаците
му се
формират както
при операция
изваждане.
Дори
най-малкото
число Xmin не прави
изключение
от тази
операция.
Нека обаче
читателят не
забравя, че
това число е непредставимо
в прав код и
смяната на
неговия знак
ще бъде
причина за
генериране
на препълване
(вижте
определението
(1.6.2.13) ).
Мнемоничният
код на
машинната
команда е NEG (Two’s
complement negation)
(според Intel), която
е безадресна
машинна
команда и
работи върху
съдържанието
на определен
регистър.
В
различните
микропроцесори
е възможно конструкторите
да предлагат
и други подобни
операции, при
които
единият от
операндите
се
подразбира. Като
пример за
такава
машинна
команда тук ще
добавим
командата NOP (No operation) (според
Intel), която е
безадресна
команда и не
притежава, т.е.
не изпълнява
никакви
действия.
Единственият
ефект от нея
е загубата на
един или
няколко машинни
такта.
Завъртането
в цикъл на
тази команда
известен
брой пъти се
използва за
реализиране
на машинна
латентност с
предварително
определена
продължителност.
Следващият
раздел е:
§ 3.3
Операции
върху числа с
плаваща запетая ( Operations on
floating point numbers )