 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 32bit 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 16bit integer in register R4  DEC PDP11
 SHL AX,4  Shift the 16bit value in register AX left by 4 bits  Intel 8086



