# Explain arithmetic microoperations.

**Arithmetic Microoperations**

• Unlike register transfer microoperations, arithmetic microoperations change the information content.

• The basic arithmetic microoperations are:

- Addition
- Subtraction
- Increment
- Decrement
- Shift

Arithmetic Microoperations (continued)

The RTL statement:

R3 ¬ R1 + R2

indicates an add microoperation. We can similarly specify the other arithmetic microoperations.

- Multiplication and division are not considered microoperations.
- Multiplication is implemented by a sequence of adds and shifts.
- Division is implemented by a sequence of substracts and shifts

**Binary Adder**

- We implement a binary adder with registers to hold the data and a digital circuit to perform the addition (called a
).*binary adder* - The binary adder is constructed using full adders connected in cascade so that the carry produced by one full adder becomes an input for the next.
- Adding two
*n*-bit numbers requires*n*full adders. - The
*n*data bits forand*A*might come from*B*and*R1*respectively*R2*

**Adder-Subtracter**

- Subtracting
is most easily done by adding*A – B*to*B’*and then adding 1.*A*

- This makes it convenient to combine both addition and subtraction into one circuit, called an adder- subtracter.
- M is the mode indicator
- M = 0 indicates addition (B is left alone and C
_{0}is 0) M = 1 indicates

**Binary Incrementer**

- The binary incrementer adds 1 to the contents of a register, e.g., a register storing 0101 would have 0110 in it after being incremented.
- There are times when we want incrementing done independent of a register. We can accomplish this with a series of cascading half-adders.

**Arithmetic Circuit**

- We can implement 7 arithmetic micro- operations (add, add with carry, subtract, subtract with borrow, increment, decrement and transfer) with one circuit.
- We provide a series of cascading full adders with Ai and the output of a 4×1 multiplexer.
- The multiplexers’ inputs are two selects, Bi, Bi’,logical 0 and logical 1.
- Which of these four values we provide (together with the carry) determines which microoperation is performed.

**The Micro Operations of the Arithmetic Circuit**

- When S1S0 = 00, the MUX provides B. The result is Add (for Cin = 0) or Add With Carry (for Cin = 1).
- When S1S0 = 01, the MUX provides B’. The result is Subtract with Borrow (for Cin = 0) or Subtract (for Cin = 1).
- When S1S0 = 10, the MUX provides 0. The result is Transfer (for Cin = 0) or Increment (for Cin = 1).
- When S1S0 = 11, the MUX provides 1. The result is Decrement (for Cin = 0) or Transfer (for Cin = 1).