Next
Instruction classified by actions
  Data modification.
  Data movement.
  Instruction sequence modification.

Arithmetic
  Accumulator activities on whole memory units.
    Integer 
    Float and other in more advanced cpus.

Boolean - often a subcategory of arithmetic.
  Boolean -performs logical instructions at bit level.

  ALU used provide bit manipulation on whole memory unit.
    AND - 11110111 AND data will force only bit 4 off.
    OR - 00001000 OR data will force only bit 4 on.
    XOR - 11111111 XOR (EOR) data will essentially generate the 1's
      complement of the data.

  Result of boolean action stored.

Bit manipulation
  Setting or clearing condition flags
  Shifts and rotates - often used for multiply/divide.  

Test
  Test - a variation of boolean uses to modify CCR flags without
    changing the data being tested.

  Not supported on some machines. - Save copy of original and use
    boolean instruction.

Data Movement
  All cpus support simple data movement.
    Some support fractional portions of data bus size. Byte or half word,
    word, double word.

String or block
  String or block - supports action applied to a block of memory
    with rules that vary according to data type.  
    Often compound, multi-register instructions.

    MVCL RA,RB # both RA and RB are register pairs - move up to 2^24-1
     Even register of each pair is address, Odd register is length

     High byte of odd source register specify pad character if destination
       storage longer than source data.

Transfer of control (program)
  Transfer of control - used to modify the Program counter.
    Branches - conditional or unconditional (relative).

    Jumps - conditional or unconditional (absolute).

    Function - transfers execution to a sub-section of program.
      Pair of instructions.
        Call - stores current PC in the stack and inserts a new value
          specified in the operand into the PC.

        Return - retrieves the orginal value from the stack.

        Simulated for IBM 360 with standard linkage - programmer provides
        stack function.

  Interrupts - Transfer of control
    Transfers execution to code external to program.
    May be requested by program (standard system functions)

    May be triggered by external events. (printer out of paper).

    Should preserve PC, CCR, and other registers.
      This responsibility may be a function of the cpu 
      Or have to be coded into the code being run.

    When returning from an interrupt, the cpu should be restored to
      its original state.