4.4. Arithmetic Microoperations

4.4.1. Types of Microoperations

  • Register Transfer
  • Arithmetic (Addition, subtraction, ...) Data is numeric, and bits with a word are interdependent.
  • Logic (AND, OR, ...) Data is not numeric, and bits are independent of each other. The same logical operation is applied to each bit in a word in parallel.
  • Shift. Data may or may not be numeric. All bits are moved the same number of positions left or right.

4.4.2. Arithmetic Microoperations

Table 4.2. 

ExampleDescription
R3 ← R1 + R2Addition
R3 ← R1 - R2 (R1 + R2' + 1)Subtraction
R2 ← R2'Complement (really a logic operation)
R2 ← -R2 (R2' + 1)Negation
R1 ← R1 + 1Increment
R1 ← R1 - 1Decrement

Increment and decrement can be done with combinational incrementers and decrementers, counter registers, or by adding a 1. ( Where does the 1 come from? )

Multiply and divide are not often implemented as microoperations due to the amount of time they require. They are usually implemented as a multi-clock-cycle routine of shifts and adds.

Figure 4-7: 4-bit adder/subtractor.

Figure 4-9: Arithmetic circuit. Analyze all select input combinations.