Logical Shift microoperations:
The logical operations that are performed on the contents of the processor register are called as the logical microoperations. These microoperations are AND, OR, INVERT, XOR etc. are performed on individual bits of the registers
As an example, logical exclusiveOR microoperations can be written as:
X: R3 <– R1 Ꚛ R2
This RTL syntax describes that R3 is update with the result of the exclusiveOR operation on the contents of R1 and R2 when the control signal X goes high.
We are aware that a ‘+’ means an arithmetic addition as well as a logical OR operation. To avoid the confusion in the use of the symbols the OR operation will be indicated by ‘V’ and the arithmetic operation by ‘+’ symbol. All the operations are given in the following table1.
Operation  Symbol  Microoperation  Description 
OR  V  R_{3} <– R_{1} V R_{2}  R3 get the value of XOR operation on the contents of R1 and R2 
AND  ꓥ  R_{3} <– R_{1} ꓥ R_{2}  R3 get the value of AND operation on the contents of R1 and R2 
NOT  ‘  A <– A’  Accumulator is updated with its complement 
ADD  +  R_{3} <– R_{1} + R_{2}  R3 get the value of ADD operation on the contents of R1 and R2 
Multiple operations  , seperated  P: R_{3} <– R_{1} + R_{2 }, R5 <– R_{1} ꓥ R_{4}  When P is high, R3 and R5 get updated with new values 
Various Logical microoperations.
Table2 Shows various logicalmicrooperations that can be performed on two variable X and Y.
Inputs 
Output Functions 

X  Y  F0  F1  F2  F3  F4  F5  F6  F7  F8  F9  F10  F11  F12  F13  F14  F15 
0  0  0  1  0  1  0  1  0  1  0  0  0  1  0  1  1  1 
0  1  0  1  0  1  1  0  0  1  1  0  1  0  1  0  0  1 
1  0  0  1  1  0  0  1  0  1  0  1  1  0  1  0  1  0 
1  1  0  1  1  0  1  0  1  0  0  0  1  0  0  1  1  1 
Function details  F0=0  F1=1  F2=X  F3=X’  F4=Y  F6=Y’  F2=X.Y  F8=(XY)’  F12=X’Y  F15=XY’  F3= X+Y  F9= (X+Y)’  F4= XꚚY  F5= X⊙Y  F13=X+Y’  F14= X’+Y  
Logical microoperations  Fß0  Fß1  FßX  FßX’  FßY  FßY’  Fß XꓥY  Fß (XꓥY)’  Fß X’ꓥY  Fß XꓥY’  Fß XVY  Fß (XVY)’  Fß XꚚY  Fß ( XꚚY)’  Fß XVY’  Fß X’VY 
The functions of two variables are expressed in algebraic form, and the microoperations are driven from these functions and are also written in the bottom row of the table. The operations are performed on each bit of the register and are stored back in the register as output.
Hardware implementation:
The hardware implementation of the above logic functions can be implemented by a simple circuit comprising of Mux and logic gate at the input of the MUX. Most of the logic microoperations can be computed using simple logic gate. Figure1 shows the implementation of four microoperations.
The same concept can be expanded to accommodate all the 16microoperations.
Also, there are some special microoperations described in the above table of logical microoperations. These microoperations will be useful while playing with controller programing for example in manipulating individual bits or a portion of a word stored in a register. They can be used to change bit values, delete a group of bits, or insert new bit values into a register.
Accordingly these selective microoperations are:
 Selective set
 Selective clear
 Selective complement
 Mask Operation
Specialized operations  example  Microoperations  Operation  Description 
Selective set

A = 1010
B = 1100 ———— AVB = 1110 
C <– A V B  OR Operation  An OR operation with ‘1’ sets the selected bit 
Selective clear

A = 1010
B = 1100 B’ = 0011 —————– A /\ B’= 0010 
A <– A /\ B’  AND with complement of B (i.e. B’)  ANDing with zero(‘0’) clears the bit. Hre MSB is cleared 
Selective complement

A = 1010
B = 1100 ———— A ⊕ B = 0110 
A<– A ⊕ B  XOR Operation  This operation complements the MSB bit. XOR wit ‘1’ complements the bit 
Mask Operation

A = 1010
B = 1100 ———— AVB = 1110 
A <– A V B  AND  It is similar to selectiveclear operation except that the bits of A are cleared only where there are corresponding 0’s in B 
Shift Microoperations
The shift operations executed on the contents of the registers are called as shift microoperations. The contents of a register can be shifted to the left or the right. At the same time that the bits are shifted, the first flipflop receives its binary information from the serial input from left or right i.e. from the direction of shift. Shift operations are of following types.
 shiftleft operation
 shiftright operation
 Circular (rotate) operation
 Arithmetic Shift operation
Shift Left operation:
In the logical left shift operation, a ‘0’ is inserted from the right end as shown in the figure2. As the bits are shifted the least significant bits occupy the position of next higher position bit and the MSB is lost. The left shift operation is equivalent to the multiplication by 2.
Shift Right Operation:
In the logical right shift operation, a ‘0’ is inserted from the left end as shown in the figure3. As the bits are shifted, the bits from higher place occupy the lower bit position and each time a shift operation is done the LSB bit is lost.
Circular or Rotate operation:
It was observed that In the left and right shift operations the bit from the right or left end get lost, but in the circular or rotate operation the bit is preserved and inputted from the other end.
Rotate Left:
The circular left operation inserts the MSB bit as input at the LSB position as shown in figure4
Rotate Right:
The circular right operation shift the bits right internally and the LSB occupies the position of MSB as shown in figure5.
Arithmetic Shift operation:
Arithmetic shifts must leave the sign bit unchanged because the sign of the number remains the same when it is multiplied or divided by 2.
Arithmetic right shift:
As shown in figure6, In each right shift, the sign bit Rn1 is retained at the MSB position and also shifted to right along with other bits upon each operation. This preserves the sign of the number. Arithmetic right shift is equal to division by 2
Arithmetic left shift:
In arithmetic left shift all the bits are shifted one bit left position. In the circular left shift operation the most two significant bits (bn1 and bn2) bits must be checked for an overflow as shown in the figure. Arithmetic left shift is equal to multiplication by 2.