3.2.10   Унитарни операции

Unitary operations

 

 

      Производителите на изчислителни устройства реализират много често като изпълними операции някои частни случаи на разгледаните до момента операции.

      На първо място това са операции събиране и изваждане с единица: "Увеличи", "Намали"

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 )