| These instructions perform the arithmetic and logic operations on data (such as addition, subtraction, multiplications, division, AND, OR, NOT …etc.)
More complex operations (such as multiplication, division, floating point arithmetic) shorter machine programs but also more complex ALU design.
|
| | Operand access modes are very detrimental to how fast ALU instructions can be executed and the complexity of the CPU design:
| Allowing operands and/or results to reside in memory offers great programming flexibility at the expense of higher design complexity
| | Restricting operands and/or results to register values, simplifies the design significantly, however, operands and results would have to be fetched/stored in memory using data movement instructions.
|
|
|
The table below shows examples of ALU instructions from different machines illustrating the different operand/result access modes discussed above.
| Examples of ALU instructions from several machines
|
|
Instruction | Description | Machine
| MULF A,B,C | Multiply the 32-bit floating point values at memory locations A and B, and store the result in location C | VAX11
| nabs r3,r1 | Store the negative absolute value of r1 in r3 | PPC601
| ori $2,$1,255 | Store the logical OR of register $1 with constant 255 into register $2 | MIPS R3000
| DEC R2 | Decrement the 16-bit integer in register R4 | DEC PDP11
| SHL AX,4 | Shift the 16-bit value in register AX left by 4 bits | Intel 8086
|
|
|
|